Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manual m8
Manual m8
Introducción al programa
...............................................................................................................................
¿En qué consiste Menfis? 1
B.D. relacional y...............................................................................................................................
Orientada a objetos 3
Convenciones de...............................................................................................................................
nomenclatura y tipografía 5
............................................................................................................................... 9
Terminología básica
Guía rápida de ...............................................................................................................................
usuario 11
..............................................................................................................................
Lección 1: Consultar un ejemplo 11
..............................................................................................................................
Lección 2: Realizar un presupuesto sencillo desde cero 22
..............................................................................................................................
Lección 3: Manejar mediciones desglosadas 27
..............................................................................................................................
Lección 4: Las certificaciones (Fases de obra) 33
..............................................................................................................................
Lección 5: Personalizar y programar informes 34
Lección 5b:..............................................................................................................................
Personalizar y programar informes (2) 39
..............................................................................................................................
Uso práctico del teclado 40
............................................................................................................................... 43
Controles habituales
............................................................................................................................... 47
La ventana principal
La Ventana..............................................................................................................................
Principal 47
..............................................................................................................................
Menús y barra de iconos 49
Información..............................................................................................................................
de Fase, ámbito y modo 52
..............................................................................................................................
Búsqueda rápida y padre actual 54
Información..............................................................................................................................
del concepto padre 55
Botones de..............................................................................................................................
cabecera de la lista 55
..............................................................................................................................
Panel de búsqueda en árbol 59
.............................................................................................................................. 61
Lista de conceptos
Campos de..............................................................................................................................
edición 65
..............................................................................................................................
Barra de botones al pie 67
Menú Archivo ............................................................................................................................... 69
.............................................................................................................................. 69
Menú Archivo
..............................................................................................................................
Diálogo Abre archivo 70
..............................................................................................................................
Diálogo Nuevo archivo 71
..............................................................................................................................
Diálogo Guardar como 72
..............................................................................................................................
Diálogo Guardar como archivo comprimido (MEZ)... 73
Administrar..............................................................................................................................
lista de origen de datos 74
..............................................................................................................................
Enviar archivo por correo electrónico ... 75
Menú Concepto............................................................................................................................... 77
.............................................................................................................................. 77
Menú Concepto
.............................................................................................................................. 85
Ventana Deshace
.............................................................................................................................. 87
Ventana Textos
.............................................................................................................................. 88
Ventana Pliegos
.............................................................................................................................. 90
Ventana Valores
.............................................................................................................................. 93
Ventana Términos
.............................................................................................................................. 96
Ventana Gráficos
.............................................................................................................................. 106
Ventana Paramétricos
.............................................................................................................................. 115
Ventana Mediciones
.............................................................................................................................. 120
Ventana Certificaciones
..............................................................................................................................
Ventana Ajusta precio 121
Ventanas ..............................................................................................................................
de Propiedades 122
......................................................................................................................................
Ventanas Propiedades, características comunes 122
...................................................................................................................................... 128
Ventana Propiedades: Capítulo
...................................................................................................................................... 134
Ventana Propiedades: Elemento
...................................................................................................................................... 137
Ventana Propiedades: Referencia
...................................................................................................................................... 139
Ventana Propiedades: Entidad
......................................................................................................................................
Ventana Propiedades: Centro de coste 142
...................................................................................................................................... 146
Ventana Propiedades: Recurso
...................................................................................................................................... 151
Ventana Propiedades: Contrato
...................................................................................................................................... 155
Ventana Propiedades: Documento
...................................................................................................................................... 159
Ventana Propiedades: Banco
...................................................................................................................................... 161
Ventana Propiedades: Persona
...................................................................................................................................... 162
Ventana Propiedades: Equipo
...................................................................................................................................... 195
Diálogo Informe por impresora
...................................................................................................................................... 196
Ventana Programa JavaScript
...................................................................................................................................... 198
Ventana Parámetros del programa
..............................................................................................................................
Ventana Configuración global de parametricos 200
.............................................................................................................................. 201
Ventana Fases
.............................................................................................................................. 204
Ventana Ámbitos
..............................................................................................................................
Ventana Planifica Tareas 206
..............................................................................................................................
Ventana Ajusta presupuesto 211
..............................................................................................................................
Ventana Hoja final 213
Búsqueda..............................................................................................................................
de información 216
Ventana Búsqueda General ...................................................................................................................................... 216
...................................................................................................................................... 218
Ventana Búsqueda por Términos
......................................................................................................................................
Ventana Búsqueda en Lenguaje natural. Tesauro 219
......................................................................................................................................
Otras formas: Panel de Búsqueda en árbol 223
...................................................................................................................................... 225
Otras formas: Búsquedas QBE
......................................................................................................................................
Otras formas: Búsquedas por Tipo y Clase 231
......................................................................................................................................
Otras formas: Búsquedas por Clasificaciones 232
.............................................................................................................................. 235
Ventana Características
............................................................................................................................... 237
Menú Herramientas
.............................................................................................................................. 237
Menú Herramientas
..............................................................................................................................
Ventana Central de proyectos 241
..............................................................................................................................
Ventana Conexión ERP 243
..............................................................................................................................
Ventana Modos traslada 246
..............................................................................................................................
Diálogo repara B.D. 250
Submenús..............................................................................................................................
de Exportacion e Importación 251
Exporta FIEBDC-3... ...................................................................................................................................... 251
......................................................................................................................................
Importa mediciones AllPlan FT v16 258
..............................................................................................................................
Personalización de la barra de herramientas 261
.............................................................................................................................. 262
Ventana Utilidades
.............................................................................................................................. 265
Ventana Opciones
............................................................................................................................... 279
Menú Marcadores
.............................................................................................................................. 279
Menú Marcadores
............................................................................................................................... 281
Menú Ventanas
.............................................................................................................................. 281
Menú Ventanas
Menú Ayuda ............................................................................................................................... 285
.............................................................................................................................. 285
Menú Ayuda
............................................................................................................................... 287
Diálogos de importancia
.............................................................................................................................. 287
La Calculadora
..............................................................................................................................
Diálogo selección de conceptos 292
..............................................................................................................................
Diálogo selección de informes 292
..............................................................................................................................
Diálogo Borrar concepto 294
..............................................................................................................................
Diálogo Cambio de icono 295
..............................................................................................................................
Diálogo Cambio de tipo 297
..............................................................................................................................
Diálogo Nuevo Concepto 297
..............................................................................................................................
Diálogo Selector de campos 299
..............................................................................................................................
Ventana del actualizador 300
Anexo 1: SQL
Introducción al...............................................................................................................................
lenguaje SQL 303
Anexo 2: JavaScript
...............................................................................................................................
Guía de referencia de lenguaje JavaScript 319
...............................................................................................................................
Extensión COM: Introducción 355
...............................................................................................................................
Extensión COM: Objetos y métodos básicos 357
...............................................................................................................................
Extensión COM: Objetos y métodos para acceso a datos 369
...............................................................................................................................
Extensión COM de JScript para datos de presupuestos 383
...............................................................................................................................
Extensión COM de JScript para programar informes 387
...............................................................................................................................
Extensión COM: Ejemplos 395
...............................................................................................................................
Preguntas frecuentes sobre programación JScript 397
...............................................................................................................................
Conexión ingra.xjs para automatizar la aplicación 399
Introducción al...............................................................................................................................
FIEBDC 401
Observaciones...............................................................................................................................
para editores de Bases de Datos 405
Especificación...............................................................................................................................
FIEBDC-3/2007 409
..............................................................................................................................
Especificación completa 409
Especificación...............................................................................................................................
FIEBDC-3/2004 479
..............................................................................................................................
Especificación completa 479
Especificación...............................................................................................................................
FIEBDC-3/2002 547
..............................................................................................................................
Especificación completa (desde 1/1/02) 547
Especificación...............................................................................................................................
FIEBDC-3/98 609
.............................................................................................................................. 609
Generalidades
Resumen..............................................................................................................................
de tipos de registros 622
..............................................................................................................................
Procedimiento de lectura de descomposiciones paramétricas 623
..............................................................................................................................
API estándar FIEBDC-3/98 para descr. param. compiladas en DLL 630
..............................................................................................................................
Especificación de las funciones del API 637
Ejemplos ..............................................................................................................................
de la compilación de paramétricos 648
..............................................................................................................................
Cambios FIE98 respecto a FIEBDC-3/95 678
Especificación...............................................................................................................................
FIEBDC-3/95 679
.............................................................................................................................. 679
Generalidades
Resumen..............................................................................................................................
de tipos de registros 689
..............................................................................................................................
Procedimiento de lectura de descomposiciones paramétricas 690
Especificación...............................................................................................................................
FIE 1.01 699
.............................................................................................................................. 699
Generalidades
Otros Anexos
...............................................................................................................................
Conceptos avanzados de mediciones y presupuestos 703
............................................................................................................................... 709
Preguntas frecuentes
Versiones ............................................................................................................................... 715
............................................................................................................................... 717
Instalación y configuración
..............................................................................................................................
Administradores: Detalles de instalación 717
Instalación..............................................................................................................................
y solución de problemas 720
..............................................................................................................................
Tipos de archivos que maneja el programa 724
Como primera idea general, diremos que una base de datos para nosotros, será un
conjunto de conceptos de varios tipos posibles, tanto básicos o muy generales (Carpetas,
Varios, Documentos, Referencias a archivos...) como más detallados y particulares para
el propósito de medir, comprar material y realizar presupuestos (Partida, Especialidad,
Maquinaria, Materiales, Subcontratas, Equipos, Entidades, y otros muchos...). También
puede haber conceptos sin tipo.
Cada concepto es una unidad de información que contiene varios campos (como un
registro de una base de datos cualquiera, o una línea de una hoja de cálculo de Ms-
Excel, por ejemplo) y distintos grupos de información relacionada, dependiendo de su
tipo.
Requerimientos Software
La aplicación está desarrollada para sistemas operativos Microsoft® Windows de 32 y
64 bits, lo que comprende Windows XP, Vista y Windows 7. Trabaja aprovechando las
características del sistema, pero también incluye muchas facilidades de manejo
especialmente diseñadas para las tareas específicas que se han de realizar con él,
resultando con ello muy fácil de manejar.
Requerimientos Hardware
La configuración mínima necesaria para utilizar esta versión de la aplicación, es la
del sistema operativo sobre el que esté instalado. Se recomienda por comodidad,
tener una tarjeta gráfica y monitor en color SVGA con resolución de 1.024x768,
aunque puede funcionar a partir de 640x480.
Introducción al programa / 2
B.D. relacional y Orientada a objetos
La aplicación maneja y gestiona una base de datos en parte relacional y en parte
orientada a objetos; veamos qué significa cada una de esas características y cómo se
aplican a los datos que manejamos.
Esta descripción muestra lo que se conoce como modelo orientado a objetos, y nos ha
permitido la creación de esta plataforma que incluye numerosas herramientas para
trabajar con conceptos genéricos y permiten personalizar el programa en
muchísimos aspectos.
-Conceptos
-Auxiliares
- ...
Introducción al programa / 4
Convenciones de nomenclatura y tipografía
Nomenclatura para uso del ratón
En adelante, nos referiremos a las diferentes acciones que se pueden realizar con el
ratón utilizando los siguientes términos:
Arrastrar
Pulsar el botón izquierdo, desplazar el puntero del ratón sin soltar el botón, y soltar el
botón en el lugar de destino
Seleccionar
Haciendo clic sobre un elemento, queda seleccionado —si hubiera otros elementos
seleccionados, se excluyen de la selección—. Si se hace clic arrastrando, todos los
elementos por los que se pase, quedan seleccionados
Multiseleccionar
Para seleccionar elementos contiguos, seleccionar el primer elemento y el último,
manteniendo pulsada la tecla MAYÚSCULAS. Si en la selección resultante pulsamos
CONTROL sobre un elemento que estaba seleccionado, se excluye, y viceversa
El algunos procesos del programa —por ejemplo, trasladar conceptos entre archivos,
o mover elementos de una lista—, el orden en que se seleccionen los elementos
puede ser relevante.
Botón
Rectángulo gris en relieve con un rótulo y generalmente con un dibujo sobre él
Conmutador
Pequeño cuadrado blanco que puede estar vacío (desactivado) o contener una marca
azul de aceptación (activado); va acompañado de un rótulo que lo identifica. También
puede ser un botón que se queda pulsado y con el fondo de un color más claro, en
este caso estaría activado.
Selector
Conjunto de círculos con un rótulo, de los cuales sólo uno aparece relleno de azul,
indicando, entre un grupo de opciones excluyentes posibles, la que está
seleccionada
Campo de texto
Rectángulo para introducir texto en su interior; se utiliza en todos los campos de
entrada, y puede ser monolínea o multilínea
Lista desplegable
Cuadro de texto que solo admite determinados datos. Haciendo clic sobre él, se
despliega la lista de posibles valores.
Campo
Cuadro de texto o lista desplegable que puede tener distintos comportamientos que
un cuadro de texto normal. (ayudas al teclear, funciones especiales, etc.)
Convenciones Tipográficas
Color azul
Los nombres de botones, opciones de menú y rótulos de secciones de la ventana, se
indican con este color, para localizarlos fácilmente entre el texto
Negrita
Se utiliza para referirse a nombres de ventanas, informes...
Cursiva
Se utiliza para indicar texto variable que el usuario o el programa sustituyen por
algún valor concreto
Introducción al programa / 6
[Texto entre corchetes]
En algunos lugares de la ayuda se utilizan corchetes para indicar —en instrucciones
o comandos del sistema— fragmentos de texto cuya inclusión es opcional
Subrayado
Se utiliza para referirse a programas del sistema operativo y para resaltar notas de
importancia
>
Separador de una secuencia de opciones. Se utiliza para describir la navegación por
las opciones de menús, ventanas y selección de botones, por ejemplo
Subrayado color
En color verde, y algunas veces azul, son saltos de hipertexto que nos permiten ir de
unas referencias a otras, dentro de la ayuda
Concepto
Es la unidad central y básica de información de nuestras bases de datos. Cada
concepto es una de las líneas que aparece en la ventana principal (aparecen también
en otras ventanas de propiedades, de búsqueda, etc.), y aparte de la información que
ahí se muestra (los campos Código, Descripción, y otros cualesquiera), tienen
relacionada otra información según su Tipo. Así, trabajando con cualquier concepto,
podríamos asociar un gráfico o bien uno o varios textos...
Relación
Un conjunto de conceptos, y la unión entre ellos (relaciones) son lo que conforman el
árbol de conceptos de la base de datos. Los conceptos también pueden estar "sueltos"
o "descolgados" en la base, en este caso no forman parte del árbol.
De las relaciones depende información muy importante en la obra como por ejemplo,
las mediciones desglosadas de los conceptos de tipo elemento y unidad de obra, y los
rendimientos de los recursos que intervienen en estos elementos.
Descomposición
Con la jerarquía que se establece entre conceptos a través de sus relaciones, se
entiende por descomposición o descendientes de un concepto, la lista de conceptos
que están a nivel inferior (los que "cuelgan" o mantienen una relación por debajo de
él).
T erminología básica / 9
organización jerárquica en el panel de Búsqueda en árbol de la ventana principal.
Hay que destacar, que el árbol puede tener varios niveles de profundidad, o no. El caso
límite sería una base de datos con un nivel de carpetas de búsqueda —ver más abajo
—, y todos los conceptos descolgados del árbol, "sueltos" en la base de datos, pero
accesibles mediante esas búsquedas.
Concepto raíz
Se trata del concepto del que "cuelgan" todos los demás que estén ordenados
jerárquicamente en el árbol de conceptos. Su código es un punto (.) y no tiene
ascendiente (su nivel en el árbol es el cero).
Introducción al programa / 10
Guía rápida de usuario
Lección 1: Consultar un ejemplo
Este tutorial o guía paso a paso en varios capítulos está basado en el manual, que se
distribuye en el CD-ROM en un archivo .PDF. La ventaja de éste, es que tiene
referencias a los temas de la propia ayuda en línea, que siempre la tiene disponible con
el programa, y que es más concisa y con ejemplos prácticos más ágiles (es
recomendable que utilice un archivo de muestra como ejemplo.men que se encuentra
en el directorio \EJEMPLOS).
Un archivo con extensión .men puede contener cada uno de los siguientes tipos de
datos: un proyecto de obra (incluyendo presupuesto y certificaciones), una base de
datos de la construcción que haya adquirido de algún organismo desarrollador, una
oferta para licitación de precios, un proyecto y una serie de fases de ejecución para
controlar el seguimiento de una obra...
Al abrir un archivo de Menfis (extensión .men), puede encontrarse con una base de
datos que contenga miles de especificaciones y precios pero ninguna medición; o
bien, un proyecto de obra donde habrá capítulos y partidas con sus mediciones.
Aunque sean de distinta naturaleza, los datos se consultan y editan de la misma
forma.
1. Demolición
1.3.1 …
2 Estructuras
2.1.1 Oficial 1ª
2.1.4.2 Cemento
2.1.4.3 Arena
3 Movimiento de Tierras
...
Medios auxiliares
Introducción al programa / 12
Precios auxiliares, que tienen a su vez descomposición (como la fábrica de
hormigón)
IM PORTANTE: Se llama concepto a cada unidad de información del archivo, bien sea
capítulo, partida, auxiliar, o simple. Una partida de obra interviene en el capítulo en
una cantidad determinada que se llama medición. Un auxiliar o un simple
interviene en la partida en una cantidad que se llama rendimiento. Para más
información -> consultar la terminología básica.
Puede utilizar el panel de búsqueda en árbol para ver en el archivo de ejemplo los
cuatro niveles (capítulo, partida, auxiliar y simple con las cantidades de este último).
Calculando de abajo a arriba en el presupuesto:
2. El coste de una partida está definido como su precio más los costes indirectos
y redondeado al número de decimales que se establezca en cada caso en
función de la moneda utilizada y los decimales expresados en Parámetros
generales. Los costes indirectos se especifican como un porcentaje que se
aplica a todas las partidas del archivo.
De los capítulos (representados por conceptos de Tipo carpeta) pueden colgar partidas
u otros capítulos de los que a su vez cuelguen partidas; no hay límite en el número de
niveles de la estructura organizativa del archivo.
Las partidas de la obra pueden representarse con una Clase especial de concepto,
dentro del Tipo Varios, así como los precios simples pueden representarse mediante
el Tipo Recurso, y además con distintas Clases (Material, Maquinaria, Mano de obra,
Subcontrata...) Pero no se asuste: para un proyecto y certificaciones normales, no es
necesario manejar muchos tipos de conceptos (se utilizan cuando queremos hacer
alguna clase de seguimiento económico o control de obra). Todo esto se verá en
detalle más adelante.
El Precio es único para cada concepto, pero SÓLO EN LA MISMA FASE, esto quiere
decir que cada concepto puede tener varios precios a lo largo de todas las fases del
proyecto, como puede tener varios precios en la misma fase, pero en DISTINTOS
ÁMBITOS DE precios: En el mismo ámbito y la misma fase un concepto sólo puede
tener un Precio igual que sólo tiene un Código.
En cambio, otros datos pertenecientes a la relación, como las mediciones, son: las
mediciones desglosadas, el factor que afecta a las mediciones, la marca de actividad
Introducción al programa / 14
finalizada...
Si realiza los presupuestos con una base de datos de la construcción, para trasladar
cómodamente información a nuestros proyectos, podemos: bien importar el archivo
en formato estándar FIEBDC-3 que es uno de los formatos de distribución de la base,
o bien abrir el archivo Menfis de la versión que sea que se distribuya (muchas bases
utilizan Menfis para su elaboración y distribución).
Abrir un archivo
Ya hemos iniciado el programa, y podemos ver las herramientas y botones
principales en el tema ventana principal.
El directorio de trabajo
Cuando trabajemos con Menfis, después de instalarlo, el directorio de Trabajo estará
definido por defecto en el directorio Público (el directorio raíz de instalación del
programa), pero podemos cambiarlo para tener en un directorio independiente los
archivos de trabajo leídos y grabados, así como el histórico de directorios favoritos
Seleccione el botón Herramientas > Opciones.... > Directorios > Trabajo para abrir
el diálogo estándar con ese mismo nombre. Pulse el botón Crear nueva carpeta, para
crear el nuevo directorio de trabajo, dándole el nombre DATOS, vemos que pos
defecto aparece en el directorio de instalación.
Pulse INTRO para aceptar la creación del directorio, y el botón Guardar para cerrar
el diálogo. Pulse Cierra en la ventana Opciones
a. Mantener una copia del estado original de los archivos de ejemplo (aunque
siempre podemos recuperarla del CD-ROM en caso de apuro)
b. Poder partir desde el principio de cualquiera de las prácticas sin tener que
depender de en qué punto nos quedamos modificando los archivos
El primer paso será, como hemos dicho, copiar el archivo mediante Archivo·Copia
archivo... porque vamos a hacer pruebas y no sabemos cuando lo vamos a modificar.
Le damos en el diálogo el nombre MI_centro97 y la extensión .men se la pondrá
automáticamente el programa.
Este diálogo no solo permite seleccionar un archivo para abrirlo, sino que en él se
puede: eliminar archivos, cambiar de nombre, copiar, y mover archivos. Un diálogo
similar encontrará cada vez que tenga que seleccionar un nombre de archivo, bien
sea para crearlo, importarlo, leerlo, etc.
Recuerde, que como en otros programas Windows, al final de las opciones del menú
Archivo se añade una lista con el histórico de los últimos archivos abiertos. Si
selecciona uno de ellos, se abrirá automáticamente.
Tenga en cuenta que los archivos de Menfis 8 no pueden ser leídos con versiones
anteriores de Menfis, la compatibilidad es siempre hacia atrás.
Introducción al programa / 16
Con el botón derecho del ratón sobre la lista de archivos se despliega el menú que le
permitirá organizar sus archivos, sin necesidad de utilizar el Explorador del
Windows.
Lea la pista de cada uno de los botones del diálogo, y si lo desea pruebe a pulsarlos
para conocer su funcionalidad.
Los datos de Menfis se guardan cada vez que se crean o modifican a medida que se
van editando; puede cerrar el programa en cualquier momento con la seguridad de
que los datos están grabados en el disco. Solamente si el programa termina
anormalmente, por un corte de suministro eléctrico o un fallo del sistema, los
archivos necesitarán ser comprobados; esta operación la realiza Menfis
automáticamente al abrir el archivo y no se produce pérdida de datos, salvo quizá el
elemento que se estuviera editando en el momento de la interrupción.
La ventana principal
Para tener una visión general de todas las herramientas accesibles en la Ventana
principal, donde se describen en detalle todas sus partes. A continuación veremos
unos comentarios sobre su utilización.
En cada una de las ventanas principales puede abrir un único archivo .men,
pudiendo trasladar información de un archivo a otro. (otra posibilidad es abrir el
mismo archivo en las dos, para tener dos vistas de él y trasladar información de unas
zona del archivo, a otra).
En los proyectos, los múltiples ámbitos pueden tener otros usos como por ejemplo,
llevar simultáneamente los precios de compra, de venta, el oficial, etc. en el control
Por último, señalar que este archivo no contiene mediciones -ya que se trata de una
base de datos-, luego no puede calcularse el presupuesto, en caso contrario,
aparecería en esta misma sección, a la derecha del todo, el presupuesto calculado
del concepto padre de la lista actual. En caso de estar en el primer nivel, el
presupuesto total del proyecto.
La lista de conceptos
La zona central de la ventana principal, puede estar dividida en dos paneles, si lo
desea. Arrastrando con el ratón la barra vertical que puede encontrarse pegada al
lado izquierdo, podemos redimensionar el panel de búsqueda en árbol. Su
funcionamiento es muy similar al panel de árbol del explorador, ya que además
sincroniza cualquier posicionamiento, con el lado derecho.
La sección que hay sobre la cabecera de la lista, que ahora nos muestra el concepto
raíz (.) y el rótulo del mismo: PRECIOS CENTRO (EXTRACTO), varía según el tipo de
consulta que se realice. En este sentido la lista de conceptos puede contener:
Una lista de padres (composición) de un concepto dado, el título mostrará los datos
del concepto hijo común.
Una lista de conceptos que cumplen una determinada condición: por ejemplo: que su
resumen contenga la palabra 'hormigón'. En este caso se muestra el rótulo "LISTA
DE CONCEPTOS:".
Una lista de relaciones o padre-hijo que cumplen una determinada condición. Para
representar las relaciones, siempre se muestran los datos del concepto hijo de cada
una de las relaciones, y los datos interesantes de la relación. Por ejemplo, si
buscamos conceptos que tengan un rendimiento inferior a 1, el título de la lista
muestra el rótulo "LISTA DE RELACIONES:".
Las columnas de la lista de conceptos, y las de todas las listas de Menfis, tienen
como cabecera botones rotulados: Tipo, Código, Ud., Resumen, ... y otros incluso
programables.
Estos botones cabecera de lista pueden estar visibles u ocultos y la pulsación sobre
Introducción al programa / 18
los visibles, tiene el siguiente comportamiento:
Las columnas de la lista (se muestren o no, ya que se pueden personalizar mediante
el menú contextual) son, por orden:
Código: identificador único para cada concepto, JUNTO al código de Tipo, es decir,
en cada uno de los distintos tipo sí puede repetirse un código.
Precio: precio del concepto o coste (precio del concepto más costes indirectos,
definidos en el campo Proyecto·Ventana Parámetros Generales...·Decimales·%
Costes indirectos), cuando se muestra una descomposición al nivel de partidas.
Cantidad: medida en la que interviene cada concepto hijo en el concepto padre. Este
dato aparece en color morado para indicar que esta cantidad es un dato de la
relación entre conceptos, y no del propio concepto, como por ejemplo el Resumen.
Info: son pequeños iconos de características que indican qué información tiene
asociada cada concepto. Más adelante, en el tema La columna Info, se detalla el
significado de los más habituales, aunque pueden definirse los que se desee en la
ventana Proyecto·Características...
Existe un código de colores para facilitar la lectura de los datos de conceptos. Estos
colores pueden modificarse en cada uno de los botones de la pestaña
Herramientas·Opciones...·Letras y Colores.
La columna Tipo
Vamos a ver una de las partes más importantes de la filosofía del nuevo Menfis8:
que los conceptos que almacenan la información de la base de datos tienen asignado
un Tipo, y dentro del Tipo, puede tener una Clase (una especie de subtipo, pero con
información común entre las Clases del mismo Tipo). En función del Tipo y/o Clase,
el concepto tiene unas propiedades particulares y podemos identificarlo entre los
demás conceptos.
Hay bastantes Tipos de conceptos distintos en la aplicación, cada uno tiene unos
datos particulares -aunque haya datos comunes a algunos tipos-. Lo más importante
en cuanto a interfaz de ventanas, es que cada Tipo tiene una sola ventana de datos,
pero las pestañas y campos de la ventana pueden cambiar en función de la Clase de
conceptos que se esté mostrando.
Los nombres de cada uno de los Tipos no son modificables, pero sí podemos
personalizar el icono para algunos conceptos particulares, de forma que se coloque
"encima" del icono que por Tipo o Clase le corresponde. Puede hacer esto mediante
la opción Concepto·Concepto actual >·Cambio de icono...
Esta ventana sólo se utiliza para el mantenimiento que hemos mencionado y unas
búsquedas que no son muy finas, porque en archivos grandes nos ofrecerán listas de
centenares de conceptos.
Introducción al programa / 20
En las ventanas de información adicional de los conceptos (textos descriptivos, textos
clasificados, gráficos, etc.), el botón Siguiente y la tecla F1 desplazan la selección una
posición hacia abajo en la ventana principal.
Si en vez de hacer clic para seleccionar, hace doble clic sobre un concepto, se
mostrará su descomposición, apareciendo el concepto padre como título de la lista de
sus hijos. Puede conseguir el mismo efecto seleccionando el concepto y pulsando el
botón Inferior, o la tecla F4. De forma análoga funciona Superior (F3), que le
permitirá subir desde cualquier profundidad de nivel hasta llegar al concepto raíz.
Seleccionando sobre cualquiera de las líneas con el botón derecho del ratón, iremos
en sentido contrario, subiendo por la estructura hasta el concepto raíz.
En los proyectos de obra el uso de la Entidad es similar -una ficha de datos-, aunque
utilizando las herramientas de control de costes, se relacionará con más datos.
Haga doble clic sobre el icono de Tipo y se mostrará la ventana de propiedades. Con
los botones Siguiente (F1) y Anterior (F2) puede moverse por las entidades de la
ventana principal.
**********************************
Nuevos conceptos
Cuando el modo Edición está activado, debajo de la lista de conceptos, aparecen
campos de edición al pie de las columnas editables (en principio: Código, Resumen,
Precio y Cantidad). Las demás columnas son de gestión automática o de datos
calculados, por lo que no se pueden editar directamente.
Introducción al programa / 22
Veamos varias formas de crear conceptos:
A. Posicionados sobre una línea vacía, Tecleando un código: Teclee "01" (sin las
comillas ") y pulse INTRO. En la ventana principal se nos ha creado un
concepto con el código introducido, y junto a él una estrella de color amarillo.
Pinchando en la estrella amarilla podemos cambiar de Tipo; ahora nos
interesa crear conceptos de organización (carpetas), que es el que nos
sugiere. En el campo Resumen teclee "Demolición" y pulse INTRO o
TABULADOR, con lo que se acepta el dato y pasamos al siguiente campo.
El archivo paralelo
En la ventana Menfis1 puede tener abierto un único archivo (una base de precios, o
una obra con su proyecto y certificaciones), para trasladar información entre
archivos es necesario ver simultáneamente los dos archivos. Para ello se utiliza
una segunda ventana principal llamada Menfis2, ambas ventanas son idénticas.
Para trasladar varias partidas a la vez, debe saber que se trasladan manteniendo el
orden en que fueron seleccionadas (aunque luego podemos moverlas dentro de
Menfis1).
Para comprobar la información copiada, haga doble clic sobre una de las partidas de
la ventana Menfis1 y verá que también se ha trasladado su descomposición en
simples.
Abra la ventana Concepto > Ventana Textos..., y podrá ver que también se trasladó el
texto de las partidas. La información trasladada se COPIA desde el archivo de la base
de datos al archivo de nuestro proyecto. Puede modificar precios, etc. sin que afecte
al contenido del archivo origen.
Introducción al programa / 24
Trasladar conceptos de códigos conocidos
No cierre el archivo de base de datos centro97.men de la ventana Menfis2.
Suponga que conoce los códigos de los conceptos que tiene que trasladar desde la
base de datos al proyecto de obra. Haga doble clic sobre uno de los capítulos de
Menfis1. En el campo de edición de la columna Código, teclee "E01MRL040" e INTRO.
Si no la había trasladado ya, aparecerá con todos sus datos, ya que ha buscado en el
paralelo y la ha tomado de allí.
Cuando teclea un código de concepto, Menfis busca este código en el archivo actual:
Ejemplo: creamos bajo el capítulo 01 una partida alzada "EE01" con Unidad metros
cuadrados "m2" (Si nos pregunta si queremos crear una unidad nueva, pulsamos
Aceptar, porque las Unidades no son textos libres sino Clasificados), Resumen
"Desbroce terreno" y Precio 2,33.
Duplicar conceptos
Otra posibilidad es que necesite varias partidas iguales o casi iguales, pero deban
tener distinto precio y alguna otra unidad de información distinta. Seleccione la
Ambos conceptos son independientes y se pueden modificar todos sus datos sin que
uno afecte al otro.
Los datos de cada línea de concepto se modifican en los campos de edición al pie de
las columnas. Nos situamos al nivel de las partidas y fíjese en que la cifra que figura
en al campo Precio no coincide exactamente con la que aparece en la lista de
conceptos. Esto es debido a que cuando se cuelga un concepto no capítulo debajo de
una carpeta, se considera que se trata de una partida de obra, aplicando los costes
indirectos y el redondeo del número de decimales de costes. En este caso la
diferencia corresponde al redondeo, puesto que aún no se ha especificado un
porcentaje para los costes indirectos.
Tecleamos "1000" como nuevo precio de la partida y pulse INTRO. Aparece un diálogo
con el mensaje de aviso: No se puede cambiar el precio de un concepto con
descomposición. a no ser que se trate de unas condiciones muy especiales -un precio
definido en múltiples ámbitos de precios (ya veremos que son en otro capítulo), sea
un ámbito con ruptura y no sea el precio del ámbito principal-.
Haga clic con el botón derecho del ratón para visualizar de nuevo la partida y
observará que el coste de la partida se ha recalculado. De la misma forma podemos
cambiar el Resumen, el Texto descriptivo, e incluso la descomposición y otros datos,
abriendo la ventana de propiedades del concepto mediante un doble clic de ratón en el
icono del concepto.
Introducción al programa / 26
auxiliar que tienen un funcionamiento peculiar en cálculos de importes.
Cuando existen caracteres por delante del carácter "%", el precio del concepto se
calcula como la suma de subtotales de los conceptos posicionados por encima de su
posición en la lista, cuyos primeros caracteres del código coincidan con los
caracteres antepuestos al "%" en el código del concepto especial. Por ejemplo, el
concepto especial MM% sólo utilizará para calcular su precio los conceptos anteriores
cuyo código comience con MM. Su propio código actúa como filtro.
**********************************
Tenemos todos los conceptos y estructura de la obra definidos, ahora falta introducir las
mediciones. Partiremos del archivo ejemplo.men original para no trabajar con pruebas
de otras lecciones. Recuerde hacer una copia de él antes de empezar a practicar, para
mantener siempre un original.
Para especificar una medición simple, partimos desde la ventana principal. Seleccione
el primer capítulo y bajo un nivel en la descomposición, marcamos la partida ECMR.6ab.
Para especificar una medición simple son situamos en la columna Cantidad e
introducimos otro valor (el programa nos pregunta si queremos eliminar la medición
desglosada porque esa partida ya tiene una). Aceptamos y podemos comprobar que el
cambio de medición e Importe se reflejan inmediatamente, esto es debido a que el
archivo está en modo Calculado en el menú Herramientas.
Cuando el conmutador Calculado está activado, Menfis mantiene todos los precios y
Se puede introducir directamente una cantidad pero, por supuesto, es posible introducir
la cantidad desglosada en líneas. Para abrir rápidamente la ventana de Mediciones
desglosadas, hacemos doble clic sobre los iconos de la columna Info. Estos iconos
indican las características de información asociadas a cada concepto, y según un
criterio de prioridad cuando tiene mediciones, se muestra esta ventana (si no tuviese
mostraría la de textos, y sino pasaría a mostrar la descomposición como si hiciéramos
clic en cualquier otra parte de la línea).
Recuerde que el conmutador Edición de la ventana principal debe estar activado para
que aparezcan los campos de edición.
Formato de mediciones
Lo primero es definir el formato (dimensiones) de la medición. Si no nos valen las
dimensiones que la ventana nos sugiere, podemos abrir y cerrar dimensiones
haciendo clic en su botón de cabecera, o definiéndolas en el diálogo del botón
Formato.
La lista de líneas de medición contiene una columna con la cabecera T (tipo), que
sirve para visualizar el tipo de cada línea de medición. Sirve para establecer líneas
de medición de tipos especiales (cálculos, rótulos, filtros...), además de las de desglose
normal. Los tipos especiales se ven en el diálogo que se muestra con el botón Tipo...:
suma Parcial, suma Total, Expresión, Cabecera alternativa, Grupo analítico, y
Referencia externa.
Introducción al programa / 28
En la cuarta línea introduzca "Muro norte" con las mediciones siguientes: "1" en
NºUds., "2,34" en Largo y "4,56" en Ancho.
En la quinta y sexta línea introduzca únicamente el campo Largo. Con los valores
"3,27" y" 4,20", respectivamente. Copiándose automáticamente los valores de los
otros campos desde la cuarta línea a la quinta, y de la quinta a la sexta.
En la siguiente línea seleccione "P" como tipo de línea de medición (sin ningún
comentario, que es opcional).
Por último, añada una nueva línea tecleando "Total Salón comedor" en su
Comentario, pinche con el botón derecho del ratón en la columna T y seleccione "T"
para el tipo de línea, pulsando Acepta. Las líneas tipo Total, presentan en la columna
Parcial, la suma de parciales desde el comienzo de la medición.
Fíjese en los parciales: Las tres primeras líneas han sumado los valores de Largo y
Ancho; y las otras tres líneas han multiplicado los tres valores: NºUds., Largo y Ancho.
Puede utilizar las líneas de tipo E (expresión) con las siguientes variables:
a = NºUds.
b = Largo
c = Ancho
d = Alto
Desde que se especifica una línea de tipo E hasta la siguiente línea de tipo E los
parciales de cada línea posterior se calculan con la expresión definida en la columna
Comentario de la línea de tipo E.
Verá que el parcial de esta línea es 25,76 (es el resultado de evaluar su expresión),
pero la siguiente línea sigue calculándose con la expresión definida en la última
expresión no constante.
Para asignar al campo actual el resultado de una operación, por ejemplo la raíz
cuadrada de 1,69 más la mitad de 3,4 teclee: sqrt(1,69)+3,4/2.
Seleccione una partida cualquiera del capítulo "01" de nuestro archivo de ejemplo y
pase a la ventana medición.
Introducción al programa / 30
Abra en la ventana paralela el mismo archivo de prueba, y su correspondiente
ventana de medición. En el menú ventanas es posible que tenga una combinación de
ventanas que corresponda con esta; puede seleccionarla en vez de abrirlas una por
una.
Ahora seleccione una partida distinta de la de Menfis1 que tenga una o más líneas
de medición.
Quite el modo Edición de la ventana principal, sólo de esta forma se pueden expandir
las referencias hechas a otras mediciones. Pulse el conmutador M.Expande y podrá
ver el desglose de la medición como si la hubiera tecleado. En la programación de
informes se pueden utilizar funciones para mostrar las mediciones como más nos
convenga: expandidas o como referencias.
Como puede ver, los datos en la columna Ancho han pasado a Alto y no se ha perdido
ninguna información. Esto pasará siempre que se mantenga el mismo número de
dimensiones, Menfis siempre intentará que no se pierda información.
En el desglose de la primera medición del capítulo 03, seleccione las tres primeras
líneas (por ejemplo, haga clic en la primera y arrástrelo hasta la tercera).
Seleccione también la última línea, haga clic sobre ella manteniendo pulsada la
tecla control (multiselección).
Arrastre el ratón sin soltar el botón, hasta ponerse encima de la primera línea y
suéltelo.
Para borrar una línea de medición seleccione la línea haciendo clic sobre ella o
desplazándose hasta ella y pulse la tecla SUPR. Si desea borrar varias líneas
consecutivas, mantenga presionada la tecla SUPR
Si quiere borrar varias líneas sucesivas o salteadas, haga una selección múltiple de
las líneas a borrar y haga clic en el botón Elimina, se realizará la operación sin pedir
confirmación.
En el momento en que utiliza los botones Siguiente o Anterior para seleccionar otro
concepto, o pulsa el botón Valida, o bien cambia a otra ventana, se recalcula todo el
presupuesto para ajustarse a los cambios hechos en la medición.
Introducción al programa / 32
Para validar la medición sin cambiar de concepto
Con la primera partida del capítulo 04 seleccionada, disponga la ventana principal y
la de Medición de forma que pueda ver todos los datos de las dos a la vez.
Cancelar cambios
Puede deshacer los cambios hechos desde que se comenzó a modificar una
medición, pero sólo hasta que valide los cambios o abandone la ventana. Por
ejemplo, en el caso anterior, como hemos validado la modificación cambiando de
ventana, el botón Deshace... permanece desactivado (no hay nada que se pueda
deshacer).
Pulse INTRO o haga clic en el botón Sí y verá cómo reaparece la línea de medición
que borró hace un momento.
Creamos con una plantilla existente o desde cero, un archivo de presupuesto con una
estructura de capítulos, partidas o actividades de obra, y descomposiciones, si
procede. Esos serán los precios del presupuesto teórico del proyecto. Los datos pueden
provenir de una primera aproximación nuestra, incluidos precios, o de una petición
de oferta para el mismo presupuesto, que estuviese sin valorar.
Cuando llegue el final de una partida, marcamos la línea del concepto con una marca
de finalización (mediante el menú contextual), -no importa que se haya excedido o
no se haya alcanzado la medición de proyecto-. La marca consiste en una letra 'T'
La primera fase siempre se crea con los precios del proyecto y todas las mediciones
en blanco.
La creación de las siguientes fases a la primera, conlleva una copia de las cantidades
de la fase anterior, para mantenerlas o corregirlas, ya que la certificación de cada
Fase SIEMPRE se realiza A ORIGEN de obra (aunque los datos también se pueden
introducir como cantidades parciales en el campo correspondiente de la ventana
principal, C.Parcial, y mostrar otros datos parciales o de proyecto (muy útiles estando
en una fase).
********************************************
Con un archivo de ejemplo abierto en la ventana principal haga doble clic en la línea o
Introducción al programa / 34
clic en Preliminar.
Teclee '5' en el campo Páginas a imprimir, después haga clic de nuevo en Preliminar y
verá que la primera página que aparece es esa, con su número de página correcto.
Ahora reemplace todo el programa que aparece en pantalla por las siguientes líneas
(puede seleccionarlo todo poniendo el cursor en la primera línea y pulsando las teclas
CONTROL+MAYÚSCULAS+FIN, y copiarlo desde esta misma página para no tener que
teclearlo):
//// Informe de prueba
incluir ("cab")
incluir ("libcap")
capitulo_recorre (concepto);
if (que==1) {
imp (bas.con.cod(ci));
return
imp (bas.con.cod(ci));
imp (bas.con._uni(ci));
imp (bas.con.tex(ci));
imp (bas.rcc.pref(ri)),"a5");
imp.linea
imp.linea("v2",1)
Haga doble clic en la línea del informe para ver su vista preliminar. No tiene un
formato muy profesional, pero tampoco lo hemos programado con muchas líneas... y
muestra el Número y Resumen de cada capítulo y debajo, cada partida con su Código,
unidad, Texto descriptivo extenso y Precio.
incluir ("cab")
incluir ("libcap")
capitulo_recorre (concepto);
function paginicia2()
imp.linea ("v3");
Introducción al programa / 36
function concepto (que, ci,ri,niv,pos)
if (que==1) {
imp (bas.con.cod(ci));
return
if (!que) {
imp (bas.con.cod(ci));
imp (bas.con._uni(ci));
imp (bas.con.tex(ci));
imp (bas.rcc.pref(ri)),"a5");
imp.linea
imp.linea("v2",1)
La cabecera estándar imprime por defecto, el título del informe y el número de página
al comienzo de cada página. Las cabeceras con gráficos contienen información de la
Haga clic sobre el nombre de archivo "cab" para abrir la ventana de Programa con el
del informe "CABECERAS Y LIBRERÍAS\Cabecera general"
Tal como están diseñadas las cabeceras y pies del archivo cab.xjs, puede ver que
admiten otras definiciones paginicia2() y pagtermina2() de modo que se puedan
añadir datos en cabeceras y pies, en cada informe. Tenga en cuenta que cada vez
que se hace una llamada a las funciones principales (paginicia), se anula la
definición de las añadidas (paginicia2).
Vaya a la definición de la función paginicia( ) e incluya al final una condición del tipo:
else if (estilo==30) {
...
Dentro puede poner el formato de tabla, las líneas, espacios y definiciones y datos que
quiera en su nuevo formato. Si utilizamos en cualquier informe que incluya esta
cabecera la definición: var estilo=30, se tomará este formato.
Abra la ventana del Programa de informe (haciendo doble clic sobre el nombre del
archivo, a la derecha del todo), y en las primeras líneas verá una lista de variables
definidas con la declaración var y a continuación un doble comentario de color verde,
con cuatro barras inclinadas "/ / / / "
Esta ventana es sólo una forma cómoda de modificar las variables y rótulos de los
programas de informes, ya que también se podrían modificar directamente.
Lo primero que se observa es que todas las variables definidas EN ESTE PROGRAMA
con sus rótulos y valores, son de color negro en la lista de parámetros, y que están en
la parte superior de la lista. En cambio los que hay a continuación son del color
Introducción al programa / 38
morado de "datos en estructura" y pertenecen a otros archivos .XJS pero están
incluidos en el programa actual.
Si ahora lanzamos el informe de Cuadro de Precios de nuevo, verá impresos los datos
que se mostraban en la ventana principal.
Introducción
Explicaremos aquí brevemente las acciones más útiles del teclado, así como algunas
herramientas particulares de la aplicación. dentro del funcionamiento estándar de
Windows:
F1, F2 ... F8 (teclas de función): Los botones la pie de las ventanas se activan
con las teclas de función. Muchas de las ventanas tiene 8 botones, que se
corresponden con F1-F8, los diálogos más habituales tienen dos, o tres, que se
activan con F1-F3 y algunas ventanas con varias filas de botones e incluso no
todos al pie de la ventana, funcionan con las teclas de función combinadas con
CONTROL y con MAYÚSCULAS. En cualquier caso, cada cotón existente en el
programa, lleva una pista que incluye la tecla que lo activa.
TAB: Para desplazarse entre los distintos controles y secciones de las ventanas
(es el estándar en Windows). Para desplazarse al control o sección de la ventana
siguiente. Combinando la tecla con MAYÚSCULAS, se desplaza en sentido
inverso. Dentro de la misma sección de controles, por ejemplo una fila de
botones, el movimiento se realiza con la FLECHAS DEL CURSOR.
El comportamiento del teclado varía según que el foco (la posición actual sobre los
controles de la ventana) se encuentre en la lista o en los campos de texto de la línea
de edición.
Introducción al programa / 40
Con el foco en cualquier campo de edición:
ENTRADA EN LOS CAM POS: Siempre que entremos en un campo de edición, el
contenido de éste aparecerá seleccionado, para poder modificarlo por completo
directamente.
ARRIBA y ABAJO (flechas del cursor): Aunque tengamos el foco sobre el texto,
desplazan la selección en la lista hacia arriba y hacia abajo, sin cambiar de
campo.
INICIO y FIN: Mueven el cursor al principio del campo de entrada o al final del
mismo. Estas teclas combinadas con MAYÚSCULAS, seleccionan el texto desde el
punto actual hasta el inicio o el final.
Introducción al programa / 42
Controles habituales
Hay botones y controles comunes a la mayor parte las ventanas y diálogos del programa,
como en todas ellas tienen las mismas funciones, y los usuarios avanzados ya están
familiarizados con ellos, los explicamos en detalle solamente en este apartado, en
sentido de arriba a abajo.
Este icono sólo aparece si se tiene instalada alguna de las aplicaciones a las que se
Controles habituales / 43
pretende exportar. Los programas Javascript que se utilizan para formatear en el
formato elegido la salida se encuentran en: "COLECCIONES ESPECIALES\MENÚS Y
CONTROLADORES\ CONTROLADORES"
IM PORTANTE: Si cualquiera de estos dos botones se utiliza desde otra ventana que
no sea la principal, el desplazamiento Siguiente / Anterior (es decir subir o bajar por
la lista), en vez de realizarse sobre los padres de las lista que vemos en ventana
principal, se realiza sobre los elementos de la lista actual en pantalla.
1º los informes cuyo nombre comienza con el nombre de la Clase del concepto (En el
Tipo Carpetas, por ejemplo, los "sql1*.xjs")
3º los que comiencen con el nombre de la tabla del concepto (por ejemplo, "con1*.xjs"
se muestra con cualquier concepto, ya que todos pertenecen a la tabla "con")
Controles habituales / 45
En el programa hay estados por defecto originales para las
configuraciones que el usuario puede cambiar. Permiten recuperar un estado
"normal" o "de fábrica", tal como se utilizó el programa la primera vez, por si a raíz de
sucesivos cambios en iconos, rótulos, valores, cabeceras, etc. se ha llegado a un
estado incómodo o incorrecto.
Si quiere ver las posibilidades y funcionamiento del drag & drop (arrastrar y soltar), vea
el tema Abrir archivos.
La estructura de datos que vemos como ejemplo, es como un árbol de conceptos que
parten del concepto raíz (.) y pueden ser de varios Tipos (aunque los primeros niveles de
una base de datos siempre suelen ser organizativos, es decir, de tipo Carpeta. Los
niveles inferiores pueden estar compuestos por cualquiera de los tipos admitidos
La ventana principal / 47
horizontalmente — al mismo nivel — al concepto, con Siguiente/Anterior y seleccionar
uno o varios conceptos en particular. Esta ventana también nos permite presentar
listas de conceptos seleccionados por distintas características (una máscara de códigos,
por Tipo, por la clase de información asociada, precio...)
Otra posibilidad de navegar, es a través del panel de árbol que se muestra extendiendo
el borde izquierdo del campo de la lista de conceptos. Al desplegar las ramas y
posicionarnos en los conceptos del árbol, la lista se sincroniza mostrando el
seleccionado como código padre, y su descomposición en la lista.
Para ver las funciones de teclado y uso de la barra inferior de botones, vea el tema barra
de botones, o haga clic en la zona correspondiente del gráfico. Para ver las operaciones
sobre la lista de conceptos, y la información que contiene, vea el tema lista de
conceptos.
Peculiaridades de Menfis
Aparte de toda la documentación sobre las partes de la ventana, hay algunas
particularidades de controles, rótulos, etc. en algunas secciones:
Posición actual y Modo.- A la derecha del todo aparece el presupuesto total de la Fase,
para tenerlo visible en todo momento aunque nos desplacemos por la estructura.
Además, a nivel de descompuestos, delante de este dato se muestra otro, en los casos
en los que el padre de la descomposición tiene costes indirectos. En este caso se
rotula: (<coste_padre> x <medición_padre>)
Abrir archivos.- Además de arrastrar un archivo con extensión .MEN sobre la ventana
principal, para abrirlo, un funcionamiento particular es para los archivos de la
versión 5: Si en el mismo directorio de un archivo que se abre, existe una serie de
archivos (archivos del mismo nombre que tienen un sufijo numérico o alfabético
como: obra, obra1, obra2... u obraD3, obraD31, obra D32...), entonces se propone
importar todos en uno solo (con el mismo nombre, acabado con el sufijo "_v8"), y cargar
cada archivo como una Fase (certificación).
El nombre de los archivos es importante porque las Fases se crean con el número de
serie del archivo, y si hay alguno que falta, se crean las intermedias (sin ningún
cambio en esas fases, claro).
También podrá ver por debajo de esta sección una barra de iconos que representan
las opciones más importantes de los menús. Esta barra se considera parte de esta
misma sección. Hacer clic en un icono es equivalente a la selección de la opción de
menú correspondiente.
Menús
Vea el tema de módulos, para ver las opciones que incluye su versión. en la ayuda
en línea puede hablarse de herramientas y opciones que su versión no tiene.
La ventana principal / 49
El Menú Marcadores permite gestionar los marcadores (como los de las páginas de
un libro) que se pueden poner en distintas partes de la base de datos
Como es habitual en Windows, puede acceder a las opciones del menú con el
teclado, manteniendo pulsada la tecla ALT y la tecla correspondiente al carácter que
se encuentra subrayado en la opción de menú. Por ejemplo, ALT+A despliega el
menú Archivo. A continuación pulsamos la tecla que corresponde a la opción que
quiere seleccionar (por ejemplo F para finalizar el programa).
Al hacer doble clic en el espacio libre a la derecha de los botones de la barra, se abre
la ventana Personalización de la barra de herramientas, y es un atajo a la opción de
menú correspondiente: Herramientas > Barra de herramientas...
Al colocar el puntero del ratón, sin pulsarlo, sobre cualquier icono de la barra
durante más de un segundo, aparece un rótulo descriptivo o pista de la acción que
tendrá lugar al hacer clic en el botón.
La ventana principal / 51
permanecemos en la misma fase, y no cambiamos el modo de Edición o modificamos
algún dato. En cuanto se produce una de estas acciones, se borran las cantidades
que aparecen en las columnas C.Calculada y C.Acumulada para cada línea.
A la derecha del todo aparece un botón que puede mostrar dos estados: Bloquea
/desbloquea fase, y nos permite cambiar el estado de bloqueo por Fases.
El botón Fases , abre la ventana de gestión de Fases. Tanto esta ventana como la
Ámbitos, afectan al contenido y recálculos de todo el archivo, por lo que las opciones
de menú que acceden a estas dos ventanas están en el menú Proyecto.
IM PORTANTE: Dentro del presupuesto que podemos ver en esta ventana principal,
solamente hay dos datos dependientes de las FASES: la Cantidad que hay en cada
una de las relaciones entre conceptos y el Precio de cada concepto. Dependiente de
ÁMBITO solamente es el Precio. Es decir, en todas las fases tenemos la misma
estructura de carpetas y los mismos conceptos en los mismos lugares, pero en cada
Los Precios que cambian pueden ser en conceptos simples (sin descomposición), se
muestran en las líneas de conceptos en color verde cuando el concepto tiene
múltiples precios, y sus conceptos padres también, ya que su precio depende de
aquel. También se puede asignar ámbitos de ruptura[****]a conceptos
descompuestos, permitiendo Menfis calcular el importe del concepto con este nuevo
precio, sin utilizar el precio definido en el descompuesto. Cuando se realiza esta
acción sobre los precios, siempre aparece una R a la izquierda de el precio indicando
que éste es de ruptura.
Al abrir un archivo, tenemos por defecto desactivada esta opción, de esta forma no
podemos modificar la información. Al pulsar el selector se activa el modo Edición
abriéndose campos especiales de edición debajo de la lista de conceptos.
La ventana principal / 53
Al crear un archivo nuevo, en cambio, se presenta por defecto con el modo de edición
activado.
Búsqueda general
En primer lugar, en el lado izquierdo de esta sección, se encuentra el acceso a la
ventana de Búsqueda general a la que podemos acceder si pinchamos sobre la
palabra Búsqueda.
Después de esta palabra, tenemos un botón desde el que podremos elegir el tipo y
clase de conceptos a buscar. A continuación, aparecen dos campos de edición en los
que podremos definir un código o una máscara de códigos de búsqueda, así como una
descripción o máscara de descripción que buscará en el campo resumen.
Si pasamos el cursor por encima de cualquiera de los códigos veremos que dicho
código cambia de color y un pequeño texto nos indica de que concepto se trata. Los
códigos de este historial actúan como accesos directos al concepto en cuestión, de
forma que si pinchamos sobre cualquiera de ellos automáticamente entramos en
dicho concepto.
Las flechas intercaladas entre cada código del historial nos muestran una lista de los
conceptos contenidos en dicho nivel. Dentro de esa lista se encuentra, obviamente,
el concepto mostrado en el historial y éste es mostrado en negrita para diferenciarlo
del resto. Estos listados también actúan como accesos directos, de modo que si
REDIMENSIONAR
Los botones son redimensionables sólo mediante el ratón, pero pueden hacerse
desaparecer y aparecer también mediante ciertas opciones de menú contextual.
La ventana principal / 55
proporcionalmente en el espacio que queda.
Al hacer doble clic teniendo el cursor de ésta forma sobre una de las separaciones
entre botones, el campo de la izquierda se ajusta al contenido más largo del mismo.
Los botones pueden mostrarse u ocultarse, y cambiar de orden entre ellos. Su orden
de defecto es el que se describe en el siguiente tema: la lista de conceptos, pero dado
que el usuario puede definir su propia estructura de base de datos, ni el orden ni los
campos son estáticos.
MENÚ CONTEXTUAL
Haciendo clic con el con el botón derecho del ratón se muestra un menú contextual
en cada uno de los botones; todos ellos contienen las siguientes opciones:
Ordenar: Hay tres funciones para ordenar, que se explican más abajo.
Buscar: Busca una cadena de texto en el campo sobre el que se accione, entre la
lista de conceptos o relaciones mostrados. El diálogo que se muestra, permite buscar
una cadena de caracteres cualquiera comenzando desde el inicio, desde la selección
en la lista hacia abajo o hacia arriba.
Calcular totales: Se puede aplicar a los campos que tienen datos numéricos, y
muestra un diálogo con tres columnas: Columna, Total y Selección, que actúa como
una calculadora, sumando todos los campos numéricos que se muestren
actualmente en la ventana (no se suman las columnas que tienen datos pero no se
estén visualizando).
Anchos proporcionales: Establece una proporción para cada botón que se ve, en
función de la longitud de contenido, y ajusta todos proporcionalmente.
Selector de campos: Abre el diálogo Selector de campos para indicar que columnas
se muestran en la lista y cuales quedan ocultos.
La ventana principal / 57
M ostrar y ocultar campos: Tiene la misma funcionalidad que el selector de campos,
pero aquí los nombres de las columnas se muestra en forma de submenú, en el que
se seleccionarán las columnas a mostrar u ocultar.
que indica que está ordenado de forma ascendente, descendente o sin orden (es
decir, con la ordenación por defecto, que es mediante el código), respectivamente.
IM PORTANTE: Una función muy cómoda y potente para ordenar, consiste en que
podemos ordenar por más de una columna, según el orden en que las pulsemos, por
ejemplo: Al pulsar ordenación ascendente en la columna Resumen, y después en
Fecha, la subordenación dentro de las fechas que fuesen iguales, sería la el
Resumen alfabéticamente. En cambio, si pulsamos Resumen otra vez, ordenará por
los resúmenes, y dentro de los que sean iguales, por orden de fechas.
OTROS ESPECIALES:
Botón Exportación de la lista tiene el funcionamiento que se explica en las ventanas
de controles habituales.
Algún botón se puede utilizar con una función distinta, por ser una columna
especial. En concreto, la columna Info, abre la ventana Características, ya que no es
una columna editable mediante un campo al pie, ni interesa su ordenación.
La ventana principal / 59
El separador redimensionable permite repartir el espacio central entre la lista de
conceptos y el árbol jerárquico. Presenta la estructura del archivo en forma de árbol,
donde podemos abrir y cerrar ramas de forma idéntica a como lo hace el Explorador de
Windows, y manteniendo el mismo aspecto.
Cada vez que nos posicionamos sobre cualquier tipo de concepto, la ventana principal
se sincroniza con ese de concepto, de forma que podemos movernos por toda la base
de datos, de forma jerárquica visualmente.
Los conceptos de Tipo Carpeta que son de Clase Búsqueda, no muestran en el árbol la
descomposición de esa búsqueda, ya que esos conceptos no están realmente colgados
de la carpeta.
La lista de conceptos
Es una lista con barra de desplazamiento vertical, que forma columnas de campos
debajo de los botones de la sección anterior. La lista que se muestra puede ser de
varias clases, conceptualmente:
Dependiendo del icono que tengamos en la columna Tipo, los conceptos pueden ser de
varias clases:
Lista de relaciones
Es el caso más habitual en cualquier base de datos, ya que nos da la estructura
jerárquica de la misma. Por ejemplo, un concepto de tipo Carpeta tiene entre sus
descendientes algunos conceptos de tipo Varios. El icono de Tipo de los hijos,
aparecerá una pequeña flecha indicando que en ese momento los datos que
vemos son de conceptos que tienen una RELACIÓN explícita con el concepto padre.
Lista de conceptos
Cuando un concepto de tipo Carpeta tiene una búsqueda asociada, los elementos de
la base buscados pueden ser simplemente una lista de conceptos, sin ninguna
propiedad especial de relación.
Lista de padres
Es también una lista de relaciones, ya que se trata de varios conceptos que se
relacionan con uno sólo que es el que nosotros seleccionamos. Los conceptos de tipo
búsqueda que dan como resultado el concepto que hemos seleccionado, no aparecen
aquí como padres.
La ventana principal / 61
2. En esa misma sección podemos definir un formato predeterminado de botones de
cabecera, es decir. los campos que se muestran en el nivel que estamos viendo,
y con qué tamaño cada uno. Aparte de estas configuraciones predefinidas, por
supuesto, podemos ver una configuración que será la de defecto: la que nosotros
podemos poner a mano en cualquier momento.
Clic izquierdo
Selecciona el concepto sobre el que se encuentra el puntero del ratón.
Clic derecho
Posiciona como padre de la ventana, el último código de la línea de posición actual, y
muestra la lista de descomposiciones con el concepto padre actual seleccionado (si
pertenece a esa lista). Equivale al botón Superior
Columnas habituales
Tipo
Un icono representativo de cada uno de los tipos de concepto disponibles para
seleccionar en el diálogo Selección de tipo. El Tipo determina exactamente qué
propiedades puede tener un concepto, independientemente de la información que
pueda tener asociada (textos, gráficos, términos, etc.) que son comunes a todos los
Tipos.
El puntero del ratón muestra este aspecto cuando entra en la zona de la columna
Tipo, indicando que se pueden utilizar las funciones de arrastrar y soltar, y además,
las siguientes:
El doble clic con el botón izquierdo, abre la ventana de propiedades del Tipo o
Clase que muestre el icono.
El clic con el botón derecho muestra el menú contextual de este campo, que es
el submenú Concepto actual del menú Concepto.
Se muestra cuando se arrastran conceptos por una zona no válida para soltarlos
(fuera de las ventanas del programa, sobre una ventana cualquiera, en un campo
distinto a un campo lista, cuando se están mostrando listas de conceptos, la ventana
destino no está en modo Edición, etc.)
Código
Código único por concepto, que tiene como máximo de longitud 18 caracteres.
Resumen
Comentario o descripción breve sin límite de tamaño.
Info
Es el único campo por el que no se puede ordenar estando en modo lista, árbol
jerárquico, etc. Muestra unos iconos más pequeños que los de la columna Tipo, que
dan idea de la información que tiene asociada el concepto. El icono asociado a cada
información se puede personalizar mediante la ventana Características del menú
Proyecto.
Esta columna funciona también como acceso directo a las distintas ventanas
asociadas de cada concepto. De modo que haciendo doble clic sobre ciertos iconos
como , , , , o accedemos a dichas ventanas.
Hacer doble clic sobre los iconos o tienen la misma función que pinchar sobre
Haciendo doble clic sobre cualquier otro icono de la columna se accede a la ventana
de propiedades del concepto seleccionado.
La ventana principal / 63
Otras columnas
Dependiendo de las necesidades de utilización de los datos de la base, se mostrarán
otros campos más, que hacen referencia a más información de conceptos o
relaciones. Se tienen hasta 32 posibles campos definibles en las cabeceras de
carpetas.
Marca
Nos permite colocar una marca para su posterior seguimiento en cualquier concepto
de nuestra obra. Podemos elegir de entre una serie de colores disponibles. Los
mensajes son personalizable si podemos modificarlos si seleccionamos la opción
M odifica etiqueta. Es posible desmarcar el concepto en cualquier momento
mediante la opción Eliminar seguimiento
%
Esta columna nos muestra el tanto por ciento que representa ese concepto dentro de
la relacion a la que pertenece. Es decir, si se trata de un capítulo, nos mostrará el
tanto por ciento que supone ese capítulo dentro del total del presupuesto. Si se trata
de una partida, indicará el tanto por ciento que supone esa partida dentro del total
del capítulo al que pertenece. Si se trata de un recurso, será el tanto por ciento que
representa ese recurso dentro de la partida a la que pertenece.
Todas las fechas del programa se introducen con día, mes y año, aunque se puedan
visualizar con muy distintos formatos y se puedan introducir en algunos casos de
forma abreviada. Si a nosotros en un campo sólo nos interesa el mes, podemos
teclear "399" en el campo de entrada al pie de la columna, pero la fecha introducida
será la del primer día del mes: 1/03/99. Internamente todas las fechas se guardan
con el año completo (AAAAMMDD como por ejemplo, 19991129) para evitar el efecto
del año 2000, por lo que también se pueden introducir con ese formato en cualquier
campo fecha del programa.
Campos de edición
Edición de conceptos
Sólo aparece si tenemos activado el modo Edición. En ese momento, aparece debajo
de la lista de conceptos una serie de campos de entrada que corresponden a cada
columna editable de la lista (hay algunas que son informativas, y no se pueden
modificar desde aquí). En los campos se muestran los datos de la línea del concepto
seleccionado, para poder modificarlos o borrarlos.
La ventana principal / 65
Crear nuevos conceptos
1. Por defecto al insertar un nuevo código sin prefijo de Tipo y clase, se toma como
de Tipo Carpeta, siempre que estemos bajo en concepto raíz. Si estamos bajo una
carpeta a cualquier otro nivel inferior, se propondrá el Tipo Elemento, y por
último, bajo cualquier otro tipo de concepto, se propondrá el Tipo Recurso.
4. En vez del nombre de la tabla que es más cómodo y fácil de memorizar, podemos
teclear un código con el formato <num_tipo>·<num_clase>·código. En el caso
anterior del proveedor, sería: 5·4·E001
5. Tecleando únicamente el símbolo más (+) como código, debajo de una línea de
concepto, podemos crear otro con el siguiente código al último utilizado en ese
Tipo. Esto tiene la utilidad de que no tenemos que acordarnos de cuál era o dónde
está en la base de datos.
Las dos herramientas siguientes tienen especial utilidad para trabajar con
certificaciones y sólo se aplican en el campo Cantidad (para mediciones y
rendimientos):
4. El carácter porcentaje (%) tecleado delante de un valor indica que tome como
La barra de botones
En todas las ventanas ocupan una o dos filas en la parte inferior de la ventana o
diálogo. Los textos siempre van acompañados de un icono que representa su función,
haciéndola más fácil de recordar. Al permanecer sobre el botón 2 segundos se
muestra una pista (en inglés: tip) que puede ampliar el nombre que aparece en el
botón e incluye la tecla que lo activa. Para ver el uso del teclado, vea el tema Uso
práctico del teclado.
La ventana principal / 67
Que equivale a pinchar el botón con el aspa de la esquina superior
derecha de la ventana y aceptar los cambios que se hayan hecho en la ventana.
Esta función abre la ventana principal del archivo paralelo si no está abierta, o la
pone en primer plano si lo está. La noción de archivo paralelo es simétrico, las
funciones Menfis·1 y Traslada de las ventanas del juego 1 producen sobre las
ventanas del juego 2 el mismo efecto que las mismas funciones de las ventanas del
juego 2 sobre el 1.
Abre archivo : Permite abrir un archivo con el formato de base de datos que maneja
el programa
Cierra archivo: Cierra el archivo de base de datos actual, sin cerrar ninguna
ventana.
Crear copia de seguridad : Permite generar una copia de seguridad del archivo con
el que estemos trabajando en ese momento.
Menú Archivo / 69
programa.
Enviar archivo por correo electrónico ... : Permite enviar directamente una obra
comprimida en formato .MEZ a través del programa de correo predeterminado del
sistema.
Guardar archivo para M enfis 7... : Guarda una copia del archivo actual en formato .
men compatible con la versión anterior.
Al final del menú se presenta una lista con los 16 últimos archivos de base de datos
que se abrieron, y en el orden en que se hizo, para poder cargar rápidamente las
más recientemente utilizadas.
Este sistema tiene la ventaja de que podemos seleccionar del menú histórico distintos
archivos para no tener que navegar por unidades de red. Por ejemplo, un archivo nos
permite abrir fácilmente otro que esté en su mismo directorio. Además, podemos tener
en el mismo momento, directorios de trabajo distintos para las dos instancias del
programa.
Si seleccionamos en la lista desplegable del diálogo, otro tipo de archivo, podemos crear
directamente un archivo nuevo e importar datos en una sola operación.
Menú Archivo / 71
Si en el campo Herramientas> Opciones> Configuración> Plantilla (dir. público), hay
especificado un nombre de archivo, se utilizará una copia de aquel como archivo nuevo.
Haya especificada una plantilla o no, se crea el nuevo archivo y lo presenta con el modo
Edición activado, listo para modificar.
Para usuarios de otras versiones anteriores del programa que echen de menos el
diálogo de nombre de proyecto, vea el tema \Anexos\Preguntas frecuentes.
Tanto en éste diálogo como en el de Abre Archivo, se permiten las funciones estándar
de borrar archivos, renombrarlos y duplicarlos como copia en el directorio actual.
Menú Archivo / 73
formato Zip. Por este motivo la copia de un archivo Menfis a este formato se le cambia a
la extensión .MEZ
Dentro de este listado, podemos asignarles diferentes nombres para cada archivo para
nuestra mejor comprensión, teniendo en cuenta que esos cambios no afectan al fichero
original.
Desde aquí también se puede acceder a la ventana de selección de origen de datos para
su modificación, seleccionando la opción Administrar lista de origen de datos.
Menú Archivo / 75
Menú Concepto
Menú Concepto
El menú desplegable Concepto, contiene opciones para abrir ventanas con información
adicional al concepto seleccionado en la lista de conceptos. Si la ventana que
solicitamos ya estuviera abierta, esta función la vuelve a colocar en primer plano.
Ventana de Pliegos...: permite asociar uno o más pliegos a cada uno de los conceptos
existentes en la obra. Esta ventana admite Formato de Texto Rico (RTF)
Ventana Gráficos...: permite gesti onar los gráficos (vectoriales e imágenes) de todo
el archivo y acceder a todas las herramientas relacionadas con gráficos o cualquier
archivo externo que se quiera vincular a la información de la base de datos. Para
cada gráfico se puede tener una diapositiva, ver el gráfico con distintos niveles de
zoom y gestionar la asociación de gráficos y contenido multimedia en distintos
formatos al concepto seleccionado, o a un grupo de ellos.
Menú Concepto / 77
permite gestionarlos (alta de nuevos, borrar y modificar).
Ventana Ajusta precio...: muestra una herramienta para ajustar los precios y/o
cantidades de una lista de conceptos, indicando el precio final que debe tener su
ascendiente.
Propiedades
Muestra un submenú con todos los Tipos de conceptos que tenemos definidos en el
programa, en función de los módulos adquiridos.
Concepto actual
Muestra un submenú con una serie de opciones que se pueden llevar a acabo sobre
uno o varios conceptos seleccionados. También se puede acceder a él como menú
contextual que se muestra con el botón derecho del ratón sobre la columna Tipo de
la ventana principal. Aparecerán AL MENOS, opciones para la modificación de tipos,
códigos, multiplicar conceptos, etc. pero pueden aparecer más opciones, ya que son
programables.
Menú Concepto / 79
Propiedades: Es equivalente a seleccionar la opción que abre la ventana
propiedades, en el submenú Concepto > Propiedades , y es contextual al
conceptos seleccionado, es decir, con cada tipo, se abrirá la ventana
correspondiente.
Cambia código: Permite modificar sólo el código del concepto actual, por el
introducido en el diálogo. También se permite cambiar códigos masivamente,
mediante la calculadora.
Menú Concepto / 81
Sustituir concepto: es similar a Fusiona dos conceptos... del submenú
Utilidades de concepto. Sirve para ignorar la descomposición de un concepto
sustituyéndolo en los sitios donde aparece, por otro con la descomposición
del otro. En definitiva, une las relaciones SUPERIORES (padres) de ambos
conceptos en uno, manteniendo la descomposición de cada uno (a diferencia
de Fusiona dos conceptos...).
Cambio de icono
Menú Concepto / 83
Cambio de color de fondo
Ventanas asociadas: Este submenú nos permite acceder a todas las ventanas que
puedan contener información del concepto seleccionado, como son: Ventana Textos,
Ventana Valores, Ventana Términos, Ventana Gráficos y Ventana Paramétricos.
M arcar como terminada...: Sólo se aplica a conceptos que no sean de tipo carpeta, y
que no pertenezcan a la fase inicial del archivo (proyecto). Cuando se manejan
múltiples fases para certificar, sirve para marcar la fase de finalización de las
partidas. En el campo Cantidad del concepto marcado aparece a la izquierda una
letra "T" en esa Fase y las posteriores.
Enviar por correo electrónico: Nos permite generar un fichero .bc3 o .bc3
comprimido, para enviar una solicitud de oferta por una partida o grupo de partidas.
Una vez elegido el formato Menfis generará dicho fichero y lo incluirá en un correo
electrónico dentro de nuestra aplicación de correo predeterminada, donde sólo
tendremos que incluir la dirección del destinatario. Podemos establecer una
dirección diferente a la del envío para las respuestas a estas solicitudes, desde las
opciones del menú herramientas.
Ventana Deshace
Accesible desde las opciones Deshace... y Rehace..., pulsando en el diálogo de
confirmación el botón Historia. O bien, pinchando cualquiera de las dos opciones
manteniendo pulsada la tecla CONTROL. El diálogo se queda en primer plano, pero
permite seguir utilizando la aplicación...
El panel superior contiene la lista de tareas que se pueden deshacer, con una lista que
Menú Concepto / 85
va poniendo arriba las últimas acciones. En las columnas habituales podemos ver:
Tabla, Campo (nombres de tabla y campo de la base de datos a la que ha afectado el
cambio), Registro (el Código y Tipo·Clase de concepto en el que se ha hecho el cambio) y
Valor (el contenido antiguo del campo). La lista contiene muchas líneas en blanco
seleccionables, porque tiene un tamaño fijo, no es como otras listas dinámicas del
programa, para evitar que crezca sin control.
Hay otras columnas que se pueden mostrar como Tab, Cam (los nombres internos de
tabla y campo modificados), Num (el orden de la acción en la lista), e Ide (el identificador
de la relación o concepto Registro).
Valor Histórico
En el panel inferior, tenemos la pestaña Valor Histórico que contiene el contenido
completo del campo ANTES del cambio (es útil si es por ejemplo, un texto extenso, ya
que en la columna Valor del panel superior sólo aparecen una o dos palabras). Se
soportan las modificaciones en campos RTF y binarios, por que los contenidos
extensos podemos verlos aquí.
Valor actual
En Valor actual, podemos ver el cambiado, y es útil seleccionando todas las líneas de
las lista de historia, para poder ver los valores actuales.
Contenido
Esta pestaña sólo tiene información avanzada del estado de la memoria, entradas de
la lista, etc.
Cada paso deshecho se colorea en rojo, y el punto actual en el que se puede deshacer
o rehacer es justo la separación entre las líneas de color rojo y negro. Los cambios se
refrescan en pantalla en tiempo real o al cerrar la ventana, dependiendo del tipo de
cambio o ventana de la que se trate.
NOTAS:
El historial de deshacer sólo se guarda para cada archivo, por lo que al cambiar de
archivo se limpia la lista.
Ventana Textos
Accesible desde la opción Ventana Textos...; permite almacenar asociado al concepto
seleccionado y presentado en la ventana, uno o varios textos extensos descriptivos en
formato ASCII — caracteres sin ningún formato especial —.
Menú Concepto / 87
A la derecha tenemos el botón Dicta que nos permite introducir el texto
mediante un sistema de captación de voz.
Ventana Pliegos
Se trata de uno ó mas textos en formato RTF (texto rico). Podemos almacenar varios
creando nuevas clasificaciones en la lista de textos clasificados. Estos textos ricos
tienen una peculiaridad importante: en la base de datos se almacena el contenido de
cualquier texto rico, también en formato ASCII, para poder realizar búsquedas por
términos, o poder imprimirla desde un informe.
Esta ventana consta de dos partes. La parte izquierda es un índice de las clasificaciones
de textos que tenemos, para poder acceder rápidamente a todos ellos, y nos da
información adicional sobre los que se utilizan y cuánto contenido tienen. La
información relacionada se puede encontrar en parte, en la propia ventana de
clasificaciones. Sobre la lista de clasificaciones tenemos los siguientes comandos:
los campos que se muestran son Código y Descripción, los mismos que hay en la
pestaña Actual de la ventana Clasificaciones; otra información adicional que no
encontramos en esta ventana, es el número de conceptos que utilizan cada uno de los
rótulos, y ésta se encuentra en dicha ventana. RTF(c), si la hemos mostrado con el
menú contextual, contabiliza el contenido en caracteres (bytes) -en texto rico-, para el
concepto actual, en cada una de las clasificaciones.
Con el menú contextual (botón derecho del ratón) podemos acceder a las mismas
herramientas que en la barra de herramientas, pero además tenemos otras opciones
como: buscar y reemplazar, seleccionar todo y con la opción Leer y grabar, aparece un
submenú con las opciones de insertar un archivo en formato RTF o TXT, equivalante a
la opción Importa texto, y otras como grabar texto, pegar como vinculado (pegado
especial) e imprimir.
Por último la ventana de edición donde podemos redactar nuestros textos y modificarlos
con las herramientas antes mencionadas.
Menú Concepto / 89
Copia el texto actual a la Ventana Texto del archivo paralelo. Puede
producirse el siguiente error:
Pero si se puede trasladar, el contenido del Tipo de texto actual en la ventana Texto
del archivo paralelo es sustituido.
Ventana Valores
Accesible desde la opción Ventana Valores..., permite ampliar el número de campos de
diversos tipos que pueden estar asociados a un concepto, es decir, crear campos nuevos
personalizados por el usuario. Se admiten campos numéricos (de muchas clases: reales
en coma flotante, con diversos decimales y enteros), booleanos (verdadero/falso), fechas,
listas de opciones y textos.
Pestaña Valores:
En esta lista introducimos para cada concepto, el dato concreto para cada valor
definido en la pestaña Tipos de valores (si en esta pestaña tenemos alguna
restricción de Tipo y Clase, sólo se mostrarán los valores compatibles).
Ejemplo práctico:
Tenemos Entidades en nuestro archivo, pero necesitamos dos campos que no nos
ofrece la ventana de propiedades: un segundo correo electrónico (privado) y una fecha
de antigüedad.
En la pestaña Tipos de valores damos de alta los dos tipos de campos: "eleper" "C.E.
personal" y "fecant" "Fecha antigüedad"; cambiamos el tipo de a Texto y Fecha
respectivamente, y seleccionando los dos con el ratón, los asociamos al Tipo de
concepto entidad.
En modo Edición, al pie del campo Valor, se muestra un campo de edición para
introducir los datos de cada valor, pero además hay tipos de datos que se editan
haciendo doble clic sobre la línea del valor (es el caso de las listas, y los booleanos
verdadero/falso).
Para poner el mismo dato en uno de los valores en varios conceptos a la vez, podemos
utilizar el botón Repite, que actúa sobre la selección de conceptos que tengamos en
ventana principal.
Menú Concepto / 91
Con un Código y Descripción damos de alta los valores que necesitemos, y haciendo
doble clic en la columna Tip, también el tipo de datos que contendrá ese valor (por
defecto es booleano), lo que ofrece un diálogo con todos los posibles.
Haciendo doble clic en cada línea, en el espacio del campo TyC (Tipo y Clase),
también podemos filtrar que cada valor exista SÓLO para los conceptos de un Tipo ó
Clase concretos. Pero además, podemos realizar la selección para varias líneas
multiseleccionándolas, y esto también vale para anular la asociación de Tipo o Clase,
mediante el botón Cancela del diálogo.
El campo Rango de valor se utiliza para dar un subconjunto de valores, o una lista de
posibles valores a cada uno de los campos-valor definidos. Dependiendo del tipo de
valor, en el panel inferior Rango del valor seleccionado, aparecerán unas
posibilidades u otras:
En los valores de Tipo Booleano y Texto, no hay rango (ni se puede definir). En los
booleanos el defecto es siempre 'Si'.
En los de tipo Lista, el rango se define para cada lista, poniendo las opciones
separadas por barras verticales (|), comenzando con una barra si queremos dar la
Otra utilidad de esta pestaña, es que haciendo doble clic sobre cualquiera de las
líneas de descripción de valores, se muestra en la ventana principal la búsqueda de
los conceptos que tienen datos en ese valor.
Funcionalidad útil
Con el uso de Valores, podemos mostrar esos campos personalizados en la ventana
principal, para cada línea de conceptos, igual que el Código o el Resumen.
Definiendo en las cabeceras de todos los conceptos, podemos ver esos datos a
cualquier nivel y con cualquier tipo de concepto. El acceso a los datos de valores
(para programación de informes y para todo tipo de búsquedas, como las definiciones
de cabeceras), es con el nombre del valor, como si fuera un campo de la tabla CON;
es decir, poniendo como cabecera la línea:
Antigüedad:con.fecant
Ventana Términos
Accesible desde la opción Ventana Términos... , presenta la lista de términos asociados
al concepto seleccionado en la lista de la ventana principal, y se actualiza cuando dicho
concepto cambia (por ejemplo, seleccionando con los botones Siguiente o Anterior).
Menú Concepto / 93
definen como cualquier cadena de caracteres con más de 1 carácter y menos de 15 y
sin caracteres blancos intermedios (espacios, tabuladores y fin de línea...).
Los términos sirven para agrupar conceptos que no tienen ninguna característica
común en su código, su posición o tipo de información. Esta información sirve tanto
para búsquedas por términos comunes, por ejemplo, como para tener asociados
descriptores que nos permitan hacer búsquedas complejas en lenguaje natural.
Por ejemplo, introduciendo en este campo, a*, se presentarán en la ventana todos los
del archivo, que comiencen con la letra a.
Menú Concepto / 95
Ventana Gráficos
Cabecera de la ventana: Barra de herramientas
Accesible desde la opción Ventana Gráficos..., muestra dos paneles para gestionar y
visualizar la información gráfica del archivo, tanto contenida dentro de la base de datos
(incrustada), como con archivos externos relacionados (vinculada). Al igual que gráficos,
se admite vincular otros objetos multimedia (vídeos, sonidos) y en general cualquier tipo
de archivo, aunque las herramientas de esta ventana están orientadas a visualización
y tratamiento de imágenes y gráficos vectoriales.
Para ver qué tipos de archivos son reconocidos por la aplicación, vea diálogo Importa
gráfico.
Importar y exportar
Copiar gráfico actual al portapapeles (cambio) Baja (Control) M edia... Lleva el
archivo gráfico seleccionado (sólo de uno en uno) al portapapeles de Windows,
para que sea utilizado por cualquier otra aplicación con la simple operación
estándar de pegar (CTRL+V, en general). Si pinchamos en el botón con la tecla
MAYÚSCULAS pulsada, lo que se copia es la diapositiva, y si mantenemos
pulsada la tecla CONTROL, se copia la imagen de media resolución.
Menú Concepto / 97
u otro, coincide con uno que ya existe, aparece el diálogo:
Modificar y editar
Incrustar <> vincular: Modifica el estado de los gráficos seleccionados en la base
de datos: si están como un archivo externo a la base, lo incorpora a la misma; si
en cambio está incluido en la base de datos, guarda el gráfico como un archivo
independiente, externo a la base de datos, y lo vincula — la diapositiva pasa a
mostrar una flecha como la de un acceso directo —. El directorio donde se
guardan los archivos desincrustados es el Directorios de gráficos vinculados... de
la pestaña Utilidades (el mismo que la base de datos, si no se ha especificado
ninguno).
También hay unos controles para utilizar en el panel derecho mientras hacemos
zoom y tenemos el foco en la imagen del panel izquierdo: La rueda del ratón (si la
tiene), sirve para desplazar arriba y abajo la lista de diapositivas (igual que las teclas
AV.PAG y RE.PAG), y las cuatro flechas del cursor, para desplazar la selección de la
diapositiva.
Pestaña Utilidades
Contiene herramientas para gestionar los gráficos de la base (incrustados y
vinculados), realizar la incrustación de los externos, así como crear gráficos de
resolución intermedia, diapositivas, buscar, eliminar masivamente por nombres o
características, realizar importaciones, etc...
Primera sección
En el campo Directorios de gráficos vinculados... (defecto: directorio bd), se toma
como directorio base y también como directorio por defecto, el directorio público.
Esto quiere decir que admite un único directorio, con camino absoluto (como c:
\programas\ingra) o relativo al directorio público (sin tener en cuenta las comillas,
como '..\gráficos' ó 'imágenes\fotos'). El botón Búsqueda del directorio de gráficos
que hay a la derecha de este campo, muestra el diálogo estándar de búsqueda de
carpetas, para seleccionar sin teclear.
Menú Concepto / 99
IM PORTANTE: También admite un directorio relativo al raíz de cualquiera de las
unidades locales o mapeadas del PC, de forma que busca por todas ese camino. Por
ejemplo, ':\imágenes\fotos' sin ninguna letra de unidad, buscaría por todas de la A:
a la Z: y cogería el directorio de la primera que encontrara.
Las imágenes VINCULADAS se buscarán a partir de ese directorio base, con los
subdirectorios con los que han sido almacenados los gráficos. Esto nos permite
cambiar los gráficos de sitio o copiarlos sin tener que cambiar las referencias: sólo
hay que mantener la estructura de subdirectorios con la que se vincularon.
Estos dos campos seleccionan los gráficos de la base que se van a procesar con las
siguientes operaciones:
Los archivos de bitmap generan una media resolución en formato JPG, y todas las
imágenes vectoriales en formato EMF. El valor de defecto de los tamaños máximos
(que se aplica si el campo esta vacío) son 400 x 400 puntos (equivalente a teclear
"400 400").
Los demás botones, excepto estos dos mencionados, actúan sobre la máscara
seleccionada en el campo Máscara de gráficos y permite realizar esas operaciones
masivas. Al usarlos sin una máscara, se nos da el aviso:
Eliminar relaciones sirve para desconectar gráficos de la base de los conceptos con
los que se relaciona, pero dejar los gráficos para asociarlos a otros conceptos, por
ejemplo.
Sección Búsquedas
Panel con botones para realizar las búsquedas más interesantes y potentes, y
mostrar el resultado en el panel derecho o en la ventana principal (ya que algunas
realizan búsquedas de conceptos o relaciones, en vez de gráficos).
Por ejemplo, Sin media muestra una lista de gráficos con los que no tiene
generada una imagen de media resolución, en cambio, C con 1G, (conceptos con
un gráfico) lleva a la ventana principal una lista de conceptos que tiene un único
gráfico asociado, y podemos ver estos gráficos en el panel derecho, moviéndonos
con los botones Siguiente y Anterior. Desactiva permite pasar de nuevo al modo
"gráficos del concepto actual".
En el recuadro (siempre que no sea una lista de gráficos) podemos cambiar de orden
los gráficos de un concepto con sólo arrastrarlos con el ratón, o bien importarlos
incrustados o vinculados arrastrándolos desde el Explorador de Windows.
El doble clic sobre cualquiera de las diapositivas, tiene dos funciones: si en el panel
izquierdo NO se está viendo en primer plano la pestaña Gráfico, la pone mostrando
la imagen completa o a media resolución, no importa si es del concepto actual o de
una lista de gráficos obtenida mediante una búsqueda. Si ya se veía la pestaña con
el gráfico, entonces abre el programa asociado en Windows al tipo de gráfico, igual
que el botón Abre programa de edición de la barra de herramientas.
Pestaña Lista
Es otra vista similar a la de la pestaña Diapositivas (los gráficos asociados al
concepto actual, o selección mediante una búsqueda), pero con otras ventajas:
muestra más información sobre los gráficos, permite ordenar por esos campos de
datos y editar algunos, ocupa menos espacio, etc. La selección no produce ningún
efecto en el panel izquierdo, y el doble clic muestra la imagen en la pestaña Gráfico.
Pestaña Filtros
Muestra diversos botones (cada uno de ellos un filtro), la mayoría con parámetros de
configuración, que se aplican en memoria a la imagen actual en el panel izquierdo
(Gráfico).
Cada uno de los botones tiene un comentario del filtro y los parámetros que utiliza;
al pulsar el botón, se aplica el filtro con los parámetros del campo que hay a su
derecha. Dejando el ratón encima de cada botón, aparece un comentario extendido
sobre el uso del filtro.
Los filtros se aplican sucesivamente (cada uno sobre el resultado del anterior), pero
para volver a la imagen original podemos pulsar . Todas las aplicaciones de
filtros son pruebas, que podemos pasar a la imagen definitivamente con el botón
Modificar. También se puede Crear una imagen nueva con la aplicación del filtro,
crear un Archivo externo con ella, o pasar una copia al Portapapeles.
Sólo desconecta los gráficos de los conceptos con los que estaban
relacionados.
Ventana Paramétricos
Accesible desde la opción Ventana Paramétricos...; permite asociar a un concepto una
descripción paramétrica (un breve programa realizado, bien en lenguaje tradicional de
paramétricos, o bien en JavaScript). Los conceptos de esta clase (no se trata de un Tipo
de concepto especial), no son realmente conceptos con un precio, fecha, texto etc. sino
que representan UNA FAMILIA DE CONCEPTOS, descrita por el programa. Los
elementos de la familia se pueden seleccionar y utilizar, ya como un concepto normal,
mediante una selección de parámetros con opciones excluyentes entre sí.
Además, como caso especial, también se pueden tener conceptos de clase familia
paramétrica con el programa compilado en una DLL, no editable en esta ventana (la
especificación tanto del lenguaje estándar tradicional de paramétricos, como las
especificaciones para generar paramétricos compilados, las encontrará en un anexo de
este ayuda en línea y en el sitio oficial www.fiebdc.es). Esto permite proteger la
propiedad intelectual de la base de datos, que no se puede modificar ni copiar, sólo
utilizar las combinaciones resultantes.
Chequea: Hace una comprobación del programa actual y comprueba que no hay
ningún error de sintaxis, errata, etc. El resultado del chequeo se vuelca a un archivo
Pestaña Paramétrico
Consta de una tabla, de altura redimensionable, donde se rotulan en columnas los
nombres de los parámetros horizontalmente y proporcionalmente al tamaño de cada
uno de ellos.
Debajo de los rótulos de los parámetros, se despliegan tantas líneas como el mayor
número de opciones de los parámetros, y en cada línea se dispone en primer una
letra de la a hasta la z que identifica cada opción para cada parámetro.
Esta pestaña guarda una relación de los derivados más utilizados dentro del
paramétrico en cuestión.
Tanto la inclusión como la exclusión se puede llevar a cabo por grupos, es decir,
multiseleccionando conceptos y pinchando sobre o , dependiendo del resultado
que se quiera obtener.
Los botones tiene las funciones que se explican a continuación (casi todas activas con
el archivo en modo Edición, ya que modifican la base). Tenga en cuenta que en los
diálogos, siempre se admite opcionalmente una máscara de búsqueda SQL para que la
operación no se realice sobre todos los conceptos paramétricos, sino solamente sobre un
grupo:
Paramétrico actual
Es muy útil para desarrolladores de bases de datos; les permite extraer de forma
totalmente automática un número fijo de derivados.
Se muestra el mensaje:
Búsquedas
Pestaña Descomposición
Si el programa de la familia paramétrica define una descomposición para esos
conceptos, la descomposición se muestra en esta pestaña, al estilo de la ventana
principal, con todos los campos de concepto: Tipo, Código, Ud., Resumen, Precio,
Cantidad e Importe
Pestaña Programa
Código programable que define para el concepto de familia actual: los parámetros
posibles y las incompatibilidades entre ellos, los valores de Código, Resumen, Unidad,
Precio..., la descomposición en otros conceptos, y si procede, el Texto y el Pliego.
Ventana Mediciones
Accesible desde la opción Ventana M ediciones...; muestra el desglose en múltiples
líneas de una medición asociada a un concepto (o más correctamente: a una relación
entre 2 conceptos). El valor medición o rendimiento de la ventana principal en modo
descompuestos, puede ser un valor directamente introducido en la ventana, o el total de
una pantalla de líneas de medición asociada, en este caso en el campo medición de la
lista de conceptos de la ventana principal, se suele tener un icono especial para
identificar los conceptos que tienen.
Esta ventana refleja las líneas de medición, si las hay, de la línea de descomposición
seleccionada en la ventana principal, se actualiza en el momento que se selecciona
una nueva línea de descomposición.
Secciones de la ventana
Primera sección
La información que se muestra en la primera sección de la ventana de mediciones
es la siguiente:
En primer lugar, a la izquierda del todo, vemos que se nos muestra el código del
padre, seguido del código del concepto actual, la unidad de medida y el resumen de
dicho concepto. A continuación se nos muestra la el número de la línea de medición
Por último, a la derecha del todo tenemos una serie de botones para distintas
funciones como son:
Pegar: Trae desde el portapapeles una o varias líneas de medición que hayamos
copiado de otro concepto o archivo. Se puede utilizar la combinación de teclas
CONTROL+V. Si el recorte no es una línea de medición, no se realiza ninguna
acción.
Para pegar mediciones, también está soportado el arrastrar y soltar (drag & drop)
desde la ventana de medición paralela.
Botón Factor: Permite multiplicar toda la medición por un valor que se puede
mostrar por separado. El valor se rotula en la parte superior de la ventana, y en
el campo de edición de la medición en la ventana principal.
La salvedad, es que la pulsación de los botones, no permite ordenar por los distintos
campos, sino que hace aparecer o desaparecer las distintas columnas de
dimensiones (y sus correspondientes campos de edición). Pulsando la cabecera de la
primera columna (T), se muestra el diálogo de selección Tipo de la línea de Medición
(Diálogo tipo de medición), igual que pulsando el botón Tipo.
Largo, Ancho, Alto: Al contrario que el campo anterior, estos campos suelen
tener valores con decimales y se rotulan con un número fijo de ellos definido
en el campo Decimales Mediciones de la ventana Parámetros generales. Por
defecto, tienen valor 2.
Cuando el modo Edición está activo, debajo de la lista de líneas se abre una sección
con campos de edición que permiten la modificación de cada campo. En función del
formato de medición activo, podemos tener abiertas todas o algunas de las opciones
de entrada de texto de las cuatro dimensiones.
Hace que todas las líneas seleccionadas sean borradas. Tanto este,
como el botón anterior, pueden mostrar el mensaje:
Si seleccionamos todas las líneas sin dejar ninguna y pulsamos este botón,
desaparecen las mediciones desglosadas de este concepto, pero permanece el total de
la medición que hubiera, como medición directa.
Para eliminar la medición y dejarla en blanco, se deben seleccionar todas las líneas y
pulsar la tecla SUPR.
Dimensiones en columnas
Se presentan 4 conmutadores: Número, Largo, Ancho y Alto que se pueden marcar
o desmarcar (más cómodamente con el teclado, ya que cada una tiene asociada un
número) igual que pulsando con el ratón en la cabecera de las columnas.
Color en filas
Permite seleccionar un color para cada línea de medición. Para desactivar el color
de fondo, seleccionaremos en primero, que es el fondo de defecto de la ventana.
Ventana Certificaciones
Accesible desde la opción Ventana Certificaciones...; muestra el desglose en múltiples
líneas de una medición asociada a un concepto al igual que la ventana de mediciones.
Sin embargo, permite además poder visualizar simultáneamente las dos mediciones, la
de certificación de la fase actual (siempre a origen) y la medición desglosada del
proyecto.
Marcar M.Coste (F3) para ajustar el coste (coste total) en lugar del precio (coste
directo)
Un asterisco (*) en las máscaras identifica a todos los conceptos, y un guión (-) o la
máscara en blanco, a ninguno. Recuerde que las modificaciones de precios afectan a
toda la obra.
La función de ajuste hace todas las pasadas necesarias, para que el ajuste resultante
sea el mejor posible con los decimales utilizados, y no haga falta ajustar más que una
vez.
Temas relacionados:
Ventanas de Propiedades
Ventanas Propiedades, características comunes
Las ventanas de propiedades muestran todos los datos e información que puede
asociarse a un concepto por su Tipo. Cada tipo de concepto tiene una ventana de
propiedades (con una o varias pestañas), y contiene la información única relacionada
con ese tipo y ningún otro. Por ejemplo, un gráfico o un texto puede estar asociado a
cualquier concepto de una base de datos, pero un tipo de cabecera, sólo puede estar
relacionado con un concepto de tipo Carpeta.
Entonces, en todas las ventanas de propiedades de Tipos que tengan varias Clases,
tendrán como elemento común, en la primera pestaña, la lista desplegable Clase de
<tipo>, con todos los posibles para ese Tipo.
TODAS las ventanas de propiedades de todos los tipos tienen en común los siguientes
controles e información:
Primera sección
Puede aparecer la información del concepto actualmente seleccionado en la ventana
principal: su icono (Tipo), Código y Resumen (descripción). Por interés general, si el
concepto es de tipo Elemento, aparece la Unidad, y si es de tipo documento, la Fecha,
porque son datos fundamentales.
A la derecha tenemos el botón Seguimiento que despliega una lista con las
distintas marcas aplicables al concepto para su seguimiento.
Si pulsamos sobre el icono del concepto nos aparece un menu contextual desde el
que podemos acceder a una serie de ventanas de trabajo del menú concepto, como
son: Ventana Textos..., Ventana Valores..., Ventana Términos..., Ventana Gráficos...
y Ventana Paramétricos...; o bien cambiar el icono de la ventana de propiedades en la
que nos encontramos actualmente. Recordamos que el cambio de icono no implica
cambio de propiedades del concepto.
Búsquedas QBE
"Query By Example", significa "búsqueda mediante un ejemplo" de lo que queremos
encontrar.
Admite términos en cualquiera de los campos, así como máscaras que permitan
términos parciales, y podemos buscar por todos los campos que queramos en
múltiples pestañas. Pulsando cualquiera de los 2 botones Acepta (que en el modo
normal son Siguiente y Anterior), aparece el resultado de la búsqueda en la ventana
principal.
Bloqueo de conceptos
Cuando tenemos activado el sistema de bloqueo de edición de conceptos en la
ventana Parámetros generales, se muestra un botón en la parte derecha de todas
las ventana de propiedades. Si lo pulsamos, el concepto queda bloqueado contra
edición incluso para el usuario actual, y el icono del botón cambia. Sólo un usuario
con permisos de administrados puede desbloquear estos conceptos bloqueados.
Negro.- pestaña que contiene datos propios del concepto (a los que se accede
además de en la ventana principal, en campos de edición de esta ventana de
propiedades, por comodidad), y datos únicos particulares de este tipo de propiedad.
Verde.- pestaña que permite visualizar datos de relaciones con otros conceptos, los
datos anexos a esa relación, normalmente se introducen en las ventanas de
propiedades de los otros objetos.
Rojo.- pestaña que incluye datos calculados (es decir, algunos no existen grabados
en la base de datos) Estos cálculos se realizan en el momento de entrar en la
pestaña, con los datos que hay en la base en ese momento, por ejemplo, la
valoración de unos precios en función de las cantidades en stock, el precio al que
se compraron, la fecha, etc.
Azul.- pestaña con datos que pueden ser calculados (rojo) o no, pero que no están
relacionados directamente con el concepto actualmente seleccionado en la
ventana de propiedades, sino que representa datos para el Tipo actual de concepto,
pero en TODO el proyecto.
1. Los que tienen una marca de color amarillo, con el rótulo Clasificación por <rot>,
hacen referencia a valores que hay en los tipos de la ventana Clasificaciones.
Al pulsar el botón, se abre la ventana que muestra el rótulo: clasificación (Tipo)
código, y la lista de Códigos y Descripciones para ese campo, es decir, todos los
rótulos almacenados en la base de datos, para ese tipo.
2. Los que tienen una marca de color azul, hacen referencia a otros conceptos de
la base de datos de otros Tipos distintos al actual. Al pulsar el botón se abre la
ventana de propiedades de ese Tipo, con el concepto al que hace referencia el
campo.
Tecleando datos
Existen ayudas especiales para la introducción de datos. Siempre entre conceptos del
mismo tipo:
1. Se pueden tomar como plantilla los datos de propiedades de otro concepto del
mismo archivo u otro, para copiar campos en varios conceptos del mismo tipo. La
copia se realiza en el campo correspondiente, poniendo una coma (,) como si se
tratara de la ayuda en campos que se explica en Uso del teclado.
Cabeceras de lista
Por encima de la cabecera de una lista en cualquier pestaña o panel, puede aparecer
un pequeño botón con marca azul, Lista a ventana principal, que realiza la misma
función que una búsqueda, ya que nos muestra en ventana principal los datos de la
lista.
Como todas las ventanas de propiedades de Tipos con varias Clases, en la barra de título
se muestra el rótulo <tipo> · <clase>
Además de una sola sentencia SQL, se admite una función con un nombre especial,
que permite hacer una búsqueda compleja, con varios funciones, etc. siempre que el
resultado de la función sea una lista de identificadores de las tablas CON ó RCC. Más
adelante se ve un ejemplo.
Pestaña Capítulo:
Clase de capítulo define como en todas las ventanas de propiedades, la Clase del
concepto que está mostrando.
Doble altura en lista de hijos: Permite que las líneas de conceptos descendientes del
capítulo (sean hijos reales o el resultado de una búsqueda) se muestren con un icono
de tamaño doble que el habitual, el tamaño de la fuente de texto también es el doble y
los iconos de tipo, también.
Vista en modo diapositivas: Fuerza que los hijos (sólo los directos del capítulo) se
muestren como un panel de diapositivas ordenadas de izquierda a derecha, en vez de
una lista de líneas. En la diapositiva se mostrará el primer gráfico asociado, si tiene,
y sino, el icono correspondiente. La navegación se puede realizar con los clic
izquierdo y derecho del ratón, de la forma habitual. Es similar al modo que podemos
manejar en la ventana Opciones, pero sólo para algunos capítulos en concreto.
Actúa sobre el paralelo: Es una marca especial para hacer que se abra la ventana
del paralelo y se realice la búsqueda, o bien se ejecute en ella la función de
JavaScript, si fuera de esa Clase.
3. Detrás del "FROM" siempre irá el nombre "con" (la tabla de conceptos),
"rcc" (relaciones) o cualquier tabla de propiedades de la que pueda seleccionarse
un campo con identificadores.
hoy - Fecha actual completa (en Parámetros generales, puede haberse puesto
una distinta a la actual del sistema).
Esto añade potencia para modificar mediante parámetros las búsquedas (así el
comando de búsqueda no es fijo con un nombre de tabla o de campo, sino que el
programa pide al usuario una máscara, nombre de tabla, texto, etc.)
5. También se puede definir una función con el nombre fijo sqljs() que devuelva una
lista de identificadores de la tabla CON ó RCC. Esto permite definir funciones
complejas y utilizar varias incluso. Así las búsquedas se comportan como un
capítulo de procedimiento JavaScript, con la ventaja de que cuando vemos su
descomposición, se muestra el nombre del capítulo como padre, y podemos
navegar con los botones Siguiente y Anterior entre búsquedas.
EJEM PLO 1:
var bas=Cbas;
es equivalente a la línea:
EJEM PLO 2:
La sentencia:
Parámetro
Campo de ordenación
Botones:
En el campo Campos definibles (uno por línea), podemos definir cada campo, con la
sintaxis que se muestra en el rótulo:
Cada campo puede tener definido un código cabecera (por el que se la identifica y que
se asigna en la pestaña Capítulo), si no lleva nombre de cabecera, se considera que
es para todos los Tipos y situaciones de conceptos.
El código cabecera se usa para definir en qué estado — como padre, como hijo, etc.—
va a aparecer el campo. Es decir, si queremos que se asocien las cabeceras
AUTOMÁTICAMENTE SEGÚN EL TIPO DE CONCEPTOS, la primera parte del código
debe coincidir con las 3 ó 6 letras del nombre de la tabla, y estar seguido de uno de los
indicadores: 1-concepto como padre, 2-concepto como hijo.
Cada campo debería tener un rótulo que será el texto que aparece en el botón de
cabecera. Obligatoriamente, una tabla a la que se refiere, y un campo que es el que
queremos mostrar.
El signo menos (-) delante de la tabla, indica que no mostrará campo de edición.
Se incluye el carácter arroba (@) para especificar campos virtuales (no existentes en
campos de la B.D., pero accesibles como si lo estuvieran).
El código que va detrás de la tabla separado con una barra (|), sirve para identificar
uno de los valores de tablas que se componen de rótulos (relaciones de tablas N a N).
Ejemplo:
1 // General
2 Pendiente:con.pen
3 Cod_Res:con._codres
4 Estado:doc.est.res
5
6 // Capítulos
7 car1·Mantenimiento:
8 tex|man.tex
9 car1·Cantidad:rcc.can
10 car2·Proveedor:doc._ent
11
12 // Otros
13 var1·Antigüedad:con.
fecant
doc1·Contrato:doc.cnt
LIN 12: En las listas de Elementos (o Tipo Varios), podemos mostrar en el campo
'Antigüedad' una fecha SÓLO SI tenemos definido en la ventana Valores, un valor
'fecant', ya que este campo no existe en la tabla CON (concepto). Lo mismo sucede
con el valor 'pendiente' de la línea LIN 2.
La primera sección muestra la información del concepto seleccionado (si el que hay es
de este Tipo, o alguna de sus Clases) y los demás controles habituales en las ventanas
de propiedades.
El Tipo Elemento genérico (sin ninguna Clase particular) representa las actividades o
partidas de obra en las que se dividen los capítulos de un proyecto. A su vez se
descomponen en Recursos simples.
Pestaña Elemento:
Como campos especiales tiene: Categoría, que tiene a su derecha el botón
Clasificación por Categoría para permitir seleccionar uno de los nombres definidos
en la ventana Clasificaciones, y a más importante y que caracteriza a la Unidad de
obra: Unidad de imputación que es una referencia al concepto con el cual se
relaciona a efectos de control de costes.
Los campos de las sección inferior son los comunes en todas las pestañas generales
de las ventanas de propiedades. (Descripción es el mismo dato de la ventana Texto,
repetido aquí. La edición también se puede realizar desde los dos sitios).
Pestaña Descomposición:
Muestra la lista de relaciones inferiores en la base de datos, tal como se pueden ver
en la ventana principal. Tanto en esta pestaña como en la ventana principal, se
pueden dar de alta, de baja, y modificar conceptos. Como en todas las listas de este
tipo, el doble clic sobre una línea, nos abre la ventana de propiedades
correspondiente.
La personalización se realiza a través del campo Categoría, que nos permite el acceso
a la ventana Clasificaciones, donde podemos introducir los valores que necesitamos,
y luego utilizar conceptos con esos valores, y los datos (en el campo Descripción) y
descomposición que queramos.
Por ejemplo:
Como todas las ventanas de propiedades de Tipos con varias Clases, en la barra de título
se muestra el rótulo <tipo> · <clase>. Todas las Clases de entidades tienen los mismos
datos, diferenciándose en el nombre, para poder utilizarlos de forma inteligente en
distintos sitios.
Nuevo correo electrónico: Para crear un mensaje nuevo de e-mail a la dirección que
tenemos en el campo correspondiente de la primera pestaña.
Abre dirección web: Abre el navegador de Internet que tengamos instalado en Windows,
con la dirección que hay en el campo correspondiente.
Pestaña Entidad:
Se almacenan los datos básicos de concepto, y además varios campos que definen
una entidad empresarial, gubernamental o personal de cualquier tipo: Nombre, CIF,
Teléfono, Fax, Correo electrónico y Dirección web... (si alguno de estos dos últimos
campos no tiene dato, los botones asociados, no tienen ningún efecto). En este grupo
se mezclan datos que son habituales en formatos de intercambio, con algunos
particulares de Menfis para información relevante de una entidad física o jurídica.
El CIF, como función especial, añade el código de letra que corresponde a los dígitos
numéricos y sirve para comprobar que el número es válido.
Personas de contacto
Dentro de esta subpestaña se nos presenta un campo multilínea donde podemos
introducir tanto personas de contacto como cualquier otro tipo de anotación
referente al contacto con entidades.
Pestaña Direcciones
Se ofrecen 3 secciones para almacenar distintas direcciones. El campo Provincia, se
rellena automáticamente cuando cambiamos o introducimos un nuevo campo
Localidad correspondiente, aunque también podemos introducirlo manualmente si no
seleccionamos una Localidad. Esta asociación automática se hace mediante el código
de la clasificación: si el código de la Localidad comienza con 28xxx, y existe una
clasificación de Provincia con el código 28, por ejemplo, se colocaría esta
automáticamente.
Pestaña documentos
En esta pestaña podemos ver y acceder a todos los documentos asociados a esta
entidad.
Como todas las ventanas de propiedades de Tipos con varias Clases, en la barra de título
se muestra el rótulo <tipo> · <clase>
En general, de los conceptos de Tipo Centro de coste que tenemos, el único que se
refiere a una ubicación específica para guardar materiales comprados, es esta Clase.
Los demás son contenedores virtuales o 'fábricas' en las que entran gastos, materiales
u horas consumidos, y salen unidades de obra o materiales construidos.
Cuenta analítica: Es otro de los campos comunes a todos los CECs (centros de coste)
y sirve para identificar la imputación al hacer la exportación para la conexión a
Sigrid
Aparte tenemos las pestañas Descripción y Concepto con los datos habituales en la
ventanas de propiedades: Clase, Código, Resumen y Texto.
Pestaña Documentos:
Ofrece una lista de documentos en los que se hace referencia al Almacén actual
(esto es común a todos los centros de coste). Las relaciones sólo pueden ser con
conceptos de Tipo Documento y Clases: Albarán (para reflejar las entradas de
materiales), Movimiento (entre almacenes o de entrada / salida de cada almacén), y
de Partes de trabajo (similares a los Movimientos en su funcionamiento). El campo
Descripción se corresponde con el texto extenso de la subpestaña Descripción
alternativa.
Estos datos son útiles para controlar cada almacén, al margen de los documentos
relacionados con el mismo: es el contenido TEÓRICO en el momento actual, y la lista
nos muestra cada uno de los recursos almacenados, con las cantidades que
muestran los movimientos: se pueden mostrar los campos Albarán, Movimiento y
Parte tanto origen como destino (entradas y salidas del almacén respectivamente).
También los campos de balance final, Entradas (registradas a través de movimientos
de entrada o compras mediante Albaranes), Salidas (también a través de
movimientos y construcción de unidades de obra a través de unidades de imputación)
y Existencias (muestra el cálculo de Entradas-Salidas, que debemos comparar con las
existencias reales cuando queramos hacer inventario). La comparación de estas
cantidades idealmente debería coincidir. Si tenemos más cantidad en existencias
que en la realidad, detectamos un error en los documentos del programa y si la
cantidad es menor, se debe a mermas por pérdidas, roturas, etc.
El campo UNI de la amortización, relaciona cada CUA, con una unidad de imputación,
para hacer imputaciones automáticas periódicas. El campo Nº de fases de la
amortización indica si la amortización en cada fase es proporcional a la producción total
de la fase (cuando no ponemos ningún valor) o en un número fijo de ellas a partir de la
compra (si indicamos un número en el campo).
Es el centro de coste principal, ya que todas las salidas de los demás, terminan como
una imputación. Además, representan centrales de construcción de partidas de obra:
cada unidad de imputación es como una fábrica en la que entran consumos de recursos
a través de Albaranes y salen partidas de obra construidas.
Como todas las ventanas de propiedades de Tipos con varias Clases, en la barra de título
se muestra el rótulo <tipo> · <clase>
Pestaña Recurso:
Se muestran 3 clasificaciones que nos permiten situar el recurso por diferentes
grupos de utilización: Naturaleza (organización dentro de la ejecución de obra para
totalizar los informes de recursos), Familia (por grupos de recursos según la Entidad
proveedora, las entidades pueden estar asociados a varias familias), y Código de
compra (para temas contables, nos permite realizar una exportación de datos para el
programa de contabilidad y gestión Sigrid, de esta forma podemos llevar recursos
relacionados en múltiples obras de la empresa).
Recuerde que estos campos con una marca amarilla, contendrán rótulos Clasificados,
como la Unidad de medida.
Pestaña Personas:
Lista de conceptos de Tipo Persona individual que están asociados a la especialidad
actual. la asociación se realiza en la propia ventana de propiedades de las Personas, y
por eso el color del nombre de la pestaña es verde . Aunque desde la esta lista, se
pueden modificar los datos e incluso insertar y eliminar relaciones.
Pestaña Documentos:
Una lista (igual que la anterior no modificable), con las líneas de los documentos
donde aparece el recurso, para todas las Fases de la obra (no sólo la actual). La
ventaja de tener los datos de cada línea es que tenemos el Precio, Cantidad, Importe,
Descripción... incluso si aparece más de una vez en alguno de los documentos, y no
sólo el total por documento.
Pestaña Disponibilidad:
Es un calendario mensual, que podemos desplazar con las dos flechas a los lados del
rótulo del mes: (Anterior y Siguiente). Los días del calendario se muestran con los
festivos considerados en el calendario global (aplicable a todos los turnos) al que
podemos acceder desde la pestaña Festivos de cualquier Turno.
Pestaña Valoración:
Es una pestaña con datos calculados y además común a todas las Fases del proyecto,
no contextual a la Fase actual. Muestra uno de los datos más interesantes del
seguimiento de obra: los precios medios reales calculados hasta el momento con las
compras y consumos registrados. La cantidad para el cálculo, es la Total (bien a
origen o parcial, según el conmutador exclusivo que esté pulsado), y el precio medio
puede provenir de Albaranes (lo más habitual) o de Facturas, también según el
conmutador que elijamos.
Todos los campos y pestañas son como los de la Clase anterior: Mano de obra, excepto
que la pestaña de recursos particulares no son personas sino:
Pestaña Equipos:
Esta pestaña está destinada a relacionar una lista de Equipos particulares al
concepto de Maquinaria actual a la que corresponde. Es el vínculo entre los equipos
reales individuales y concretos que se utilizan en la obra, y la maquinaria en general
presupuestada en la misma. La operación normal de asociación se realiza desde los
propios Equipos, pero también se puede modificar desde aquí.
Propiedades de M aterial
Representa todos los recursos materiales de construcción MÁS SIMPLES (los materiales
auxiliares de los que controlaremos también su descomposición, tendrán otro Tipo y
Clase de concepto).
Todos los campos y pestañas son como los de la Clase Mano de obra, excepto en la
pestaña Recurso, en la que aparece en primer lugar una lista desplegable Subclase del
material, que muestra una clasificación cerrada estándar de FIEBDC para clases de
materiales. Puede ser muy útil asignar la Subclase, para poder aplicar luego revisiones
de precios con los índices oficiales, por ejemplo.
Los datos que podemos rellenar son los genéricos en todas las ventanas de propiedades,
ya que en este caso ni siquiera se permite especificar una unidad de medida asociada,
porque estos conceptos son un importe adimensional, en función de una cantidad
relativa a los demás conceptos de la descomposición (concretamente los que tiene por
encima de él en la lista).
Propiedades de Subcontrata
Representa los elementos más simples de una descomposición de obra, que se refieren
a recursos no controlados en nuestra obra, sino subcontratados externamente y que son
una partida alzada con un importe: No nos importará cuantas horas de mano de obra o
materiales va a requerir, sino cuánto nos va a costar subcontratarla.
Todos los campos y pestañas son como los de un concepto de Tipo Recurso genérico, o
Material, exceptuando que no tiene el campo Subclase del material en la pestaña
Recurso porque la subclase sólo es aplicable a recursos de obra de clase Material.
Como todas las ventanas de propiedades de Tipos con varias Clases, en la barra de título
se muestra el icono de <tipo> · <clase> y los datos que aparecen en las diferentes
pestañas son similares, adaptados a las necesidades de cada Clase.
Permite almacenar los datos necesarios para calcular incrementos de costes por
contrata, revisiones de precios, coeficientes especiales de contrato... y toda la
información de contrata que nos sirve para determinar cantidades contratadas y
pendientes y clasificar todos los documentos emitidos y pendientes por contrato.
Pestaña Contrato:
Puede ver los campos comunes a las ventanas de propiedades y los valores que
pueden ir en cada campo en el tema Controles habituales. A los habituales Clase de
Pestaña Recursos:
Cuando se especifica un Precio para los recursos en la columna correspondiente, el
precio queda bloqueado para los documentos que hacen referencia a este contrato, y
no pueden ser diferentes en los Documentos. Esto SÓLO es válido para Pedidos,
Albaranes y Facturas.
La lista está destinada a contener todos los recursos (de cualquiera de las Clases)
que asociemos al contrato. Además de los datos más importantes (Cantidad y Precio),
podemos almacenar Descripción (un comentario por línea), Plazo de entrega (en días),
Descuento, Precio Neto, y Precio del recurso (P.Recurso) en el proyecto.
IM PORTANTE: Recuerde que haciendo doble clic sobre las líneas de conceptos de las
ventanas de propiedades, tenemos un atajo para abrir la ventana de propiedades de
los conceptos relacionados y ver los datos de cada uno.
Los tres botones siguientes están activos en modo Edición porque no son para hacer
búsquedas de conceptos, sino para modificar datos del contrato o el proyecto:
Pestaña Documentos:
Contiene una lista ordenada por fechas (primero la más reciente) de todas las Clases
de documentos relacionados con el contrato.
Pestaña Pendiente:
Pestaña de datos calculados que reúne la lista de recursos relacionados al contrato
actual y ofrece el cálculo total o pendiente (depende del modo del conmutado M.
Pendiente) en todos los Documentos Pedidos, Albaranes y Facturas. Cada vez que
entramos en la pestaña se recalculan los datos.
, y Sirven para
elaborar de forma semi-automática esos documentos, en función de las cantidades
pendientes, para el contrato actual. Los pedidos sugieren los recursos y cantidades
que todavía quedan pendientes en los Pedidos realizados hasta la fecha, los Albaranes
con las cantidades pedidos y no recibidas, y las Facturas con las cantidades no
facturadas y recibidas en Albaranes.
Como todas las ventanas de propiedades de Tipos con varias Clases, en la barra de título
se muestra el rótulo <tipo> · <clase> y los datos que aparecen son casi en todas los
mismos, pero adaptados a las necesidades de cada Clase, por ello se explican en detalle
al comienzo y en cada Clase se van explicando las diferencias.
Vea los campos comunes a las ventanas de propiedades y los valores que pueden ir en
cada campo en el tema Controles habituales.
Pestaña Documento:
Los campos particulares son Fecha, y una relación con un concepto Clase Contrato
de compra. El primero caracteriza al documento, y el segundo se pone cuando la
solicitud va contra un contrato conocido, pero no es obligatorio, ya que se puede hacer
peticiones de oferta sin dirigirlas a un contrato.
Descripción alternativa
Sólo es un texto extenso más, sin limite de longitud, para guardar otros comentarios
por cada una de las líneas de detalle; se corresponde con el campo Descripción de
cada línea.
Referencias a documentos
Es un índice para cada una de las líneas de recursos del panel superior, de todos los
documentos donde aparece es una información cruzada. Es muy útil para abrir
todos los documentos relacionados.
Pestaña Proveedores:
Lista de entidades que queremos relacionar con la petición de oferta. La columna
Familias de recursos nos muestra la clasificación múltiple que tiene asociada cada
una de las entidades. Puede servir como comprobación de la petición de oferta está
bien dirigida.
En ambos casos, se muestra un diálogo que nos permite enviar la Solicitud de oferta
en una página HTML: E-mail la manda directamente por correo electrónico (cada
entidad proveedor debe tener entre sus datos una dirección de e-mail); Archivo
solamente genera el archivo HTML, y lo abre con el navegador de Internet
predeterminado en Windows, para enviarlo a través de otro medio. Con Siguiente
podemos saltar la generación del archivo para el proveedor que se muestra en el
diálogo pasando al siguiente, y Cancela termina el proceso de generación de archivos
si tenemos varios.
En la pestaña Documento, además de los mismos campos que la Clase genérica, tiene
una relación Proveedor con un concepto de tipo Entidad, que se utiliza cuando recibimos
la oferta, para identificar el remitente.
Este documento almacena y muestra los datos reales DESPUÉS de la ejecución de los
trabajos. Para ello introducimos las cantidades REALMENTE utilizadas en la ejecución,
tanto de Recursos (materiales y humanos), como de Equipos y Personas concretas, y
también Unidades auxiliares como materiales aunque tengan descomposición.
Habitualmente, puede mostrarse sólo la columna Persona, Equipo o recurso, ya que es
la más detallada, pero hay otra, Recurso, que se debe establecer cuando se trata de una
Persona o Equipo, para que quede constancia del recurso a que se hace referencia en
Extra: Nos permite separar en recursos horarios, horas que se computan a un precio
especial, de esa forma también podemos tratarlas de distinta forma.
Con los conceptos de este tipo almacenamos los datos relativos a una cuenta bancaria,
no a un banco en realidad.
Pestaña Banco:
Además del Código de cuenta, completo con 2o dígitos del que se calculan
automáticamente los dígitos de control, y una descripción clasificada de la Entidad
bancaria, nos encontramos con las dos subpestañas habituales Descripción y
Concepto, que tienen los campos comunes a todas las propiedades vistos en
Controles habituales.
Las líneas tienen todos los campos típicos de una anotación bancaria (incluyendo dos
Fechas, la de ordenación y la de abono o cobro efectivo). El campo Concepto banco es
clasificado, como Clasificación, para poder mantener las referencias a los conceptos
que use el propio banco, si se desea. Si no se desean conceptos bancarios
clasificados, podemos poner un texto libre en Comentarios.
Pestaña Persona:
Vea los campos comunes a las ventanas de propiedades y los valores que pueden ir
en cada campo en el tema Controles habituales.
Además nos encontramos otros campos de datos sencillos y uno que nos relaciona
este concepto con la Especialidad a la que corresponde. Este es el vínculo entre las
personas reales y concretas que trabajan en la obra, y las categorías profesionales de
Especialidad proyectadas en la misma.
Pestaña Turnos:
Muestra y permite la asociación de conceptos de tipo Turno a la persona en cuestión,
puede tener varios para soportar distintos horarios en periodos de temporada alta,
vacaciones, etc.
Pestaña Disponibilidad:
Es un calendario mensual, que podemos desplazar con las dos flechas a los lados del
rótulo del mes: (Anterior y Siguiente). Los días del calendario se muestran con los
festivos considerados en el calendario global (aplicable a todos los turnos) al que
podemos acceder desde la pestaña Festivos de cualquier Turno.
Pestaña Equipo:
Vea los campos comunes a las ventanas de propiedades y los valores que pueden ir
en cada campo en el tema Controles habituales.
Pestaña Turnos:
Muestra y permite la asociación de conceptos de tipo Turno al Equipo en cuestión,
puede tener varios para soportar distintos horarios en periodos de temporada alta,
vacaciones, etc.
Con los conceptos de este tipo almacenamos los datos de calendarios y horarios de
trabajo particulares para cada persona o máquina no subcontratada (propia). Este
concepto está íntimamente relacionado con los de tipo Persona y Equipo, que son los que
estarán sujeto a dichos turnos.
Pestaña Turno:
Nos encontramos sólo con los campos habituales de todos los conceptos. Vea los
campos comunes en el tema Controles habituales.
Pestaña Horario:
Se trata del horario que pertenece a ese Turno. Nos encontramos con ocho filas y dos
columnas. En las filas, tenemos los días de la semana más un día especial donde
englobamos a todos los festivos. En la primera columna se pone el número de horas
de trabajo por día (con décimas de día, no minutos). En la segunda la descripción del
horario en el siguiente formato:
Muestra la lista de las Personas concretas que están asociadas a este turno de
trabajo. En la columna Comentario se pueden incluir notas como temporalidad,
cambios, etc. Por supuesto, también se nos permite desasociar Personas (eliminando
las líneas) y asociar nuevas personas.
Pestaña Equipos:
Muestra la lista de Equipos o maquinaria concreta que están asociados a este turno
de trabajo.
Pestaña Festivos:
Por el color del rótulo de la pestaña, vemos que se trata de datos globales a todo el
archivo, es decir que todos los Turnos comparten. Se trata de una lista para
almacenar el campo Fecha del festivo y otra para un Comentario descriptivo de qué
festividad se trata. Se pueden introducirse tantas como se desee, pero se aplicarán a
TODOS los Turnos, y la fecha incluye el año, por lo que para cada año se deben
repetir una serie de fiestas (no se tiene en cuenta sólo el día y mes, como por
ejemplo el 1 de Enero). Esto se hace así para contemplar sin complicaciones las
fiestas móviles.
Vea los campos comunes a las ventanas de propiedades y los valores que pueden ir en
cada campo en el tema Controles habituales.
Pestaña Tarea:
En esta pestaña comienzan los datos que definen una tarea u orden de trabajo: Fecha
inicial y Final que definen el periodo de trabajo, este es el periodo que se reflejará en
el Cuadrante temporal, para cada una de las Tareas.
<cód_capítulo> ·· <resumen_unidad_obra>
% Peso de los recursos: Por defecto es 100 (la totalidad de los recursos de la unidad
corresponden a la ejecución de la tarea), pero se puede especificar cualquier
porcentaje.
Pestaña Precedencias:
Permite mantener las relaciones entre Tareas, tal como se ven y utilizan en la
ventana Planifica tareas. Podemos relacionar pares de ellas para establecer
condiciones de precedencias. En el primer panel se puede poner una lista de Tareas
que siguen a la actual, y en el segundo, las precedentes a la actual. La relación se
puede establecer en las listas desplegables Precedencia de cada panel, y pueden ser:
Final-Principio; Final-Final; Principio-Principio; Principio-Final.
% peso de los recursos: indica la cantidad (sobre 100, que es el valor que se sugiere
por defecto) que cada actividad de una misma partida va a tener sobre el total
previsto. La suma total de todos los pesos será siempre 100.
El último peso (3) se descarta, ya que los valores dados en la lista eran más que
las divisiones pedidas. Además se obtendría las mismas si hubiésemos puesto 5
10, ya que la relación 1-2 es igual que 5-10 (el doble).
Precio: Se sugiere a partir del precio de proyecto y no es editable para cada Tarea
particular, podemos modificarlo en el proyecto. De igual forma, no podemos editar el
campo Importe que se mantiene calculado automáticamente multiplicando Cantidad
por Precio.
Ventana de navegación en árbol...: Abre una ventana con el árbol del presupuesto
similar a la que podemos obtener desplazando la barra punteada que está a la
izquierda en la ventana principal. Está sincronizada con la ventana principal por lo
que podemos navegar por ella y ver los resultados en la ventana principal.
La lista de elementos representa todas las tablas de la base de datos, tanto las de
usuario y las de datos de conceptos, como todas las tablas auxiliares y básicas de la
aplicación.
La tabla Concepto hace referencia a los códigos distintos que hay en el archivo,
normalmente todos ellos aparecen en la estructura de árbol del archivo, pero pueden
existir conceptos que no tienen padre, es decir, no forman parte de ninguna
descomposición y son conceptos aislados. Por el contrario: habrá conceptos que están
incluidos más de una vez en la estructura, pero esta cifra de número de conceptos sólo
Hay otros grupos menores para gestión interna, como: Tipos de conceptos, rótulos,
seguridad...
Pestaña Proyecto:
Los campos Título y Descripción, son los correspondientes al Resumen y Texto del
concepto raíz del archivo (.), que se pueden ver y modificar desde los campos de la
ventana principal, pero se ponen aquí para una mayor facilidad de acceso.
Entidad propiedad y Entidad cliente: Son relaciones a dos conceptos de tipo Entidad
-que para poder editar, por supuesto deben existir en la base-, que nos permiten
guardar nuestros propios datos como persona, empresa, organismo, etc. y los de uno
de los clientes (si utilizamos una gestión de documentos, como Facturas, muy
sencilla, con emisión para una sola Entidad).
Tipo de archivo
En este apartado podemos seleccionar el tipo de archivo que vamos a crear. Su
función es similar a la elección del tipo de archivo del campo anteriormente
mencionado, solo que en este caso esta información se incluiría en el campo
correspondiente de un fichero en formato bc3 si este fuese generado.
Pestaña Decimales:
En primer lugar hay una lista desplegable que afecta al campo Precios de todos los
conceptos de la base: Moneda base que es la moneda en la que se suponen los Precios
e Importes que aparezcan en los conceptos y los que sean calculados. La lista
contiene todas las monedas contempladas en Menfis.
Los campos de entrada que hay debajo, admiten valores numéricos para determinar
el número de decimales que se indica, tanto en precios, como en importes,
mediciones, etc.: Nos permiten modificar el número de decimales que queremos
visualizar en pantalla para cada grupo de valores.
IM PORTANTE: Para los cálculos siempre se opera con los decimales que sea
necesario, es decir, por poner menos decimales aquí, no se pierde precisión en los
cálculos.
Importes (capítulos), por defecto está definido como cero (el campo en blanco), porque
Los Costes (directos e indirectos), se muestran como importes, porque son precios
con descomposición, que tienen menos detalle. Les pueden afectar los costes
indirectos, si están definidos en la pestaña Coeficientes.
Para informes, a estos datos se accede en JavaScript, con las variables de formato de
campos.
Por último, el campo Cifras significativas en cantidades teóricas es muy útil cuando
se quieren redondear cantidades de distintas magnitudes (por ejemplo, en control de
costes, lo más útil es redondear las cantidades de materiales en Pedidos, de forma
Numeración:
Ofrece las herramientas para crear numeración en partidas y capítulos, para todo el
archivo, y utilizarla en los informes, por ejemplo, de cuadros de precios. Los datos de
numeración se guardan en cada momento en base de datos, junto al Código y demás
datos. Tenga en cuenta que SÓLO se numeran capítulos y lo que cuelgue de ellos
inmediatamente (otros capítulos o bien partidas).
Código raíz de numeración: Es por defecto el concepto raíz del archivo, y especifica a
partir de qué nivel se comienza a numerar (incluyendo ese nivel para numerar como
cero "0").
Numeración de actividades
Es la más habitual y se refiere a códigos únicos que identifican cada actividad (
unidad de obra). Son códigos asociados a la suma de una relación y un concepto, y
por eso son únicos.
Numerar también conceptos sin cantidad: Hará que entren todos los conceptos tipo
capítulo de la estructura en la numeración, incluso aquellos que no tienen asociada
una medición (1) en la estructura de la obra.
Para calcular y grabar la numeración con los valores indicados. Tenga es cuenta que
esto sólo es una herramienta para automatizar la creación de la numeración, luego
podemos modificarla a nuestro antojo, ya que son datos de la base como otros
cualesquiera (eso sí, en el momento de volver a lanzar el proceso, se anularán todos
los cambios manuales que hayamos hecho).
Esta función renombra los códigos, sustituyendo los originales procedentes de la base
de precios de referencia por una numeración correlativa similar al número de
actividad.
Esta pestaña, con sus subpestañas, se reproduce en cada concepto de Tipo Contrato,
solo que esta hace referencia a todo el archivo, y las otras a cada una de las partes de
obra contratadas.
% Costes indirectos: Se aplica a todos los Precios de los conceptos que están
directamente debajo de capítulos, como se ha visto en la pestaña Decimales.
Seguimiento
Referencia de la obra: Se puede utilizar para almacenar la referencia de la obra que
nos da el cliente, la que queramos asignar nosotros o el centro de coste de Sigrid, al
que está asignado esta obra.
Costes
Incluye un conmutador que permite que la amortización de periodificables en
control de costes se realice sobre el avance del archivo de venta en vez del avance
sobre coste.
Pestaña Seguimiento:
Permite personalizar las marcas de seguimiento que vamos a usar en nuestro
proyecto, introduciendo descripciones a cada una de ellas para facilitar su
entendimiento.
Si lo que queremos es localizar todos los conceptos que tienen algún tipo de marca de
seguimiento asignada, basta con hacer clic sobre el botón seguimiento de la sección
de búsquedas programadas de la ventana de búsqueda general.
Logotipo para informes es un botón que tiene dibujado el primer gráfico asociado al
concepto raíz (.) de la base de datos. Es el logotipo que se usa más frecuentemente
para imprimir como cabecera de informes. Pulsando en el recuadro con el botón
izquierdo del ratón, podemos elegir mediante un diálogo estándar, cualquier gráfico
con un tipo soportado por la aplicación. Si pulsamos con el botón derecho, se pueden
borrar todos los gráficos asociados al concepto raíz pulsando Si.
Ventana Monedas
Accesible desde la opción Ventana M onedas...; sirve para mantener una tabla de
divisas, con los cambios de diversas monedas tanto de zona euro como de todo el mundo
(se incluye el cambio de unas 170). El tener varias monedas nos permite ver todos los
importes y presupuestos calculados en cada una de las monedas, e incluso imprimir
Esta pestaña sólo sirve para consultar el importe de un concepto dado en cualquiera
de las monedas, y seleccionar temporalmente una moneda para ver todo el
presupuesto.
El botón Selecciona..., al igual que el doble clic con el ratón sobre una de las líneas,
permite en cualquiera de las dos pestañas), seleccionar temporalmente como
moneda actual en la ventana principal, cualquiera de las monedas. Al poner el
archivo en modo Edición se perderá la selección, ya que sólo es visual.
Imprimir
Ventana Informes y procedimientos
Este es el icono que muestran las carpetas organizativas SIEMPRE. Se pueden abrir
o cerrar de la forma habitual en las estructuras de árbol jerárquico y debajo pueden
contener archivos y carpetas a distintos niveles.
Cada línea de informe dispone de dos zonas sensibles que son atajos para el ratón:
Los dos campos que hay al pie de la lista (como hemos dicho siempre están en Edición),
sirven para modificar el rótulo de descripción de las carpetas y programas. También se
pueden convertir carpetas en programas de una forma indirecta: al crear una línea
nueva en la lista, se crea de tipo carpeta, pero si además definimos un nombre de
archivo, se convierte en un programa y se crea un archivo en blanco con ese nombre.
Resumiendo, las operaciones que podemos realizar con la lista de archivos y carpetas
son:
4. Crear nuevos archivos, poniendo nombre de archivo a una carpeta (para crearlo
en blanco) o desde la ventana de Edición de Programa.
7. Lanzar la vista Preliminar de un informe, haciendo doble clic sobre la línea del
informe.
Las 3 ó 6 primeras letras de cualquier nombre de archivo .XJS sirven para asociar
ese informe con los conceptos de ese Tipo, para que puedan ser utilizados desde
cualquiera de los botones Imprime que encontramos en las ventanas, por ejemplo en
la ventana principal o en las de Propiedades. Es decir, los que empiezan con "doc" se
asocian a la tabla DOC (Documentos), los que empiezan pro "con" se muestran con
todos los tipos de conceptos...
Campos de edición
Debajo hay otra sección con diversos campos de entrada, que permiten hacer
modificaciones a la presentación de cada informe. Cada campo se explica en el tema de
programación de informes.
A la derecha de estos campos de edición hay dos nuevos botones. nos permite añadir
nuestros informes más usados a una lista accesible desde de la ventana
principal. Los informes ubicados en dicha lista son fácilmente reconocibles ya que van
acompañados de un icono identificativo situado en la columna descripción de la
ventana de informes y procedimientos. elimina el informe seleccionado de la lista
nombrada anteriormente.
Con la salida en texto rico, obtenemos un documento o archivo, con un aspecto casi
idéntico al que se obtendría directamente por impresora: cabeceras y pies, líneas
IM PORTANTE: tenga en cuenta que si se adentra un nivel una carpeta, y la que está
encima de ella está cerrada en ese momento, como pasa a contenerla, la carpeta
padre se abre y muestra el contenido, que incluye la carpeta arrastrada.
Si hacemos doble clic con el ratón sobre uno de los informes de la lista (o pulsamos
INTRO, que es equivalente), la opción por defecto es la salida hacia Preliminar.
A continuación, otra lista desplegable que nos permite seleccionar la impresora que
deseemos entre las que tengamos instaladas en Windows.
Se definen cinco tipos de letra, representadas por cinco botones, con el siguiente
significado en los programas de informes:
A cada tipo de letra se le puede asociar como opción un color, pero no tiene efecto sobre
la impresión, es un valor que no se utiliza.
La forma de imprimir distintos colores en las fuentes, con una impresora en color, es
asignando un valor de color a los campos de impresión con el modificador
M argen superior, inferior, izquierdo y derecho: Con estos campos definimos los
márgenes de la hoja de nuestro informe con respecto a la zona hábil de la hoja de
impresión.
Con el teclado podemos utilizar las teclas Retroceder Página (RE.PÁG) y Avanzar Página
(AV.PÁG) para movernos hacia arriba y abajo por la página que se está mostrando.
Mediante las teclas INSERT y SUPR se aumenta o disminuye el zoom de forma
progresiva, en pasos de un 5% aproximadamente. Esta misma función de puede realizar
con la rueda del botón central del ratón (si la tiene), sólo que además, podemos
Página que ocupa todo el ancho de la pantalla. Ideal para páginas verticales.
Página que ajusta su tamaño para que aparezca toda al página en vertical. Ideal
para formatos apaisados.
Se muestra al mandar como salida de impresión la impresora desde cualquier sitio que
se pueda ejecutar un informe (la ventana informes y procedimientos, o la lista de
selección de destino desde cualquier ventana). Muestra el texto:
Accesible haciendo doble clic con el ratón sobre la columna Código de la lista de
programas en la ventana informes y procedimientos, o bien, manteniendo pulsada la
tecla CONTROL al hacer clic sobre el botón Parámetros. La ventana Informe - <archivo>
· <descripción> (archivo y descripción corresponden al archivo de texto con extensión .
xjs, que tenemos seleccionado en la ventana informes y procedimientos), nos permite
modificar, editar y probar la ejecución de los programas que hay en la lista de la
ventana.
NOTA: Al editar fuera de la ventana de programa tenga cuidado con la medida de los
tabuladores, ya que puede descuadrar las alineaciones de todos los archivos que
cambie. La ventana tiene tabuladores de 6 espacios (como Wordpad de Windows por
defecto), pero por ejemplo, el bloc de notas de Windows tiene 4 espacios; puede
comprobarlo abriendo con él un archivo .xjs y verá que las alineaciones cambian.
Como estructura general, diremos que hay que crear un objeto impresor, y sobre él, lo
habitual es utilizar definición de variables globales, definición de tablas, impresión de
líneas (dentro de las tablas), cabeceras y pies de página (iguales en todas ellas),
respectivamente con:
imp=impresor
imp.global("...")
imp.tabla()
paginicia()
imp.linea()
pagtermina()
Presenta el diálogo:
Crea un informe copia del actual, debajo de la línea del que teníamos
seleccionado.
Programa a Bloc de notas: Sirve para abrir el editor de textos que tengamos
registrado para archivos .txt, con una copia del programa y así permitirnos una
funcionalidad extra: poder mantener varias vistas de distintos informes
simultáneamente (ya que al seleccionar distintos informes en la lista de programas,
va cambiando el contenido de esta).
Si en vez de abrirse desde esta ventana, se trata de la pestaña del diálogo de selección
de destino, los botones al pie cambian, pero el funcionamiento es exactamente igual.
Todas las variables VAR de un programa, cuyos valores van seguidos de una especie de
"doble comentario" (cuatro barras inclinadas //// en vez de dos // que es el comentario
en lenguaje JavaScript), se consideran variables que hay que representar en la
ventana de parámetros para que el usuario pueda cambiar su valor y así modificar la
salida del informe sin necesidad de tocar los programas.
c. Detrás tenemos un rótulo que será el nombre mostrado para el parámetro. Esto
quiere decir, que aunque nuestra variable se llame —como en el ejemplo de
arriba—, “conletra”, en la ventana aparece “Precios en letra”.
d. Entre dobles corchetes ‘[[ ]]’ podemos poner un valor de la variable que sea el
valor “por defecto”. Pulsando el botón Defectos de la ventana, todas las variables
En la ventana de parámetros se muestra el nombre del informe y debajo, las líneas con
las variables. En principio se muestran dos columnas: Descripción, con un comentario
explicativo de la variable, y Valor, aunque existen otras dos que podemos mostrar si nos
interesa: Parámetro (que muestra el nombre real de la variable a efectos de programa) y
Programa (que es el nombre de archivo en el que está definido cada parámetro).
Para cambiar los valores de los parámetros, siempre hay que hacer doble clic sobre la
línea deseada. En el caso más habitual que es el de variables con valores Si/No, se
cambia el estado. En variables que requieren introducir una cadena de caracteres, o un
valor, se muestra un diálogo "cambiar parámetro" para hacerlo.
Las variables definidas en los parámetros de ésta ventana, podrán ser utilizadas en
cualquier descripción paramétrica del archivo. Debido a que entrarán a formar parte
de las descripciones paramétricas, al seleccionar unos u otros valores, podemos ver
incluso como cambian los derivados paramétricos que tenemos seleccionados.
En el panel superior, se muestran en columnas los parámetros con sus valores para
seleccionar, si hay una descripción definida. En el inferior, el programa en lenguaje
paramétrico tradicional o en JavaScript, o compilado en DLL (en cuyo caso sólo se
muestra el rótulo "DLL" ya que a información está compilada y protegida).
Ventana Fases
La importancia de las fases de obra van más allá de una simple ventana de datos más o
menos interactivos con otros tipos de conceptos del archivo. La lista de fases componen
los múltiples hitos de nuestra ejecución de proyecto. Por ejemplo, en un proyecto de
obra, representan las certificaciones (mensuales, semanales, o de cualquier periodo),
en un proyecto de seguimiento y control de obra, pueden representar las fases de
construcción y progresión real de obra...
Comparando con versiones anteriores de Menfis, las fases representan los múltiples
archivos de certificación (más el archivo inicial de presupuesto o proyecto), unidos en
un único archivo de base de datos.
IM PORTANTE: Tenga en cuenta que cada concepto en cada fase puede tener distintas
cantidades y precios. Puede tener, significa que al crear una fase nueva (excepto la
primera), todas las cantidades y precios son iguales que en la última fase. A partir del
momento de tener creada la nueva fase podemos cambiar, lógicamente, las cantidades
(ese es el uso de las fases precisamente), pero además podemos modificar los
rendimientos de unidades de obra con descomposición y los precios de los recursos en
cada una de las fases.
Podemos tener además múltiples precios dentro de una misma fase, para un sólo
Haciendo doble clic en cada línea, podemos seleccionarla como fase activa (con lo que
se muestra en negrita), igual que desde la ventana principal o desde la pestaña
Definición de fases.
Cantidad: Podemos cambiar mediciones de cualquiera de las fases sin tener que
presentarlas en la ventana principal, y tenemos accesibles todas las mediciones de
múltiples fases, juntas. Además podemos editar la Cantidad parcial (diferencia con la
fase anterior) y visualizar el cálculo de Importe parcial.
Los colores de los datos de Precio, Cantidad e Importe, son los mismos que en la línea
de concepto en la ventana principal.
Existen otros campos que se pueden mostrar como F.Presentación, F.Factura y otros
para almacenar fechas relacionadas con cada una de las fases.
Bloqueo: Indica el estado de bloqueo de edición de cada fase a origen. Haciendo clic
en esta columna para cada línea, podemos editar el estado de bloqueo igual que con
el botón al pie de la ventana.
Las fases se bloquean a origen (al bloquear una, todas las anteriores quedan
bloqueadas, pero las siguientes no), y para desbloquear hace falta que el usuario
tenga permisos de administrador.
Ventana Ámbitos
Los ámbitos de precios tiene una importancia tan grande en los archivos de proyecto,
como las fases de obra.
Consisten en una lista de valores asociados a un rótulo, similar a los datos que podemos
almacenar en la ventana Valores; la diferencia es que estos precios son completamente
interactivos en el presupuesto y existen (y pueden ser distintos) para todas las fases si
lo deseamos. En general, en una lista de distintos precios que se pueden asociar a
cualquier concepto simple para que acumule distintos presupuestos a través de sus
padres hasta el concepto raíz. Como excepción tenemos la ruptura de ámbitos, que
permite a un conceptos descompuesto (es decir, su precio viene dado por la suma
En ventana principal, los conceptos que tienen múltiples precios en distintos ámbitos,
se muestran de color datos alternativos (por defecto verde), para llamar la atención
sobre el ámbito activo en la ventana principal.
El primero con un árbol de todos los niveles de capítulos que contienen Actividades
(haciendo doble clic sobre cada línea de Actividad tenemos acceso a su ventana de
propiedades), y a continuación los 12 meses del año y en cada línea el número de
Tareas por cada actividad (en las líneas de capítulos, la suma de todas las tareas de
las actividades de ese capítulo, claro).
Muestra un árbol con todos los tipos de recursos, y bajo cada rama, todos los recursos
del proyecto. El cálculo en las columnas de meses del número de horas necesarias
para ejecutar las tareas sólo se recalcula cada vez que pulsamos
Aquellas Tareas posteriores a la Fecha de bloqueo del archivo (bloqueo que protege
cualquier movimiento), podemos desplazarlas adelante o atrás en el tiempo, y
aumentar su duración.
Para cambiar la duración de la tarea, haremos clic con el ratón a izquierda o derecha
de la barra, manteniendo pulsada la tecla MAYÚSCULAS. Si el clic lo hacemos sobre
la barra en vez de a los lados, acortaremos la duración hasta ese día.
Pestaña General:
Contiene herramientas para montar automáticamente Tareas, y personalizar la
visualización del cuadrante.
En la sección Colores, cada botón nos permite personalizar los que representan los
datos en las pestañas anteriores. Haciendo clic en cada uno de los botones, se
muestra un diálogo estándar de selección de color. El último botón Poner colores de
defecto, restaura los que inicialmente se proponen al distribuir el programa.
Lista de festivos
Nos muestra una lista configurable con los días festivos del año. Desde la barra de
edición podemos añadir días o modificar los existentes.
Al abrir la ventana, se muestran los grupos por tipos, a menos que se tenga activado el
conmutador, para añadir filtrados a los grupos, y crear nuevos grupos.
Podemos modificar:
En la lista de la ventana tenemos una línea por cada grupo cuyo ajuste interesa en el
presupuesto, y muestran datos en las columnas:
Los pares T y Tipo, así como C y Clase, muestran el icono y el nombre del Tipo y Clase
de cada uno de los grupos. A continuación puede aparecer o estar oculto el par N y
Naturaleza, según tengamos activado o no el filtro mediante el conmutador al pie de la
ventana.
Las siguientes 3 columnas son las únicas que contienen campos de edición, es decir,
las que permiten hacer las modificaciones de presupuesto según diversos criterios. La
de presupuesto por grupos Modificado y las dos últimas son complementarias, es decir,
que haciendo cambios en Modificado, se cambiarán las proporciones en precios y
rendimientos, y viceversa.
Podemos conservar los datos originales siempre que tengamos marcada la casilla
Realizar copia de seguridad antes de ajustar.
En la primera sección aparece el rótulo de la fase a la que se refiere la hoja final que
estamos viendo: “Hoja resumen: <nombre_de_fase>”. Antes del nombre de fase puede
aparecer el texto "*** DE DEFECTO ***", que indica que no se ha grabado ninguna
modificación en la hoja, y que por lo tanto, es una copia de la plantilla por defecto.
Los códigos S[n] P C L[n] v v%[n] - pueden ser: S[nº de línea] (Suma), P (suma Parcial), C
(Certificación anterior), L[nº de línea] (importe en Letra, actual u opcionalmente, de
otra línea 'n'), v (Valor constante), y v%[nº de línea] (valor en porcentaje y
opcionalmente, el porcentaje se refiere a una línea concreta 'n'), - (Raya separadora).
S imprime (8) el valor actual de la variable SUM, añadiéndole el valor que tenía en
la última S (1) sumado a la variable PAR que va acumulando el parcial (3+4+6), y
luego pone el parcial a cero. La variable SUM está inicializada al valor de la fase
actual, por eso en la primera línea (1) tiene valor 37.432.01 que es el importe a
origen de la fase actual.
Si S (20) especifica una línea (6), se añade a la suma total el importe de esa línea
2.245,92 y TAMBIÉN pone el parcial a cero (21).
Cualquier línea puede llevar un valor fijo (3), que se opera donde corresponda y se
acumula al parcial PAR (que en este caso se acumulará a la última S (1)).
El valor, en vez de fijo, suele ser un porcentaje (14) que se aplica a la última línea
de suma (12). Si además especificamos una línea en concreto (18), el porcentaje
se aplica al valor de esa línea (14). Aquí le aplicamos el 10% a 401,58 que era el
16% del 2.509,85.
Con P (5) el valor de la variable parcial tampoco influye en los cálculos. Imprimir
el parcial desde la última línea S (1), nos da la suma de las líneas que llevamos
acumuladas (3 y 4), pero ese dato no se acumula, ya que vemos que la suma (8) no
incluye la línea (5).
Las líneas L sólo muestran en letra, con el idioma actual del programa (está en
inglés) y moneda del archivo, el importe de la última impresión de SUM: En (21)
en letra la línea (16) y en (23), hemos especificado imprimir la línea (10).
****************************
IM PORTANTE: Para importar datos que no pertenecen al estándar FIEBDC, igual que
hacían otras versiones anteriores de Menfis, basta con exportar en formato INX (el
interno del programa), que exporta todos los datos obtenidos, incluyendo por ejemplo, las
hojas finales de todas las fases, que se almacenan en base de datos.
Aunque los datos de las distintas tablas resumen para las distintas Fases son similares,
la presentación de unas se adecua más a certificaciones que otras, por ejemplo.
También hay plantillas especiales para la primera certificación, otra para las
siguientes...
Accesible desde la opción Búsqueda general... del menú Proyecto y también desde la
sección Posición actual y modos de la ventana principal. Sirve para seleccionar unos
criterios de búsqueda de forma simplificada, para que el usuario no tenga que recordar
nombres de campos o tablas, ni la sintaxis SQL de los comandos de búsqueda. La lista de
concepto o relaciones resultantes de la búsqueda se muestra en la ventana principal.
Comando de búsqueda
Muestra en cada momento, la cláusula Select que realizará la búsqueda, a medida
que vamos seleccionando los filtros de la misma con los otros controles.
En la siguiente sección se ofrecen varios campos y datos que filtren los conceptos a
buscar:
Tipo y Clase permiten filtrar por uno de los tipos de conceptos o bien, eliminar el filtro,
seleccionando la primera opción (en blanco) de la lista desplegable. Cuando cambiamos
de Tipo, se borran las máscaras tecleadas, en cambio al cambiar de Clase dentro de un
mismo Tipo, no.
En los otros campos se puede teclear una máscara que filtre por Código, Descripción
(Resumen), Fecha y Precio. El Código tienen la peculiaridad, de que por defecto incluye
una máscara por la derecha, es decir, al teclear simplemente "MO" buscará todos los
Condiciones de búsqueda
Búsquedas programadas
Contiene una serie de botones, cada uno con un rótulo explicativo, que permite
mediante un solo clic, realizar cualquier búsqueda con todos los criterios que
hemos visto, para utilizarlas cómodamente.
Hay varios botones predefinidos con varias búsquedas útiles, pero se pueden
definir todas las que se desee, pulsando el botón Editar búsquedas. Esta acción,
abre el archivo de texto panbus.mac del directorio \MACROS, con el Bloc de notas o
el editor asociado en el sistema. Viendo como ejemplo el formato del archivo que
existe, puede definir las búsquedas que quiera y aparecerán dinámicamente los
botones correspondientes.
La casilla M antener abierta, cuando esta marcada, evita que al pulsar Acepta se
cierre la ventana para poder realizar cómodamente distintas pruebas.
Accesible desde la opción Búsqueda por términos...; permite realizar búsquedas por
orden alfabético, mediante los términos que tenemos dados de alta en la base de datos y
asociados a los conceptos.
Sustituir sinónimos, consulta las relaciones del tesauro y asigna a todos los
términos que sean sinónimos, la misma clave. Por ejemplo, si entre los
términos indizados aparecen “casa”, “vivienda”, “chalet” y “piso” y en nuestro
tesauro todos fueran sinónimos de “vivienda”, en la indización sólo aparecería
ese término.
La siguiente sección selecciona los textos de los que se van a extraer los términos:
resúmenes (texto descriptivo abreviado de cada concepto), descripciones (textos
extensos en formato ASCII), tipos (incluir los nombres de cada tipo como términos),
clasificaciones (todos los rótulos relacionados con cada concepto), textos (textos
múltiples en formato RTF, y SÓLO se incluyen para las búsquedas extendidas) y
propiedades (también exclusiva para búsquedas extendidas e incluye todos los textos
de todos los campos de la ventana de propiedades de cada concepto).
Cada vez que nos posicionamos sobre cualquier tipo de concepto, la ventana principal
se sincroniza con ese de concepto, de forma que podemos movernos por toda la base
de datos, de forma jerárquica visualmente.
Los conceptos de Tipo Carpeta que son de Clase Búsqueda, no muestran en el árbol la
descomposición de esa búsqueda, ya que esos conceptos no están realmente colgados
de la carpeta.
Las ventanas de propiedades muestran todos los datos e información que puede
asociarse a un concepto por su Tipo. Cada tipo de concepto tiene una ventana de
propiedades (con una o varias pestañas), y contiene la información única relacionada
con ese tipo y ningún otro. Por ejemplo, un gráfico o un texto puede estar asociado a
cualquier concepto de una base de datos, pero un tipo de cabecera, sólo puede estar
relacionado con un concepto de tipo Carpeta.
Entonces, en todas las ventanas de propiedades de Tipos que tengan varias Clases,
tendrán como elemento común, en la primera pestaña, la lista desplegable Clase de
<tipo>, con todos los posibles para ese Tipo.
TODAS las ventanas de propiedades de todos los tipos tienen en común los siguientes
controles e información:
Primera sección
Puede aparecer la información del concepto actualmente seleccionado en la ventana
principal: su icono (Tipo), Código y Resumen (descripción). Por interés general, si el
concepto es de tipo Elemento, aparece la Unidad, y si es de tipo documento, la Fecha,
porque son datos fundamentales.
A la derecha tenemos el botón Seguimiento que despliega una lista con las
distintas marcas aplicables al concepto para su seguimiento.
Si pulsamos sobre el icono del concepto nos aparece un menu contextual desde el
que podemos acceder a una serie de ventanas de trabajo del menú concepto, como
son: Ventana Textos..., Ventana Valores..., Ventana Términos..., Ventana Gráficos...
y Ventana Paramétricos...; o bien cambiar el icono de la ventana de propiedades en la
que nos encontramos actualmente. Recordamos que el cambio de icono no implica
cambio de propiedades del concepto.
Para buscar por el Código y Descripción de las líneas que aparezcan en pestañas con
listas de elementos en vez de campos, al activar este modo aparece una pestaña
Búsquedas, con todos los campos por los que se puede buscar.
IM PORTANTE: Si queremos pasar la búsqueda que hemos realizado a una carpeta de
búsqueda para tenerla accesible continuamente, podemos copiar la sentencia SQL
que se realiza teniendo abierta la ventana Propiedades de carpetas, que al no estar
sincronizada con un objeto de tipo carpeta, presenta en este caso la sentencia del
concepto .. (un "concepto" virtual que representa la última búsqueda realizada).
Bloqueo de conceptos
Cuando tenemos activado el sistema de bloqueo de edición de conceptos en la
ventana Parámetros generales, se muestra un botón en la parte derecha de todas
las ventana de propiedades. Si lo pulsamos, el concepto queda bloqueado contra
edición incluso para el usuario actual, y el icono del botón cambia. Sólo un usuario
con permisos de administrados puede desbloquear estos conceptos bloqueados.
Negro.- pestaña que contiene datos propios del concepto (a los que se accede
además de en la ventana principal, en campos de edición de esta ventana de
propiedades, por comodidad), y datos únicos particulares de este tipo de propiedad.
Verde.- pestaña que permite visualizar datos de relaciones con otros conceptos, los
datos anexos a esa relación, normalmente se introducen en las ventanas de
propiedades de los otros objetos.
Rojo.- pestaña que incluye datos calculados (es decir, algunos no existen grabados
Azul.- pestaña con datos que pueden ser calculados (rojo) o no, pero que no están
relacionados directamente con el concepto actualmente seleccionado en la
ventana de propiedades, sino que representa datos para el Tipo actual de concepto,
pero en TODO el proyecto.
1. Los que tienen una marca de color amarillo, con el rótulo Clasificación por <rot>,
hacen referencia a valores que hay en los tipos de la ventana Clasificaciones.
Al pulsar el botón, se abre la ventana que muestra el rótulo: clasificación (Tipo)
código, y la lista de Códigos y Descripciones para ese campo, es decir, todos los
rótulos almacenados en la base de datos, para ese tipo.
2. Los que tienen una marca de color azul, hacen referencia a otros conceptos de
la base de datos de otros Tipos distintos al actual. Al pulsar el botón se abre la
ventana de propiedades de ese Tipo, con el concepto al que hace referencia el
campo.
Tecleando datos
Existen ayudas especiales para la introducción de datos. Siempre entre conceptos del
mismo tipo:
1. Se pueden tomar como plantilla los datos de propiedades de otro concepto del
mismo archivo u otro, para copiar campos en varios conceptos del mismo tipo. La
copia se realiza en el campo correspondiente, poniendo una coma (,) como si se
tratara de la ayuda en campos que se explica en Uso del teclado.
Cabeceras de lista
Por encima de la cabecera de una lista en cualquier pestaña o panel, puede aparecer
El doble clic en cualquiera de las líneas, sirve como medio de búsqueda rápida de todos
los conceptos de la base de datos con ese tipo, que se muestran en la ventana principal.
Si hacemos doble clic en una de las líneas de los niveles inferiores, sucederá lo mismo,
pero buscando por esa Clase.
Referencia : Sirve para tener una especie de "acceso directo" a un archivo externo de
CUALQUIER clase, no para ejecutarlo desde el programa, sino para poder ver una vista
previa y acceder de forma rápida a él. Es útil para imágenes, documentos de texto,
documentos HTML, vídeos, etc.
Hay otros muchos Tipos y Clases, pero son más particulares y se explican en otras
secciones de la ayuda.
Se trata de una ventana de mantenimiento de una tabla básica del programa, que
consiste en subconjuntos de propiedades que se pueden asociar, al igual que Textos o
Gráficos.
Pestaña Actual:
La ventana muestra en la primera sección el tipo actual de clasificación que hemos
seleccionado en la pestaña Todas. Bajo ella se muestran el Tipo, Código, Descripción
y opcionalmente Usos, de cada uno de los elementos de ese tipo.
Pestaña Todas:
Muestra una lista de pares Tipo ó Ide · Campo (Descripción), que suponen todos los
tipos de clasificaciones que existen en la base de datos actualmente abierta.
Haciendo doble clic en cualquiera de los tipos, se abre la pestaña Actual, con esa
clasificación.
Veamos, por ejemplo, un par de los tipos definidos, y sus posibles valores.
Seleccionando cada uno, podríamos ver una serie de valores como los que tenemos
debajo:
01 Condiciones
02 Comentarios
03 Observaciones
04 Notas personales
33 ENTIDAD. PROVINCIA
28 Madrid
08 Barcelona
15 A Coruña
...
Botones al pie
En la pestaña Todas están desactivados porque son herramientas para las listas de
elementos de las clasificaciones.
Busca conceptos sin clasificar: Realiza una búsqueda de todos los conceptos que
no utilizan la clasificación actual (no el valor seleccionado, sino cualquiera de
ellos, por eso se puede utilizar también en la pestaña Todas), y lleva los conceptos
encontrados a la ventana principal.
Ventana Características
Se accede a esta ventana desde la opción Características... Se trata de una ventana
para el mantenimiento y personalización de un archivo de datos que afecta a la
visualización de cualquier base de datos. Las modificaciones que hagamos se guardan
en el archivo gescar.mac del subdirectorio \MACROS. Este es un pequeño archivo de
texto plano, que contiene los iconos de características que aparecen en la columna Info
de la ventana principal (esta ventana también es accesible desde el botón de cabecera
de esa columna).
Las características simbolizan con iconos la información que tienen asociada los
conceptos (la que no es implícita por su Tipo), aunque todas las características descritas
no tienen porque poder tenerlas todos los Tipos. El programa se distribuye con unas
cuantas características bastante útiles y habituales (identificando los conceptos que
tienen descendientes, imágenes, términos, textos, mediciones...), pero podemos definir
las que necesitemos.
Existe: Que es sobre todo para relaciones entre tablas y comprueba que el
concepto para el que se examina la condición, esté referenciado en el campo de
la tabla que se menciona
Existe1: Realiza la misma comprobación pero sólo se verifica cuando hay 1 sólo
valor (por ejemplo rcc.des.existe1, comprueba que el concepto solamente esté
en la descomposición de UNA relación)
Antes de comprobar esta condición, en cada característica se hace un filtro por Tipos, de
modo que si no tiene ninguno (Tipo en blanco), se comprueba la condición sobre todos
los conceptos de la base de datos (lo que puede ser más lento si hay decenas de miles),
pero si tiene un Tipo definido, sólo se comprueba sobre los conceptos de ese Tipo.
Compacta base de datos...: Comprime los datos del archivo, eliminando huecos y
reduciendo el tamaño final cuando ha habido muchas altas y bajas de información.
También se utiliza cuando por algún motivo de corrupción de archivo (causado por
un apagón, virus, etc.) ni siquiera la opción Repara base de datos... puede arreglar
los desperfectos.
PARA ADMINISTRADORES: Tanto para reparar archivos, como para compactarlos, hay
una herramienta especial, que es mantener pulsadas las teclas
MAYÚSCULAS+CONTROL al seleccionar la opción de menú. En este caso, se
chequean o reparan todos los archivos del directorio al que pertenece el archivo que
tenemos abierto, evitándonos tener que abrirlos de uno en uno.
El bloqueo de modificación del archivo por parte de otros usuarios, incluye al propio
usuario si tiene abierto en la ventana paralela simultáneamente el mismo archivo.
Este bloqueo también se produce cuando tenemos la ventana de "Gestión de
permisos" abierta, ya que su uso implica la apertura de otra instancia de la base de
datos, como si estuviese utilizada por otro usuario.
Recalcular totales: Esta herramienta busca cualquier tipo de error relacionado con
el cálculo del presupuesto.
Exporta BAS (según tipo de archivo y fase): Permite grabar archivos de coste y
venta en formato BAS mediante un sistema de conexión programado.
Menú Importa
Importa BCZ...: Crea una carpeta en cuyo interior se genera un archivo en formato .men y se
ubican las imágenes contenidas en el fichero BCZ.
Importa BAS: Permite leer archivos de coste y venta en formato BAS mediante
un sistema de conexión programado.
Enviar por correo electrónico: Nos permite elegir entre diferentes formatos de
exportación con los que enviar una solicitud de oferta. Una vez elegido el formato
Menfis generará dicho fichero y lo incluirá en un correo electrónico dentro de
nuestra aplicación de correo predeterminada, donde sólo tendremos que incluir la
dirección del destinatario. Podemos establecer una dirección diferente a la del envío
para las respuestas a estas solicitudes, desde las opciones del menú herramientas.
Esta ventana gestiona archivos .MEC (Menfis Central), que son a su vez índices con
referencias a archivos de todo tipo. Su principal utilidad es juntar y organizar múltiples
archivos de un proyecto. Los archivos referenciados pueden ser .MEN (de proyecto,
ofertas, bases de precios...) o de cualquier otro tipo (gráficos, texto, fotos, ayuda, hojas de
cálculo...).
La lista de elementos sólo son referencias y el doble clic sobre las líneas nos permite
cargar en la ventana principal el archivo (si es un archivo Menfis; sino se abrirá el
programa para el que está registrada la extensión del archivo en Windows). Así tenemos
una forma muy cómoda de hacer un índice y acceder a varios archivos.
La primera línea de la ventana muestra el nombre del último archivo de central que
utilizamos (o aparece en blanco si no tenemos ninguno). Pulsando en el rótulo "Central
de proyectos:" podemos especificar un nombre para el índice de proyectos. El conmutador
Edición, igual que en la ventana principal, permite modificar el archivo .MEC
Los botones de cabecera de esta lista no permiten ordenar, para preservar el orden de
los archivos incluidos. Los archivos se pueden organizar moviéndolos mediante
arrastrar y soltar con el ratón en la columna destinada a ello, y organizarlos en grupos
mediante carpetas a distintos niveles de profundidad, como en la ventana informes y
procedimientos.
En cada línea que no sea de una carpeta de organización, la información que podemos
almacenar depende de si se trata de archivos Menfis u otro tipo de archivo cualquiera.
Una Descripción que es el único campo editable, y la primera vez que se carga un
archivo, coincide con la columna Título; en archivos Menfis, y con el nombre de
archivo en los demás. Luego se puede modificar con el comentario que se desee.
El Estado en que se encuentra el archivo, (que puede ser "Activo", "No encontrado",
o "Bloqueado" según se pueda acceder a él, o no).
El Título o nombre del Proyecto, que se corresponde con el campo Resumen del
concepto raíz
La Fecha se toma del campo Fecha del concepto raíz, que también se corresponde
con el campo Fecha base de la ventana Parámetros generales.
Barra de botones
Los primero tres botones muestran sendos diálogos estándar que permiten estas
operaciones:
Busca todos los archivos de la central y relee los datos de todos los
archivos Menfis relacionados para refrescar su contenido y comprobar que están
accesibles en el mismo sitio donde se asociaron. Si alguno de los archivos no está
accesible, se muestra en la columna Estado el correspondiente.
Pestaña Conexión:
A través de las opciones de estos campos se establece la conexión con la B.D. de ERP.
En Archivo ERP se especifica el nombre y el camino completo (con extensión .SIG
incluida). En Permisos ERP se puede especificar el archivo motor.dat que contiene los
permisos de la base ERP. Si no se especifica ninguno se toma el de Menfis (esto sólo
funcionará si los usuarios son comunes a ambas bases).
En Usuario y Clave se ponen los datos para acceder a la B.D. ERP. El usuario que se
propone es el mismo con el que se ha entrado en Menfis (esto sólo vale, igualmente,
si el nombre de usuario al que accedamos en el sistema de usuarios de la base ERP
es igual o convertible).
Con los botones Traslada y Prueba, realizamos el traslado al archivo actual de Menfis,
de las líneas que tengamos marcadas mediante multiselección, o bien sólo se
muestran los datos en la pestaña Sincronización como prueba.
Pestaña Sincronización:
Muestra las líneas pendientes de Sincronización, cuando se hace una prueba, pero
su función es sincronizar todos los datos de los dos archivos (Menfis y ERP) en las dos
direcciones, produciendo en el caso que se ha programado para Sigrid, un resultado
como:
Documentos (Menfis->Sigrid)
Albaranes de Venta · Leídos (0) Añadidos (0)
Documentos (Sigrid->Menfis)
Albaranes de Venta · Leídos (2) Añadidos (2)
Los modos definidos en esta ventana afectan al traslado entre los dos juegos de
ventanas, y a la importación y exportación.
Filtro
Permite definir en el campo multilínea Conceptos {...} una o varias máscaras de
selección de códigos, opcionalmente con Tipo y Clase, a los que aplicar el traslado.
Las dos máscaras son aditivas, no excluyentes; o sea, que se consideran para el
traslado las que cumplan una U otra, no ambas. Aparte, se podría especificar el
Tipo y clase, anteponiendo en nombre de Clase con el punto separador (·), como:
AAA Indica que utilicemos los tres primeros caracteres del código para montar
un único nivel de capítulos. Por ejemplo, en el capítulo ABC se colgarán todos los
conceptos que su código empiece con ABC.
AABC indica que utilicemos los dos primeros caracteres de los códigos para
montar el primer nivel de capítulos, el tercer carácter para montar el segundo
nivel y el cuarto carácter para el tercer nivel.
La sección Modificadores
Reescribir si existe: Cualquier elemento (concepto, propiedad, texto, etc.) que sea
trasladado y exista en la base de datos destino (sea el mismo archivo o no),
sobrescribirá al que allí había.
Trasladar de conceptos
Trasladar descomposiciones
Trasladar mediciones
Incrustado.- Incluye los gráficos dentro del archivo .men al que se asocian. Por lo
que si cambiamos de ubicación el archivo, los gráficos van con él.
Este chequeo se hace siempre que el archivo pertenezca a una versión anterior pero
compatible, de forma que haciendo un chequeo automático la primera vez que se abre
el archivo, se comprueba que la integridad de todos los datos se mantiene, y se añaden
los campos y datos de la nueva estructura necesarios para su correcto funcionamiento.
Por tanto, una base reparada con una versión determinada será imposible de utilizar en
versiones anteriores del programa.
Casi todos los errores producidos por un corte de luz que pudiera estropear una
transacción, o la corrupción de alguna tabla del archivo, se pueden reparar sin perder
otros datos.
El diálogo se puede interrumpir, y el chequeo se cancela sin que por ello quede el
archivo en un estado distinto al que se encontraba.
Al final del proceso, se abre el bloc de notas con el archivo presenta.txt incluyendo la
lista de todos los archivos encontrados, y si ha podido chequearlos o qué problemas se
han presentado.
La opción Exporta FIEBDC... del submenú menú exporta, nos permite grabar un
archivo de Formato de intercambio estándar con extensión .BC3, con la información del
archivo actual y que esté activa en la ventana Modos Traslada.
Cuando exportamos los datos de un archivo de control de costes (con mucha más
información que la estándar del FIEBDC-3, y tipos de conceptos propios solamente de
Menfis), se exporta el presupuesto y los conceptos más de todas clases con la
información estándar existente. Por ejemplo, se exportan contratos, documentos,
centros de coste, personas y equipos, con sus datos de concepto, textos, fechas...
Exporta BCZ
La opción Exporta a BCZ... del submenú menú exporta, nos permite grabar un archivo
de Formato de intercambio estándar con extensión .BC3 con la información del archivo
actual y las posibles imágenes incrustadas del archivo origen. Al igual que la
exportación a BC3, se rige por los criterios marcados en la ventana Modos Traslada.
Este tipo de archivos tienen la ventaja de incluir en su interior los posibles gráficos
vinculados o incrustados en el archivo de origen. Cosa que no ocurre con el formato
BC3, que exporta las imágenes y los datos por separado.
Cuando exportamos los datos de un archivo de control de costes (con mucha más
información que la estándar del FIEBDC-3, y tipos de conceptos propios solamente de
Menfis), se exporta el presupuesto y los conceptos más de todas clases con la
información estándar existente. Por ejemplo, se exportan contratos, documentos,
centros de coste, personas y equipos, con sus datos de concepto, textos, fechas...
Importa FIEBDC-3...
La opción Importa FIEBDC... del submenú menú importa, permite incluir en el archivo
abierto actualmente, y en la FASE ACTUAL del mismo, la información contenida en un
archivo de Formato de Intercambio Estándar. Sólo se incluirá la información
correspondiente a los modos activos en la ventana Modos Traslada.
Otra posibilidad, para abrir archivos en formato BC3, es arrastrar desde el Explorador de
Windows un archivo sobre la ventana principal, igual que hacer doble clic sobre ellos. Al
arrastrar y soltarlo sobre la ventana de trabajo de Menfis se nos mostrara el siguiente
diálogo:
Una vez importado el fichero, se nos muestra un cuadro de diálogo con el resultado de la
importación y los posibles errores acontecidos durante la misma.
Pestaña información
Esta pestaña nos muestra todos los datos referentes al fichero que acabamos de
importar: El programa generador, la version del FIEBDC-3, la fecha y el juego de
caracteres que utiliza. A continuación vemos un resumen de los registros importados
ordenados según el criterio del Formato de Intercambio Estándar FIEBDC-3. En esta
ventana podemos, además, ver si se han producido incidencias durante la
importación, mediante un mensaje que se muestra en la parte inferior de la
ventana.
Pestaña Conceptos
Nos muestra un listado con todos los datos importados, ordenados según los criterios
de clasificación del programa. Al hacer doble clic sobre cualquiera de los elementos
de la ventana,se nos muestra en lista de conceptos todos los elementos que hay en la
obra con su misma clasificación.
Pestaña Incidencias
En esta pestaña se nos muestra el detalle de los errores producidos durante la
importación, si los hubiese.
Con el fin de mejorar la importación de este tipo de archivos, hemos añadido tres
nuevas columnas de referencia muy útiles para comparar datos provenientes de
archivos BC3. Estas tres columnas son Precio BC3, Medición BC3 e Importe BC3, y en
caso de haber diferencia con los datos mostrados en las columnas análogas, nos
muestra un mensaje de advertencia.
Son muy útiles para detectar diferencias entre precios de partidas, capítulos o
presupuestos. Los datos incluidos en estas columnas son importaciones literales de los
datos de registro del BC3. Los precios de partidas y capítulos no corresponden a la suma
de los precios de sus descomposiciones, ni las mediciones totales a la suma de sus
mediciones desglosadas, sino que corresponden a los datos contenidos en el BC3. La
diferencia con las columnas Precio, Medición e Importe de la obra, es que éstas sí se
obtienen de cálculos previos basados en su descomposición. Por tanto podemos
identificar errores por manipulaciones incorrectas de los datos de una obra.
La opción Importa BCZ del submenú menú importa, permite incluir en el archivo
abierto actualmente, y en la FASE ACTUAL del mismo, la información contenida en él.
Sólo se incluirá la información correspondiente a los modos activos en la ventana
Modos Traslada.
Una vez importado el fichero, se nos muestra un cuadro de diálogo con el resultado de la
importación y los posibles errores acontecidos durante la misma similar al que se
obtiene al importar un fichero en formato BC3.
La opción Importa mediciones AllPlan FT v16 (XCA)... del submenú Menú Importa,
permite incluir en el archivo abierto actualmente, y en la FASE ACTUAL del mismo, la
información de mediciones contenida en uno o varios archivos de Formato de
Intercambio de Nemetscheck (un archivo ASCII separado por tabulaciones). Sólo se
incluirá la información correspondiente a los modos activos en la ventana Modos
Traslada.
o NºUnidades: “Piezas”
o Largo: “Medición”
Texto2 Texto2
Texto3 Texto3
Texto4 Texto4
Texto5 Texto5
Desplazar icono hacia arriba y hacia abajo , sólo actúan sobre el panel derecho,
para desplazar los botones en el orden que queramos.
Pestaña General:
Cada botón de esta pestaña abre un programa externo, complementario al ejecutable
de la propia aplicación. En el caso de Inca, además cierra automáticamente la
aplicación para poder operar.
Si existe una actualización dentro del segundo dígito de la versión -se entiende por
actualización, un "service pack" con mejoras y corrección de errores-, se abre un
diálogo con los datos de la versión actual del programa, la versión disponible en
Internet, un comentario sobre las modificaciones que va a realizar la actualización.
El botón ACTUALIZA..., descarga el paquete con un diálogo de progreso, y lo instala
sobre el programa.
Si está como instalación servidora, tampoco debe haber ningún cliente utilizándolo
No se deben utilizar ninguno de los programas externos (Trasgo, Diana, Dxi...) que
también podrían ser actualizados.
Los dos programas siguientes tienen su propia ayuda en línea, accesibles desde los
botones de ayuda de cada programa:
Pestaña Archivos:
Conversión de archivos
Los juegos de caracteres de estos dos sistemas difieren en la zona conocida como
“parte alta” o “extensión de 8 bits”, que es la que incluye las eñes y las vocales
acentuadas; como consecuencia, si vemos un archivo creado en MS-DOS con un
editor de textos de Windows —o viceversa— aparecerán caracteres extraños donde
ÁÉÍÓÚáéíó
AÉIOUáéíóú AÉIOUáéíóú
ú
La división texto divide los archivos después de final de línea (detrás de CR/LF,
valores 013 010).
El sistema utiliza el nombre del archivo para producir los archivos divididos,
añadiendo un número al mismo, en consecuencia los nombres de los archivos que
se deseen dividir, no deberán exceder siete caracteres, y el último no deberá ser
un número.
Este botón abre un diálogo estándar para seleccionar el primer archivo de una
serie que debe ir numerada consecutivamente y desde el número '1', por ejemplo:
base1.txt, base 2.txt, base3.txt, etc. A partir del primer archivo unirá todos en uno
Renombra archivos
Extiende las funciones de Ms-DOS para hacer más cómodo y potente el renombrado
de grupos de archivos. En los dos campos de texto Origen y Destino introducimos
máscaras para los archivos que queremos seleccionar, pero utilizando máscaras de
búsqueda SQL que extienden y potencian a las comunes de Ms-DOS.
Ventana Opciones
Accesible desde la entrada Opciones..., se utiliza para configurar distintos parámetros
del programa, y para instalar, y desinstalar los permisos de ejecución. También nos
informa del nombre de los directorios de trabajo y permite registrar el programa en el
Registro de Windows (por ejemplo, si tuviésemos dos versiones de este mismo programa,
sólo una de ellas podría tener registrada la extensión particular de los archivos de base
de datos).
Pestaña Configuración:
Al cambiar muchas de estas opciones, cambia el interface de campos de las
ventanas, por lo que en algunos casos se cierra y vuelve a abrir la aplicación.
La elección del Lenguaje determina un cambio en todos los rótulos y textos del
programa, en los informes, configuraciones de ventanas, y Parámetros generales.
Para ver cómo modificar uno de los lenguajes distribuidos con términos más
familiares a nuestro ámbito de trabajo, o crear un lenguaje nuevo, vea la
documentación de Trasgo, sistema de traducción.
dd/mm/aa 03/07/02
d-m-a 3-7-02
dd-mm-aa 03-07-02
(*) observamos que cuando los códigos llevan texto QUE CONTENGA los caracteres
'd', 'm', ó 'a', toda la cadena del campo debe ir entre comillas simples (el apóstrofe),
y cada uno de los campos también, en otro caso, no hace falta.
Formato de horas (h:m:s) es similar al anterior, pero para los campos que
muestren o acepten datos de horas. Al abrir la ventana muestra la hora actual, con
el formato de defecto con los separadores elegidos.
Opciones de visualización
Al abrir un nuevo archivo entrar en modo "Edición" por defecto hace que siempre
que abramos los archivos que ya existen esté marcado el conmutador edición en la
ventana principal de Menfis. En caso de que el archivo tenga asignada una clave
de acceso contra edición, esta opción no tendrá efecto.
Código y Descripción acepta la entrada del campo para buscar dentro del Código, si
no se teclea un código existente. Descripción considera que el texto tecleado es de
la descripción o Resumen del concepto y si coinciden varios con la entrada,
muestra una lista de los posibles, buscando en la Descripción. Doble campo
muestra el código y los resúmenes o descripciones en dos campos separados.
Configuración de correo
Este apartado nos permite introducir la dirección de correo en la que recibiremos
las respuestas a las ofertas enviadas mediante las opciones de enviar por mail,
ubicadas en el menu contextual de la columna tipo y del menú herramientas. es
un campo opcional por lo que no es obligatorio rellenarlo para enviar una oferta,
pero agiliza la comunicación entre remitente y destinatario.
Pestaña Visualización
Subpestaña letras:
Tipos de letra
Tenemos los botones Pequeña, Mediana, Grande y Enorme que definen las fuentes
—de entre todas las que tenemos instaladas en Windows—, que va a utilizar la
aplicación. En el mismo botón aparece el nombre y tamaño de la fuente así como
una ‘N’ y/o una ‘C’ en los casos de negrita y cursiva. Mediante el diálogo que se ve
al pulsar cualquiera de ellos, se pueden definir todas estas características, pero no
otras como por ejemplo, el color, cuya selección no tiene ningún efecto.
Programas es la fuente que se utiliza para las ventanas donde hay código
JavaScript o programas de algún Tipo Carpeta de búsqueda, Informes...)
Textos es la fuente de los textos planos (ASCII) extensos. Cuando se utilizan textos
en RTF, se pueden utilizar muchas fuentes distintas.
Subpestaña colores:
Temas de colores
Aquí podemos encontrar todo lo relacionado con el aspecto que tendrá la interfaz de
nuestro Menfis.
Colores especiales
Podemos definir algunos de interface y los que distinguen distintos tipos de datos
en la base. Al pinchar sobre el botón, se muestra el diálogo de selección de color,
para que podamos elegir uno que será el representado sobre el botón:
El color de fondo de las listas desplegables, campos de texto extenso, barras de título
de las ventanas, y otros, tienen asignados —al igual que las fuentes de menú, los
bordes de ventana, etc.— los colores del sistema Windows, que son configurables
desde fuera del programa, en la pestaña Apariencia de las Propiedades de pantalla.
En la sección Fondo de ventanas tenemos un botón para definir el Color del fondo y
una lista para seleccionar un gráfico con el que se van a rellenar de textura las
ventanas. El color es un gráfico en formato .BMP que se encuentra en el
directorio \GRAFICOS y cuyo nombre comienza con "Fondo_"
Subpestaña personalizar
Dentro de esta subpestaña podemos elegir la configuración de todos y cada uno de
los detalles de nuestro Menfis. Desde el color de fondo general al color de texto de los
check.
Licencia actual
Bajo esta sección tenemos el rótulo de la instalación y permisos actuales, el
nombre de la aplicación, versión y módulos instalados.
Pestaña Directorios:
La serie de botones muestran el directorio al que hacen referencia, y permiten
cambiar cada directorio. Pulsando el propio botón en algunos casos, podemos navegar
para introducir un directorio nuevo o realizar operaciones especiales relacionadas
con los directorios. Cada botón lleva un nombre y una descripción sobre la función del
directorio.
Directorio PÚBLICO
Por defecto, el programa guarda en el registro de Windows un directorio base que se
especifica en el momento de hacer la instalación servidora, por lo que no se puede
cambiar. Para hacer una instalación en red, por lo menos debe existir UNA
instalación servidora a la que hacer referencia.
Directorio PRIVADO
El directorio privado determina de dónde se toman los datos particulares de una
instalación cliente (datos particulares como el archivo .INI, el directorio de
informes, gráficos, los archivos .LEN de lenguaje, y otros, que se tomarán de este
directorio SI EXISTEN, en lugar de leer los del directorio público.
Directorio de PERMISOS
Hace referencia al archivo <nombre_aplicación>.DLL que contiene la protección
anti-copia (si estamos utilizando el sistema de protección de disquete), o el
archivo M OTOR.NIC (si estamos utilizando la licencia mediante clave). En una
instalación servidora, los permisos se instalan en el mismo directorio que la
aplicación. En una instalación cliente, cada usuario ejecuta el archivo .EXE del
servidor y se encamina al archivo de permisos del servidor, pero podemos utilizar
más ágilmente el programa, si realizamos en cada puesto cliente una instalación
pesada (es decir, con el programa completo, como la instalación servidora), y
utilizamos SÓLO los permisos del servidor.
Por eso es importante siempre que editamos una base y hacemos copia de
seguridad de ella, hacer al mismo tiempo una copia del archivo MOTOR.DAT, y una
buena medida para ello es copiar ese archivo a un Directorio de trabajo, y
redireccionar el camino mediante este botón.
Una vez creada la copia de seguridad, de forma manual, se nos mostrará el siguiente
diálogo:
Este menú, si no tenemos permisos de Edición de la base de datos, puede mostrar una
lista de marcadores incluidos en la base de datos, pero no se permitirá administrarlos,
cambiarlos o añadir nuevos marcadores.
Graba ventanas...: Muestra un diálogo estándar que nos pide un nombre con el que
designar el estado actual de las ventanas que en ese momento estén abiertas. El
campo de entrada nos permite teclear nombres largos para grabar un archivo en el
directorio \VENTANAS correspondiente a la resolución de pantalla que tengamos
seleccionada en Windows.
M odo graba al salir: Es un modo que podemos activar o desactivar. Cuando esta
opción está activa, al ejecutar Archivo > Fin Programa se graba el estado de todas las
ventanas en el archivo defecto.mac que se muestra como la opción de menú Estado
Inicio—, y cuando se arranca de nuevo se recupera el mismo. No ocurre lo mismo al
cerrar sólo la ventana o pulsar Archivo > Cierra ventana.
Avanzado:
Las configuraciones que se distribuyen por defecto llevan un nombre detrás de la clave
TIT, además de mostrar el nombre de archivo a la derecha del rótulo. Si no se
encuentra la clave TIT, se pone el nombre de archivo como nombre de la configuración
de ventanas.
VEN 1 TES 554 465 598 148 representa la ventana tesauro (TES) del paralelo (1) y sus
coordenadas
Tutorial...: Abre el archivo con una guía rápida de uso del programa o un tutorial
completo, como el que se ofrece impreso para aprender a manejar la aplicación paso
a paso. El archivo es de tipo .PDF y tiene el mismo nombre que el programa.
Contiene una línea en la que se pueden introducir expresiones que operen con los
datos que se encuentran dentro de los campos, o transcribir el total de la operación
efectuada, para múltiples líneas de la lista. El texto que aparece en la ventana es:
El campo reconoce tres partes diferenciadas; la primera especifica un operador que nos
dará la forma que afecta la línea de comandos al campo activo; se admiten seis
operadores: suma, producto, diferencia, división, exponente y asignación. Estos
operadores se pueden aplicar a una variable llamada ‘a’ que representa el valor del
campo actual, e ‘i’ que representa el número de la línea actual.
La segunda parte nos permite escribir cualquier expresión numérica que unida al
operador anterior nos dará el total que nos aparecerá en el campo activo.
+ adición ! negación
- sustracción y Y & && función AND, producto lógico
* producto o O | || función OR, suma lógica
/ división == igual
^ exponenciación != <> distinto
(potencia) <= =< menor o igual
= asignación >= => mayor o igual
< menor
> mayor
Funciones
IM PORTANTE: Los parámetros de las funciones van separados por el carácter punto y
coma ’;’ sin espacios en blanco en la calculadora (siempre que se tenga configurado
Windows como castellano), y separados por comas ‘,’ sin espacios en blanco cuando se
utilizan en el lenguaje de programación de informes JavaScript
Lo que llamamos expresión regular puede contener los siguientes comodines: '?'
cualquier carácter, '*' cualquier número de caracteres (al principio, en medio o al
final), '[...]' cualquier carácter dentro de los corchetes, la lista dentro de los corchetes
admite rangos '[...-...]' y negación '[!...]'.
año (fec) devuelve las dos últimas cifras del año de una fecha fec
dia (fec) recupera el día de una fecha fec con formato estándar
de caracteres
min (a; b; c; ...) valor mínimo de todos los valores pasados como parámetro
valor mínimo de entre todos los valores, como min (), pero
min0 (a; b; c; ...) sin tener en cuenta los elementos que son cero (que
siempre son los primeros)
str2fec (cad) formato real de tipo fecha (un número con formato
AAAAMMDD)
atan2 (x; y) arco tangente (en cualquier cuadrante) de la línea que une el
punto (x; y) con el origen
cos (x) coseno de x (grados sexagesimales)
Se pueden operar fechas, tratándolas como si fuesen números (en sus dos formatos
internos: DDMMAA ó AAAAMMDD) o mejor aún, con la función de suma y resta de
fechas fecmas(). Ésta posibilidad es muy útil cuando se trata de cambiar una serie
muy grande de fechas de forma automática, por ejemplo, poniendo en la calculadora
“10”+i+”97” 8 pondrá en las ocho líneas de concepto siguientes a la actualmente
seleccionada (si son las únicas que se muestran en pantalla), fechas desde el
10/01/97 al 10/08/97. También se puede operar en campos alfanuméricos (código,
resumen, ...) para de la misma forma, modificar o introducir datos masivamente.
Se pueden “limpiar” los campos de fechas de 10 líneas con la expresión: “” 10, y los
campos numéricos de importes, mediciones, etc. con “” 10 o 0 10 (ambas son
válidas).
También hay una forma de acceder a la información que contiene cualquiera de los
campos visibles de la pantalla, desde la calculadora. Las variables a1, a2, a3, etc. y
a_1, a_2, a_3, etc. hacen referencia a los contenidos de los tres primeros campos por
la derecha y por la izquierda, respectivamente, al campo en que nos encontremos
actualmente.
A este efecto, sólo se tienen en cuenta los campos visibles —tengan edición o no—,
así que por ejemplo, si tenemos en pantalla mostrados los campos: Código, Ud.
resumen, precio, fecha, medición, subtotal. Si nos situamos con la calculadora en el
campo precio, el contenido de la misma línea de concepto en el campo medición se
puede referenciar como ‘a2’ y el de código como ‘a_3’.
En caso de haber un sólo Tipo o Clase de concepto que coincida con la máscara o código
que se ha puesto, no se muestra la lista de selección sino que se da de alta
directamente el concepto.
, , y son
totalmente equivalentes a los cuatro tipos de salida de la ventana informes y
procedimientos: Permiten respectivamente, mostrar la salida en pantalla, papel, un
archivo ejecutable que contiene y permite visualizar e imprimir, o bien un archivo
RTF de texto rico (con negrita, subrayados, distintos tipos de letra, colores, etc.)
Si hacemos doble clic con el ratón sobre uno de los informes de la lista (o pulsamos
INTRO, que es equivalente), la opción por defecto es la salida hacia Preliminar.
Por otro lado, otras ventanas tiene su propia serie de informes como por ejemplo, la
ventana Gráficos muestra los informes cuyo nombre comienza con "gra", la de
Términos los que comienzan con "ter", y así.
Borra el concepto.
En los dos últimos casos se muestra un diálogo de interrupción para poder pasar el
proceso en caso de ser muy largo.
a. La opción Concepto > Concepto actual > Cambio de icono... teniendo seleccionados
uno o varios conceptos en la ventana principal
El doble clic sobre uno de los iconos que aparece en el diálogo, o la pulsación del botón
Acepta, supone un cambio del icono actualmente seleccionado, que puede tener varios
ámbitos:
Si no se desea cambiar el icono inicial de defecto de un tipo (es decir, anular cualquier
selección), basta con pulsar en uno de los espacios entre los iconos. Se mostrará el que
tenía inicialmente.
1º Sólo se pueden usar los 16 colores del sistema. El color magenta (fucsia o rosa) se
toma como transparente
2º La medida de cada icono debe ser exactamente 32x32 puntos y estar todos
contiguos sin espacios
3º Se debe editar igualmente y con los mismos cambios, el archivo icotip16.bmp del
mismo directorio, que mantiene las versiones de los mismos iconos en tamaño
16x16 puntos (para las líneas pequeñas).
a. La opción Concepto > Concepto actual > Cambio de tipo o clase... (que es el mismo
menú que se muestra pinchando con el botón derecho del ratón sobre el icono de
cualquier concepto), al tener seleccionado uno o varios conceptos en la ventana
principal
El doble clic sobre una de las líneas que aparece en el diálogo, es equivalente a la
pulsación del botón Si para realizar el cambio.
Ventanas de propiedades:
Por ejemplo:
MOOA.1a -> MOOA.1a1
Si el diálogo se muestra desde las opciones del submenú Propiedades del menú
Concepto, o al teclear un código nuevo en el campo de edición de la ventana principal,
se sugiere el siguiente al último que hayamos creado, ya que no se tiene una
referencia actual.
P ara confirmar la actualización hay que pinchar sobre el botón Sí, para abortar el proceso hay que
seleccionar el botón No.
La tercera parte de la ventana sirve para establecer el momento en que se comprobará si existe o no
alguna actualización disponible. P or defecto el actualizador realiza esta comprobación al iniciar la
sesión , pero existen diferentes opciones que se muestran a continuación:
Cláusula SELECT
Funciones de agrupamiento
Cláusula FROM
Cláusula WHERE
Cláusula GROUP BY
Cláusula HAVING
Operador UNION
Cláusula ORDER BY
Combinación de tablas
SELECT anidadas
Expresiones SQL
Nombres de campos
Constantes
Operadores Numéricos
Operadores de caracteres
Operadores de fechas
Operadores de relación
Sentencia INSERT
Sentencia UPDATE
Sentencia DELETE
Transacciones
El lenguaje SQL
SQL es una herramienta para organizar, gestionar y recuperar datos almacenados en
una base de datos relacional. El nombre "SQL" es una abreviatura de Structured
Query Language (Lenguaje de consultas estructurado).
Su aprendizaje no solo sirve para esta aplicación sino también, para todas las
existentes en el mercado que soporten este lenguaje ya que es un lenguaje estándar
consolidado por el Instituto Americano de Normas (ANSI) y por la Organización de
Estándares Internacional (ISO).
Barra vertical | Indicará la elección de una de las opciones que este separando. O
una u otra no ambas.
Sintaxis:
SELECT [DISTINCT] {* | expresión_columna, ...}
Para realizar esta operación, el motor de base de datos busca la tabla o las tablas
especificadas, extrae las columnas elegidas, selecciona las filas que cumplen los
criterios y ordena o agrupa las filas resultantes en el orden especificado
Cláusula SELECT
La cláusula SELECT especifica los datos a recuperar: nombres de los campos que
contienen los datos a consultar, expresiones a calcular por SQL cuando efectúa la
consulta, o un asterisco (*) para seleccionar todos los campos de una tabla.
Las expresiones de columnas deben ir separadas por comas (por ejemplo APELLIDOS,
NOMBRE, DNI, DOMICILIO).
Los nombres de campos pueden ir precedidos por el nombre de la tabla o su alias. Por
ejemplo ALUMNOS.MATRICULA o A.MATRICULA donde A es el alias para la tabla
ALUMNOS.
mostrará las distintas provincias de las que proceden los alumnos del Centro.
Funciones de agrupamiento
En este ejemplo, sólo aparecerán el nº de las distintas localidades donde residen los
alumnos.
Cláusula FROM
La cláusula FROM identifica la tabla o tablas que contienen los campos con los datos
a recuperar por la consulta.
Sintaxis:
nombretabla puede ser una o mas nombres de tabla separados por comas.
Las dos sentencias son idénticas y nos devolverían los nombres y apellidos del
alumnado matriculado en el año 1995 y que figuran en el grupo 1A. El nombre de
que nos devolverá el nombre de aquellos alumnos/as que tienen el mismo padre, es
decir, son hermanos.
Cláusula WHERE
La cláusula WHERE determina las condiciones que tienen que cumplir los registros
recuperados de la base de datos.
Sintaxis:
WHERE expresión
Donde expresión indica una condición que deben cumplir los registros para que se
incluyan en el resultado de la consulta. Puede ser cualquier combinación de
operadores, constantes, valores literales, funciones y nombres de campos que se
evalúen a un valor sencillo.
Por ejemplo, la siguiente sentencia nos muestra el nº de alumnos que han nacido
con posterioridad a 1985.
Cláusula GROUP BY
Combina en un único registro los registros con valores idénticos en el campo o
campos especificados en la lista de campos que sigue a GROUP BY.
Sintaxis:
GROUP BY lista_de_campos
El siguiente ejemplo nos dice cuantos alumnos están matriculados en cada grupo en
el año 1995:
Esta sentencia nos devolverá una fila por cada grupo de alumnos. Cada una de ellas
contendrá el grupo y el nº de alumnos del grupo.
Cláusula HAVING
La cláusula HAVING especifica una condición aplicable a grupos obtenidos de la
aplicación de la cláusula GROUP BY. Sólo es válida si previamente se ha
especificado la cláusula GROUP BY.
HAVING expresión
Operador UNION
El operador UNION combina el resultado de dos sentencias SELECT en un único
resultado. Este resultado se compone de todos los registros devueltos en ambas
sentencias. Por defecto los registros repetidos se omiten, para que no se omitan se
empleará la palabra ALL.
Sintaxis:
UNION
UNION
Este ejemplo tiene el mismo nº de columnas y cada columna en orden con el mismo
tipo de datos. Nos devolverá una lista única de alumnos, profesores y personal no
docente.
Cláusula ORDER BY
La cláusula ORDER BY ordena los resultados de la consulta en base a los datos de
una o más columnas. Si se omite, los resultados saldrán ordenados por el primer
campo que sea clave en el índice que se haya utilizado.
Por tanto, indica como deben clasificarse los registros que se seleccionen. Tiene la
forma:
Combinación de tablas
Los ejemplos vistos hasta el momento extraen datos de una única tabla. El enlace o
relación entre tablas para realizar una consulta, se conoce con el término de JOIN.
La operación JOIN combina registros de dos tablas siempre que existan valores
coincidentes en un campo común.
Existen tres tipos de combinaciones entre tablas: INNER JOIN, LEFT JOIN, RIGHT
JOIN
Para extraer los datos hay que buscar un campo que contenga información común
en las dos tablas, es decir, aquel por el que están relacionadas ambas. Este campo es
el nº de expediente del alumno, que tiene el mismo nombre en las dos tablas:
MATRICULA y será este campo el que sirve para efectuar el JOIN:
La sintaxis resulta mucho mas sencilla si se utilizan alias para los nombres de las
tablas.
Los campos que tienen nombre único en las sentencias no necesitan ir precedidos
por el nombre de la tabla o su alias. En el ejemplo ANNO y TIPO solo existen en la
tabla MATRICULA y por esa razón no se les ha precedido por el nombre de la tabla o
por su alias.
De esta forma solo se obtendrán las materias que tienen asignado departamento
que las imparta. Si deseamos una relación de todas las materias, incluidas aquella
en las que no figura el departamento que las imparte:
O bien
SELECT anidadas
Se pueden existir consultas que requieran una restricción que sea el resultado de
otra consulta.
Expresiones SQL
Las expresiones se utilizan en las cláusulas WHERE, HAVING y ORDER BY de las
sentencias SELECT.
Operadores numéricos
Operadores de fechas
Operadores lógicos
Constantes
Operadores de caracteres
Operadores de relación
Funciones
Nombres de campos
Las expresiones más comunes son los nombres de campos. Se pueden combinar con
otros elementos de las expresiones
Constantes
Las constantes son valores que no cambian. Por ejemplo, en la expresión
FECHA_NACIMIENTO + 30, el valor 30 es una constante y FECHA_NACIMIENTO es
un nombre de campo.
Las constantes de caracteres se deben encerrar con una comilla simple ( ) o una
doble (" ). Para que una comilla simple o doble aparezca en una constante se pone
doble.(Por ejemplo, si la constante deseada es O’Donnel deberá figurar como
‘O’’Donnel’.
Operadores Numéricos
Para realizar operaciones numéricas se puede utilizar los operadores:
+ Suma
- Resta
* Multiplicación
** o ^ Exponenciación
Operadores de caracteres
Las expresiones de caracteres pueden incluir los siguientes operadores:
Operadores de fechas
Las expresiones de caracteres pueden incluir los siguientes operadores:
+ Añade un número de días a una fecha para producir una nueva fecha.
- El número de días entre dos fechas o la resta de un número de días desde una
fecha para producir una nueva fecha.
Por ejemplo:
Operadores de relación
Los operadores de relación que pueden separar dos expresiones pueden ser
cualquiera de los siguientes:
= Igual a
<> Distinto de
Any Compara un valor con cada valor devuelto por una subconsulta retornando
cierto si uno cualquiera de ellos cumple la condición. Any debe ir precedido de =, <>,
All Compara un valor con cada valor devuelto por una subconsulta retornando cierto
si todos ellos cumplen la condición. All debe ir precedido de =, <>, <, >, >= o >=.
Grupo IS NULL
WHERE M.ESTUDIOS = ANY (SELECT ESTUDIO FROM ESTUDIOS WHERE NIVEL = ‘1’)
WHERE NOTA > ALL (SELECT NOTA FROM CALIFICA WHERE VALOR1 > 4)
Operadores Lógicos
Dos o más condiciones pueden ser combinadas para formar expresiones más
complejas con distintos criterios. Cuando existen dos o más condiciones deberán
estar unidas por AND o OR. Por ejemplo,
deben de cumplirse las dos condiciones para que sea cierta la condición total.
Basta con que una de las dos sea cierta para que lo sea la condición total.
El operador lógico NOT es útil para poner al contrario una condición. Por ejemplo:
2 ** o ^
3 *, /
4 +, -
5 =, <>, <, >, >=, >=, Like, Not Like, Is Null, Is Not Null, Between, In, Exists, Any,
All
6 NOT
7 AND
8 OR
WHERE SEXO = ‘V’ OR FECHA_NACIMIENTO > {3/30/1970} AND MATRICULA > 4000
Ya que el AND se evalúa primero, esta consulta nos devuelve aquellos alumnos con
nº de matricula mayor que 4000 y que hayan nacido con posterioridad al 30 de marzo
de 1970, como también aquellos que sean Varones.
Para forzar a que la cláusula se evalúe en orden distinto, por ejemplo, que muestre
aquellos alumnos que sean Varones o que hayan nacido después de esa fecha y que
además de una de las dos condiciones anteriores, su nº de matrícula sea mayor que
4000, será necesario usar paréntesis para encerrar las condiciones que deban
evaluarse primero, es decir:
WHERE (SEXO = ‘V’ OR FECHA_NACIMIENTO > {3/30/1970}) AND MATRICULA > 4000
Sentencia INSERT
La sentencia de INSERT se utiliza para añadir registros a las tablas de la base de
datos. El formato de la sentencia es:
expr es una lista de expresiones o valores constantes, separados por comas, para dar
valor a los distintos campos del registro que se añadirá a la tabla.
Cada sentencia INSERT añade un único registro a la tabla. En el ejemplo solo se han
especificado 3 campos con sus respectivos valores, el resto de campos quedaran a
nulo. Un valor nulo NULL no significa blancos o ceros sino simplemente que el campo
nunca ha tenido un valor.
Sentencia UPDATE
La sentencia UPDATE se utiliza para cambiar el contenido de los registros de una
tabla de la base de datos. Su formato es:
[WHERE { condición }]
expr es el nuevo valor que se desea asignar al campo que le precede. La expresión
puede ser un valor constante o una subconsulta.
Por ejemplo, subir el precio de compra de la tabla de libros un 10% de aquellos que
tengan más de 250 páginas, sería:
UPDATE LIBROS SET PRECIO = PRECIO * 1.1 WHERE PAGINAS > 250
Otro ejemplo, para fijar la fecha de matrícula de todos aquellos alumnos que la tienen
vacía a la fecha de hoy, se pondría:
Con esta última sentencia se ha puesto precio a todos los libros que no lo tenían. Ese
precio ha sido el resultante de calcular la media entre los libros que si lo tenían.
Sentencia DELETE
La sentencia DELETE se utiliza para borrar registros de una tabla de la base de datos.
El formato de la sentencia es:
Cada sentencia DELETE borra los registros que cumplen la condición impuesta o
todos si no se indica cláusula WHERE.
Con el ejemplo anterior se borrarían todos los registros de la tabla libros cuya
antigüedad, desde la fecha de adquisición, fuera mayor de 20 años.
Para borrar las notas de evaluaciones que, no sean la Final, de los alumnos de años
anteriores se utilizaría la sentencia:
DELETE FROM NOTAS WHERE ANNO < 1995 AND EVALUACION <> ‘F’
En la aplicación no se permite utilizar las siguientes sentencias SQL, aunque son del
lenguaje, por control sobre los datos:
Las reglas para los nombres de columnas y los tipos de datos disponibles son
Transacciones
Una transacción es una serie de cambios en la base de datos que deben ser tratadas
como una sola. En otras palabras, que se realizan todos o que no se haga ninguno,
pues de lo contrario se podrían producir inconsistencias en la base de datos.
Código JavaScript
Sentencias
Comentarios
Asignación
Expresiones
Variables
Declaración de variables
Nombres de variables
Tipos de datos
Tipo String
Tipo Number
Tipo Boolean
Tipo Undefined
Tipo Null
Definición de funciones
if-else
Bucles for
Bucles for-in
Sentencia switch-case
Objetos
Prototipo de un objeto
Cláusula with
El objeto Global
El lenguaje JavaScript
JavaScript es la implementación de Microsoft del lenguaje JavaScript. Este lenguaje
se usa fundamentalmente para añadir contenidos a las páginas de Internet (páginas
htm o html), pero puede utilizarse para manipulación y personalización de otras
aplicaciones (como Microsoft Office), para la realización de procesos en servidores de
Internet, para administrar el sistema, etc.
Cuando el código JavaScript forma parte de una página Web, se incluye en el archivo
HTML entre las etiquetas <SCRIPT LANGUAGE = "JavaScript"> y </SCRIPT>. Este
código será interpretado por el navegador de Internet cuando se descarga la página
desde el servidor. Podrá ser también ejecutado en el servidor Web, necesitando
igualmente un interprete.
La OOP permite establecer una comparación entre el mundo físico y el del software.
En la realidad casi todos los objetos están constituidos por objetos más pequeños, que
tienen características y funcionalidad propia e independiente del conjunto al que
pertenecen.
Los objetos software especializados permiten escribir el código una sola vez
reutilizándolo tal cual o adaptándolo a las necesidades particulares modificando
ciertas propiedades o métodos de los objetos.
Código JavaScript
El código JavaScript se escribe en formato de texto, está organizado en sentencias,
grupos de sentencias relacionadas constituyendo un bloque, y comentarios. En las
sentencias pueden utilizarse variables, constantes y expresiones.
Sentencias
Una sentencia consiste en uno o más items y símbolos en una línea, una nueva
línea indicará una nueva sentencia, sin embargo es conveniente terminar las
sentencias explícitamente utilizando el punto y coma (;), que es el carácter de
terminación de la sentencia.
Comentarios
Los comentarios son líneas de código que no se interpretan, se emplean para incluir
notas aclaratorias o para eliminar temporalmente líneas de código que no se
quieren ejecutar.
Asignación
El signo igual (=) es utilizado, como en el resto de los lenguajes de programación,
para asignar un valor. Es decir, una sentencia como miNum = 8; significa asignar el
valor 8 a la variable miNum. Cuando se quiere comparar dos valores para saber si
son iguales, se utilizan dos signos de igualdad (==).
Variables
Las variables se utilizan para almacenar valores permitiendo recuperar y manipular
dichos valores utilizando nombres. Los nombres de variables deben ser descriptivos
para que constituyan una ayuda en la comprensión del programa.
Declaración de variables
Las variables de declaran con la sentencia var. Únicamente es necesario declarar
las variables cuando se trata de variables locales a una función, aunque es
conveniente declarar siempre las variables antes de utilizarlas.
var miVariable;
var b = true;
Se pueden declarar varias variables en una única sentencia var separando los
nombres de las variables por comas:
Sin embargo, no se puede utilizar una variable que nunca ha sido declarada, ya que
genera un error en tiempo de ejecución.
Nombres de variables
JavaScript diferencia entre mayúsculas y minúsculas. La variable miVariable se
considerará distinta de MiVariable. Los nombres de variable pueden tener cualquier
longitud y deben seguir las siguientes reglas:
Se puede conocer el tipo de dato que contienen una variable utilizando la función
typeof que retorna una cadena indicando el tipo de dato.
En realidad String, Number y Boolean son objetos intrínseco de JavaScript que tienen
sus propiedades y métodos. Aunque resulte transparente para el programador cuando
inicializa una variable con un número esta creando un objeto tipo Number.
Tipo String
Los Strings se delimitan por comillas simples o dobles. Se utilizan comillas simples
cuando el texto contiene dobles comillas y viceversa. Cuando se asigna a una
variable una cadena de caracteres la variable será de tipo String.
Un string puede contener cero o más caracteres Unicode. Cuando contiene cero
caracteres se dice que es un string de longitud cero o vacío ("").
El símbolo "\" actúa como carácter de control para introducir otros caracteres en una
cadena. En la siguiente tabla se incluyen los más comunes de estos caracteres
especiales:
\n Salto de línea
\r Retorno de carro
\f Salto de página
\t Tabulador
\\ El propio carácter \
\b Carácter anterior
miNumero = 6,023e+23;
Hay ciertos valores numéricos que son especiales: NaN (Not a Number) indica que
no es un número, Infinity (Infinito positivo y negativo).
Los números octales se especifican precediendo el número por un cero (0), pudiendo
contener dígitos entre 0 y 7. Si un número está precedido por un cero pero contiene
el dígito 8 o 9, se considera un número decimal. Un número que pudiendo ser octal
contenga la letra "e" (o "E") genera un error.
Los enteros hexadecimales se especifican precediéndoles por "0x", la "x" puede ser
mayúscula o minúscula, y puede contener dígitos de 0 a 9 y letras de la A a la F,
tanto en mayúsculas como en minúsculas. La letra "e" puede figurar en los enteros
hexadecimales pero no tiene el significado de número exponencial. Las letras de la
A a la F son usadas para representar los números comprendidos del 10 al 15 en
notación decimal. Es decir, 0xC equivale al 12, y 0x10 equivale al 16 en base
decimal.
Los números octales y hexadecimales pueden ser negativos, pero no pueden ser
faccionarios. Un número que empieza con un "0" y contienen decimales se
considerará un número de coma flotante en base 10.
Como hemos mencionado, en todos estos casos estamos creando una instancia de la
clase Number.
Tipo Boolean
Las variables de tipo Boolean pueden contener dos valores posibles: true (verdadero)
y false (falso) que se escriben en minúsculas. En una comparación, una expresión
que se evalúa a 0 toma el valor false, y si se evalúa a cualquier otro número distinto
de cero toma el valor true.
Tipo Null
Cuando una variable no contiene ningún valor su contenido es nulo.
El símbolo + se utiliza tanto como operador aritmético de suma como para enlazar o
concatenar cadenas de caracteres. En este caso la variable numérica var2 se
convierte en string de forma que var3 será un string igual a "7525".
100
var2 = true;
Definición de Funciones
Las funciones permiten agrupar sentencias bajo un nombre. Se escribe el grupo de
sentencias, se asigna un nombre, y se ejecuta el grupo entero simplemente
referenciando su nombre y pasando la información que requieran.
Para definir una función se emplea la palabra reservada function seguida del nombre
de la función. Los nombres de funciones siguen las mismas reglas que los nombre de
variables.
Si la función tiene que recibir información esta irá encerrada entre paréntesis
después del nombre de la función, esta información se conoce como argumentos o
parámetros. Algunas funciones no requieren argumentos; otras necesitan uno; otras
varios argumentos que se separarán con comas (,). Hay incluso funciones para las
cuales el número de argumentos depende de como se está usando la función.
return a*b*c
function integerCheck(a, b, c)
triplet = true;
function floatCheck(a, b, c)
if (theCheck < 0)
theCheck *= -1;
triplet = true;
function checkTriplet(a, b, c)
var d = 0;
if (c > b)
d = c;
c = b;
b = d;
if (b > a)
d = b;
b = a;
a = d;
integerCheck(a, b, c);
var sideA = 5;
var sideB = 5;
Una variable local puede tener el mismo nombre que una variable global, pero siguen
siendo enteramente distintas. Al cambiar el valor de una de ellas no cambiará el
valor de la otra. Dentro de la función en la cual la variable local es declarada, sólo
esta variable tendrá significado.
Cuando se copia o se pasa un valor por referencia, se crea un puntero al ítem original
y se utiliza el puntero como copia. Si se cambia el original, cambiarán ambos original
y copia (y viceversa). Hay una única entidad, la copia no es realmente una copia, es
Datos tipo Number y Boolean por defecto son copiados, pasados y comparados por
valor. Objetos, Arrays y funciones son copiados, pasados y comparados por referencia.
Por último, Strings son copiados y pasados por referencia, pero son comparados por
valor.
Cuando se pasa un parámetro a una función por valor, se hace una copia separada
del parámetro, una copia que existe solamente dentro de la función, puede cambiarse
el valor del parámetro dentro de la función sin que cambie su valor fuera de ella. Si
se pasa el parámetro por referencia y la función cambia el valor de dicho parámetro,
quedará cambiado el original en cualquier parte del script.
Operadores
Aritméticos Lógicos Bit a Bit Asignación Otros
Cambio de - Negación ! Negación ~ Asignación = borrar delete
signo
Incremento + Menor que < Rotación << Con adición += tipo typeof
+ izquierda
Decremento -- Mayor que > Rotación >> Con -= obviar void
derecha sustracción valor
Multiplicar * Menor o < Rotación >> Con *=
igual que = derecha > multiplicación
sin signo
Dividir / Mayor o > AND & Con división /=
igual que =
Módulo % Igual a = XOR ^ Con módulo %=
=
Suma + Distinto a != OR | Con op. bit a <<=,
bit >>=,
etc.
Resta - AND &
&
OR |
|
Condicional ?:
Coma ,
Igualdad =
estricta =
=
Desigualdad !
estricta =
=
n2 = ++n1;
n3 = n1++;
Los operadores lógicos se utilizan para evaluar expresiones y poder tomar decisiones
dependiendo de que el resultado sea verdadero o falso:
true
Los operadores bit a bit: AND (&), OR (|), XOR (^) y NOT (~) actúan a nivel binario
haciendo una comparación bit a bit según la siguiente tabla:
Segundo_Bi Resultad
Operador Primer_Bit
t o
AND (&) 0 0 0
1 0 0
0 1 0
1 1 1
OR (|) 0 0 0
1 0 1
0 1 1
1 1 1
XOR (^) 0 0 0
1 0 1
0 1 1
1 1 0
NOT (~) 0 1
1 0
num2 = ~num;
Como resultado cabría esperar que num2 tuviera el valor 1, sin embargo el resultado
es -1. Para entender esto hay que conocer la representación interna que JavaScript
hace de los números.
Los números enteros son almacenados en 2 bytes (16 bits) reservando el primero de
ellos para el signo. Por tanto, podemos utilizar números enteros en el rango -32.768 -
32.768.
Según esto para negar el número de 16 bits que representa al 1 habría que hacer lo
siguiente:
0000 0000 0000 0001 se niegan los 15 bits finales
Estos operadores, al contrario que en C/C++, mantienen el bit del signo desplazando
únicamente los 15 bits correspondientes al número. Sin embargo el operador >>>
desplaza los bits a la derecha incluido el bit de signo.
etc.
Operador Descripción
Los paréntesis son utilizados para alterar el orden de evaluación. La expresión dentro
del paréntesis es completamente evaluada antes de que su valor sea usado en el
resto de la sentencia.
x = a * (b + c + d)
if-else
Esta sentencia permite evaluar una expresión booleana y ejecutar una sentencia o
bloque de sentencias en el caso de que el resultado de evaluar la expresión sea true.
Opcionalmente puede especificarse, bajo la cláusula else, un grupo de sentencias a
ejecutar cuando el resultado sea false.
if (condición)
sentencias
[else
sentencias
}]
num +=1;
num += 1;
else
num = 1;
else
if (pesoreal == pesoideal)
else
Bucles for
Permite ejecutar una sentencia o bloque de sentencias repetitivamente mientras
se cumpla una determinada condición. Especifica una variable contador, un
condición a evaluar, y una acción que actualiza el contador. Justo antes de cada
ejecución del bucle (paso o iteración del bucle), la condición es evaluada. Después de
que el bucle es ejecutado, la variable contador es actualizada justo antes del
comienzo de la siguiente iteración.
s += i;
t = s;
var paso = 1;
var t = 0;
t++;
paso = i;
return t;
Los bucles for se pueden anidar. Es decir se puede ejecutar un bucle dentro de otro.
var t = "";
t = t + i + j + " ";
t += "\n";
La variable t contendrá una cadena con los números 00 01 02 03... al 99. En cada
iteración del bucle exterior, se añade a la cadena un retorno de carro, formándose
10 líneas.
Bucles for-in
Ejecuta el cuerpo del bucle tantas veces como miembros tenga una colección de
objetos o una matriz sin necesidad de conocer su número exacto. Supongamos un
objeto Biblioteca con una propiedad llamada Libro que devuelve una cadena de texto
con cada uno de los títulos de los libros de esa biblioteca. Para obtener una lista
completa de los libros escribimos:
var libro = "";
bloque_de_sentencias
bloque_de_sentencias
}while (condición)
El siguiente ejemplo muestra una función que retorna una cadena conteniendo los
números, separados por blancos, comprendidos en un intervalo dado n1::n2 excepto
los que son múltiplos de 5:
function NoMult5 (n1, n2)
if (i % 5 == 0)
continue;
return txt;
Sentencia switch-case
Permite la ejecución de un bloque de sentencias cuando una el valor de una
expresión coincide con una etiqueta.
switch (expresión)
case etiqueta1:
bloque 1
case etiqueta2:
bloque 2
...
default:
bloque n
case 0, 1, 2, 3, 4:
txt = "Suspenso";
break;
case 5, 6:
txt = "Aprobado";
break;
case 7, 8:
txt = "Notable";
break;
case 9, 10:
txt = "Sobresaliente";
break;
txt = "Indeterminada";
Objetos
Los objetos son esencialmente colecciones de propiedades y métodos. Un método es
una función que es miembro de un objeto, y una propiedad es un valor o grupo de
valores (en forma de objeto array) que es miembro de un objeto.
JavaScript soporta tres tipos de objetos: objetos intrínsecos, objetos creados por el
programador, y objetos del navegador.
Hay nueve objetos intrínsecos o incorporados: Array, Boolean, Date, Function, Global,
Math, Number, Object, y String.
Para crear instancias de un objeto se utiliza la palabra reservada new seguida del
nombre del objeto, por ejemplo:
Para crear instancias de un objeto propio hay que escribir un constructor para dicho
objeto. El siguiente ejemplo define las propiedades del objeto Ciudad y su constructor:
// Constructor de Ciudad
this.Nombre = nombre;
this.Habitantes = habitantes;
this.Pais = pais;
var Madrid = new Ciudad ("Madrid", 3800000, "España"); // crea un objeto Ciudad
var h = Madrid[1];
var h = Madrid["Habitantes"];
Una vez creado el objeto puede cambiarse el valor de cualquiera de sus propiedades.
Madrid.Habitantes = 4000000;
Para definir los métodos miembro de un objeto se define una función y se asigna al
método del objeto en su constructor. Supongamos que la clase Ciudad tiene un
método llamado Resumen que retorna una cadena de texto con el resumen de las
propiedades del objeto. Se define primero la función:
function ciudad_resumen ()
this.Nombre = nombre;
this.Habitantes = habitantes;
this.Pais = pais;
this.Resumen = ciudad_resumen;
Huelva.Resumen = ciudad_resumen_breve;
Ahora bien, estas nuevas propiedades o métodos son miembros únicamente del
objeto para el que se definen (en este caso sólo de Madrid) y no de la clase Ciudad.
Tampoco se pueden reasignar los métodos para la clase en tiempo de ejecución. Por
ejemplo la siguiente sentencia
Ciudad.Resumen = ciudad_resumen_breve;
Prototipo de un objeto
JavaScript suministra una propiedad llamada prototype que permite crear nuevas
propiedades y métodos que serán comunes a todos los objetos de la clase. Estas
propiedades son copiadas por referencia en cada objeto de la clase, por lo que
tendrán el mismo valor para todos ellos. Sin embargo, se pude cambiar el valor de un
miembro prototype en un objeto, y el nuevo valor sobreescribe el valor de defecto
únicamente en esa instancia. Otros objetos pertenecientes a la misma clase no se
verán afectados por el cambio.
Ciudad.prototype.Capital = false;
Ciudad.prototype.Resumem_breve = ciudad_resumen_breve;
txt = Madrid.Resumen_breve;
Number.prototype.MIN_VALUE = 0;
Puede obtenerse una relación de las propiedades y métodos de un objeto creado por
el programador con la siguiente función:
function ResumenObjeto (obj)
var propiedad;
return txt;
Cláusula with
La palabra clave with permite designar un objeto como predeterminado en un bloque
de sentencias, de forma que puedan referenciarse sus métodos y propiedades sin
necesidad de precederlos con el nombre del objeto. Por ejemplo la definición de la
función ciudad_resumen puede simplificarse como sigue:
function ciudad_resumen ()
with (this)
Pais + "\n";
M étodos:
M ath.ceil(n) - Retorna el entero más pequeño que sea menor o igual que n
Propiedades y constantes:
E - Número de Euler, base de los logaritmos neperianos. Aproximadamente
2,718282
Aproximadamente 3,14159
Ejemplos:
Math.sqrt (25); // retorna 5
nivel de bits */
var factor = 1;
factor *= 10;
var n;
if (n != 0)
return n / Math.abs(n);
else
return 0;
Los elementos se pueden direccionar escribiendo el nombre del objeto array seguido
del indice del elemento entre corchetes. Los indices han de ser números enteros
positivos, comenzando con el 0:
Proveedores[0] = "Teleline";
Proveedores[1] = "Arrakis";
Proveedores[2] = "CTV-Jet";
Proveedores[3] = "Alehop";
Proveedores[20] = "Arsys";
Se crea un array M de 5 elementos cada uno de los cuales es, a su vez, un array. Si
hay que crear más dimensiones se repite el proceso anterior para cada elemento de
las sucesivas matrices. Una vez definido el array multidimensional, se accede a sus
elementos escribiendo los índices correspondientes entre corchetes
M étodos:
array.toString() - este método, que forma parte de todos los objetos intrínsecos de
JavaScript, es llamado automáticamente cuando el array tiene que convertirse
en string. Cada elemento es convertido a string y todos ellos se concatenan
separados por comas.
Ejemplos:
var a = new Array (0, 1, 2, 3, 4);
8 ,9
/* El siguiente ejemplo ilustra como añadir un método al objeto Array que retorne
el valor del mayor de sus elementos */
function array_max ()
max = this[i];
return max;
Array.prototype.max = array_max;
a.test = 10;
En este caso, la propiedad test se define para a y para todos los literales utilizados en
el resto de script. Sin embargo, en el siguiente ejemplo:
var a, b;
a.test = 10;
la propiedad test no queda definida para b ni para el resto de los string del script. Esta
es la única diferencia entre los objetos string creados con new y los string literales.
Algunos de los métodos del objeto String facilitan la inclusión de etiquetas HTML en
las cadenas de texto. No tendremos en cuenta estos métodos, ya que la creación de
páginas Web no es el objeto de este documento. En los métodos siguientes string
puede ser un objeto String o un literal.
Ejemplos:
var s = "ABCDEFG".charAt(3); // s valdrá D
carácter D
Una variable que contenga una fecha, o sea un objeto de tipo Date, almacena un
valor numérico que expresa el número de milisegundos (miles de segundos)
transcurridos desde medianoche (00:00:00) del día 1 de enero de 1970 (1/1/1970).
Las diferencias temporales se expresan igualmente en esta unidad, de forma que un
día tiene 86.400.000 milisegundos.
El objeto Date tiene dos métodos estáticos que pueden ser llamados sin necesidad de
crear un objeto Date. Estos son: parse y UTC.
El método parse analiza un string que contiene una fecha, y retorna el número de
milisegundos entre dicha fecha y el 1/1/1970 a las 00:00:00.
Date.parse (ValordeFecha);
M étodos:
Ejemplos:
d = new Date();
tz = d.getTimezoneOffset();
if (tz < 0)
else if (tz == 0)
s += "GMT";
else
return(s);
body
La primera sintaxis crea una función que será convertida a un objeto Function
cuando sea necesario. La segunda sintaxis crea un objeto Function que será
Veamos una función que permite sumar los números que recibe como argumentos,
independientemente del número de ellos que reciba:
function Suma ()
var suma=0;
suma += Suma.aguments[i];
return suma;
Otra propiedad del objeto Function es caller, que contiene una referencia a la
función que ha llamado a la actual. Si la función es llamada desde el primer nivel del
script, caller será null, pero en caso de ser llamada desde otra función, caller
contendrá una referencia a dicha función.
El objeto Global
Es un objeto intrínseco de JavaScript que almacena los métodos globales. Este objeto
no se utiliza nunca directamente, y no puede crearse usando el operador new. Se
crea automáticamente, igual que el objeto Math, el inicializar el motor interprete del
script, por los que sus métodos y propiedades están siempre disponibles.
M étodos:
isNaN (número) - retorna true si número contiene el valor reservado NaN (not a
number) y false en caso contrario. Alternativamente podría compararse número
consigo mismo, se no es igual significa que su valor es NaN, esto es así porque
NaN es el único valor que no es igual a sí mismo.
Pueden editarse con cualquier editor, por ejemplo con el Bloc de Notas de Windows. La
Aplicación suministra un editor al que se accede desde la ventana informes y
procedimientos con el botón Programa de la barra de botones. Este editor utiliza colores
distintos para las constantes, las palabras reservadas, y las líneas de comentario, lo que
ayuda a la lectura del código.
Es por esto que la Aplicación suministra extensiones a JavaScript para poder obtener
informes que se visualizarán en pantalla o impresora, estas extensiones se han
dividido en tres grupos: extensiones básicas que suministran métodos para manejo de
fechas, para mostrar diálogos en pantalla, ejecutar otras aplicaciones, etc.; extensiones
de impresión que facilitan la tarea de dar formato a los informes, y extensiones de
acceso a base de datos que permiten comunicarse con las tablas para poder extraer la
información.
Dado que la Aplicación almacena sus datos en bases de datos SQL (Structured Query
Languaje), las extensiones a JavaScript para acceso a datos utilizan SQL como lenguaje
para comunicarse con la base de datos, por lo que es necesario tener algunas nociones
del mismo, en particular conocer la sentencia SELECT, que permite recuperar la
información de la base de datos.
Por último, se necesita conocer la estructura de la base de datos es decir, los nombres
de campos, las tablas y relaciones entre tablas, para construir las sentencias SELECT
que leerán los datos a procesar.
Uno de los métodos de las extensiones básicas es writeline, este método manda el texto
que recibe como argumento a un archivo de texto llamado presenta.txt, que se
almacena en el directorio o carpeta Temporal. Al terminar la ejecución del programa xjs
se abrirá el Bloc de Notas de Windows mostrando dicho archivo de texto, lo que permite
comenzar a realizar pruebas sin conocer aún las extensiones de impresión.
Métodos
TODAS las explicaciones dadas en este anexo se refieren a las AMPLIACIONES que el
programa hace sobre el lenguaje estándar JavaScript (nuevos objetos, métodos y
propiedades). La sintaxis, funciones, métodos y utilización del propio lenguaje no se
toca en ningún momento, y hay un archivo de ayuda en línea que puede consultar
para ese fin.
En caso de no introducir ningún dato en fecini, los informes que funcionan con
fechas suelen asignar una fecha de defecto (normalmente la del día actual). Pero si
se introduce cualquier número en la fecha inicial, se rellena la fecha comenzando
por la izquierda para poner una fecha completa, también en fecfin:
Tecleado en F.
Fecha inicial Fecha Final
INI
3 01/01/2003 01/01/2004
Nº primera Páginas a
Resultado, imprime:
página imprimir
3- de la página 3 a la última, comenzando en 1
3-6 de la página 3 a la 6 (incluidas), comenzando en 1
-8 hasta la página 8 (incluida), comenzando en 1
4 1-2 todas las páginas (ignora el rango), comenzando con el nº 4
4 1-4 sólo la pág. 4, con el nº 4
10 15- desde la quinta pág. del informe, comenzando con el nº 10
Otra variable relacionada con el número de páginas es pagtotal, que calcula una
primera vez el informe entero, para obtener el número de páginas que tiene, y lo
almacena en esta variable global.
ingra: Es el objeto motor por defecto. De él parten los demás objetos, pero no hace
falta especificarlo, ya que es el de defecto, y no aparecerá en ninguna de nuestras
sentencias.
Objetos derivados
Cmapi - asignado a una variable, crea un objeto de tipo correo electrónico, que
permite enviar, recibir y recuperar datos de correos electrónicos. Vea los métodos de
estos objetos en Objetos y métodos de ingra.
Chor - asignado a una variable, crea un objeto de tipo fecha-hora, que permite
gestionar operaciones complejas con fechas (como calcular periodos, restar o sumar
días a fechas, calcular fechas sumando horas,etc.). Vea los métodos de estos objetos
en Objetos y métodos de ingra
Propiedades
erro - es una cadena de caracteres que almacena el último mensaje de error que se
ha producido en la ejecución el programa xjs.
hoy - almacena un número que representa la fecha actual del sistema en el que se
ejecuta el programa, en formato aaaammdd. Esta propiedad puede utilizarse como
argumento de los métodos de manejo de fechas. Por ejemplo, si hoy es viernes 10 de
agosto del 2001, el método fecha (hoy, "dd-mm-aaaa") devolverá 10-08-2001.
Métodos
debug - esta sentencia detiene la ejecución del programa y abre el diálogo de
depuración. En la línea Comando o variable se pueden especificar: un sentencia
válida de JavaScript incluyendo las extensiones, o bien un nombre de variable. Al
diaavisa (título, texto) - abre un diálogo con el icono de AVISO, título es la cadena de
texto que figurará en el título del diálogo, y texto el mensaje. Al hacer clic en el
botón Acepta continuará la ejecución del programa. Vea también el método inter()
diaedita (título, texto[, defecto]) - abre un diálogo con un campo editable, título es la
cadena de texto que figurará en el título del diálogo, y texto es la cadena de texto
que figura como mensaje del diálogo, defecto es el contenido que por defecto tendrá
el campo de edición. Retorna el valor del campo de edición cuando se pulsa el botón
Acepta, y retorna el valor NULL (nulo) al pulsar Cancela.
diaerror (texto) - muestra un diálogo de error con el mensaje texto y el título ERROR.
Al pulsar el botón Cierra continuará la ejecución del programa.
filextension
ddd - tres primeras letras del nombre del día de la semana: Lun, Mar, Mié, Jue,
Vie, Sab, Dom.
mmm - tres primeras letras del nombre del mes: Ene, Feb, Mar, etc.
Los objetos de deben crear uno por cada gráfico distinto a representar en una
misma línea, (los objetos no se liberan hasta que se imprime una línea sin
bloqueo), pero en cada línea o bloque de líneas se deben reutilizar los mismos
objetos.
Cgrf - asignado a una variable, crea un objeto de tipo gráfico estadístico, al que se
le pasan los datos a representar, y el formato. Permite mostrar gráficos de líneas,
de barras y de tarta.
El formulario resultante será una ventana que contiene: barra de título incluyendo
el botón de control y el botón de cierre, y dos botones en la barra inferior: Acepta,
Cancela. Esta ventana es redimensionable horizontalmente, al variar el ancho de
la ventana variará el ancho de los controles que incorpora.
"Fecha de vencimiento;"+
"Fecha de emisión;"+
"Fecha de vencimiento;"+
"Fecha de emisión;"+
En este caso el método valor retorna el texto de la opción seleccionada, por ejemplo
"Fecha de emisión" si ha seleccionado la tercera opción.
dia.ayuda ("Sigrid/facconta.htm")
Por ejemplo:
var fec0= dia.valor (10) // retorna en fec0 el valor del control identificado por 10
Este método puede también utilizarse para establecer valores en los controles. En
este caso recibe un segundo argumento que especifica el valor que se quiere
establecer.
Los controles se irán añadiendo al diálogo uno debajo del otro, pero este
comportamiento puede modificarse utilizando el método grupo. Para indicar que los
controles se alinearán en horizontal o en vertical se invocará el método grupo, a
continuación se invocarán los métodos de definición de los controles (texto, campo,
opcion,...), y por último se invocará de nuevo el método grupo para indicar la
finalización del mismo. Por ejemplo:
var dia=dialogo
dia.grupo ("V")
dia.grupo ()
dia.grupo ()
dia.grupo ()
Para abrir un grupo de controles se invoca a grupo con uno o dos argumentos, el
primero de ellos será la disposición de los controles del grupo, utilizando V y H para
especificar vertical y horizontal, el segundo argumento es opcional, y se trata de
modificadores de formato para determinar la anchura del borde del grupo y la
distancia desde el borde a los controles (margen interno). El modificador b establece
el tipo y grosor del borde, el modificador m determina el margen interno para que
los controles no queden pegados al borde.
El método grupo puede también ser invocado para crear pestañas en el diálogo,
consultar el epígrafe de referencia del objeto dialogo para conocer más detalles.
formato (numero, [decimales]) - retorna una cadena de texto con el numero incluyendo
separadores de miles y separador decimal si procede. Si se especifica el argumento
decimales, retorna el numero redondeado a ese número de decimales
lencmp (val1, val2, mapa) - Función de comparación entre 2 valores (por ejemplo
notepad (archivo) - ejecuta el bloc de notas de Windows abriendo el archivo que recibe
como argumento. Si el archivo se encuentra en la carpeta de informes no es
necesario especificar el camino completo, en caso contrario tendrá que indicar la
ruta para encontrar el archivo.
rtf2tex (textortf) - traduce el texto que recibe en formato de texto RTF (rich text
format ó formato de texto rico) a texto plano (ASCII) con retornos de carro.
winejecuta (programa, archivo) - abre el archivo que recibe como argumento, con el
programa windows especificado. Tanto el nombre del programa ejecutable como el del
archivo han de especificarse por el nombre completo. Por ejemplo: winejecuta ("c:\
\windows\\notepad.exe", "c:\\temp\\doc1.txt");
writeline (valor) - igual a write solo que además, graba un retorno de carro y nueva
línea al final de cada valor que recibe como argumento.
Cbas ([val | arc]) - Crea un objeto de tipo base, recuperando el objeto ingra
actual, (el archivo de base de datos que se tiene abierto). Sin parámetro, se
refiere a la base actual. Si se especifica un valor val: (0) se crea una instancia
pandibuja ([val]) - Dependiendo del valor del parámetro val, refrescará la ventana
principal con: (5)archivo (4)edición, exclusivo, moneda, calculado (3)camino (2)
lista, padre (1)concepto (0)redibuja
pannuecrea (tip [,cla][,ori] | tab) - Aparece un diálogo de Nuevo concepto del tipo
tip sin especificar clase de concepto, a menos que se indique cla. En vez del Tipo
, se puede especificar una tabla de propiedades
panprovirtual ([tipo], [ide], foco, [crea]) - Igual que la anterior, pero no bloquea
para el ide.
panvenlee (ven) - Abre la ventana ven. Los nombres de ventanas son únicos para
cada una y tienen 3 letras
bajonivel [0|1] - val=1 Pone el modo de grabación desde script a bajo nivel. Es decir,
las grabaciones en base de datos no pasarán bajo ningún control intermedio.
busca (select) - Realiza la búsqueda SQL y devuelve un objeto de tipo registro rec.
busca1 (select) - Realiza una búsqueda SQL que devuelve un sólo valor de
identificador, en vez de un Recordset (rec) que hay que procesar. Útil para utilizar el
identificador devuelto directamente. Devuelve el valor 0 si no encuentra nada.
buscaN (select) - Realiza una búsqueda SQL que devuelve una matriz de valores o
una matriz de matrices. El valor de retorno son N filas y N columnas.
concreasino (tip, cla, cod, res, crea) - Permite crear un concepto nuevo de forma
similar al método creasino genérico para cualquier tabla, con el tipo tip, clase cla, y
código cod especificados. Se puede especificar un resumen res. Si crea=0 sólo busca
sin crear.
conresbusca (tip, cla, res) - Igual que concreasino, pero sólo busca. Devuelve el
identificador del concepto encontrado o 0 si no lo encuentra.
conrescrea (tip, cla, res) - Devuelve el ide de un concepto nuevo creado de tipo tip y
clase cla, con la descripción res.
defecto - Asigna al objeto Cbas, como identificador por defecto el identificador del
edición [0|1] - val=1 Pone el archivo en modo Edición para poder modificar la base
desde un Script. El valor por defecto es 0 (no edición). El atributo también sirve para
preguntar por el estado del archivo (si está en edición o no).
ejecuta (sql) - [XE] Ejecuta cualquier sentencia SQL (insert, update...), EXCEPTO
búsquedas select. Es el método complementario a los busca*.
exporta (arc, [modtra]) - [X] Realiza la exportación en formato estándar INX o BC3, al
archivo arc. Opcionalmente se puede filtrar con el archivo de configuración de
Modos traslada modtra.
gralee (arc, [vin], [cod], [que]) - Busca en la base el archivo gráfico arc, y devuelve su
identificador o 0 si no lo encuentra, con las opciones de: vincularlo o no (por defecto
vin=1), o darle un código cod (sino, se utiliza el nombre de archivo).
gragraba (ide, arc, [res]) - graba en base de datos (tabla gra) el archivo gráfico arc,
relacionándolo con el concepto de identificador ide. La función devuelve 0 si tiene
éxito. Opcionalmente se puede especificar una resolución en res: 0-Diapositiva
(baja), 1-Media resolución (siempre incrustada), 2-Alta resolución (real), 3-Media o
alta, según se trate de . Por defecto res= 2.
importa (arc, [modtra], [pre]) - [XE] Realiza la importación en formato estándar del
archivo arc, de formato INX ó BC3. Sin parámetro, Opcionalmente se puede filtrar
con el archivo de configuración de Modos traslada modtra. Con pre=1, se presenta en
pantalla una traza del proceso de importación.
moneda ([nombre | código]) - Devuelve un objeto de tipo moneda, que por defecto, es
la moneda actualmente seleccionada (monactual) en la ventana principal a través
de la ventana Monedas, y sino, la moneda principal del archivo (definida en la
ventana Parámetros generales-decimales - monbase).
Si se utiliza el parámetro de cadena nombre, con las 3 letras del código internacional
que identifica la monedas (como "EUR"), o el código de la moneda, establece esta
como moneda actual.
Admite 3 métodos:
rotcreasino (tip, cod, res, crea) - Crea si no existe, un rótulo res, del tipo de rótulos tip
(opcionalmente con el código cod, sino, se pone un código autonumerado), en la tabla
de clasificaciones ROT. Si no existe se crea, a menos que crea=0, en cuyo caso sólo
busca, aunque no exista. La función de vuelve el identificador del rótulo creado o
encontrado.
rotresbusca (tip, res) - Busca en la tabla ROT de clasificaciones, dentro del tipo de
rótulo tip, y devuelve el identificador del rótulo res, dentro del tipo tip.
rotrescrea (tip, res) - Análogo a conrescrea, pero para crear rótulos de clasificaciones
en vez de conceptos. Devuelve el identificador del rótulo creado, con el tipo de rótulo
tip y el nombre res (el código es autonumerado).
tabla (num|cod) - Recupera un objeto de tipo tabla tab, por su número num, o por su
código cod
tipcod (tip, [cla], [ambos]) - Código o nombre de tabla virtual del tipo tip, (y
opcionalmente clase cla). Por defecto, cla=0.
tipico (tip, [cla]) - Número del icono (en el archivo \GRÁFICOS\icotip16.bmp) que
tiene asociado el tipo tip. Por defecto, cla=0.
tipnum ([tip]) - Número de tipos de la tabla interna que contiene los Tipos de la
aplicación. Si se especifica un tipo tip, devuelve el número de clases del mismo.
tipres (tip, [cla], [ambos]) - Devuelve el resumen de la tabla Tipos del tipo tip (y clase
cla, en caso de especificarse) seleccionado. Por defecto, cla=0.
tiptab (tip) - Devuelve un objeto tipo tabla de propiedades (tab), con el tipo que se le
da: tip
un identificador ide
Por ejemplo, la tabla con, utiliza en código de un concepto (tip,cla,"cod"), pero la tabla
rcc utiliza dos identificadores (ide1,ide2), y la tabla de rótulos o clasificaciones,
(iderot, cod) donde 'iderot' es un identificador de la tabla de clasificaciones que es
1000*ide_tipo+ide_clase, y 'cod' es una cadena de caracteres
crea (reg) - [E] Devuelve el identificador del registro creado, crea el registro en la
tabla con la que se utilice. Cuidado al crear valores duplicados.
deftab - Para definición de tablas. Crea una tabla con el objeto Cdeftab, que
admite los métodos res, pad, cod, tab, pos, pospad, deftip, bastip, doctip, unico
defcam - Para definición de campos de tabla. Crea campos con Cdefcam, que
admite los métodos res, pad, cod, tip, tam, atr, sel
defind - Para definición de índices de tablas. Crea un índice tabla con el objeto
Cdefind, que admite los métodos cod, cam, tip
campo[f] (num|cod, reg) - Valor del campo especificado mediante su num o cod en
el conjunto reg. Si en vez de campo se utiliza campof, la salida se formatea al
tipo del campo
campo (num|cod) - Devuelve el valor del campo, igual que el de tab, pero sin formato
camtip (num|cod) - Tipo del campo al que se accede mediante su num o su cod
final - Devuelve el valor verdadero (1) cuando llega al final del conjunto (no quedan
registros en el Recordset)
exporta (graide, [res]) - graba en un archivo externo el gráfico graide, con las mismas
opciones de resolución res que en con
gra (graide, [res]) - carga en el objeto imagen, el gráfico con identificador graide, de la
tabla de gráficos (no de la de relaciones entre conceptos y gráficos). Opcionalmente
graba ([arc]) - copia el contenido gráfico del objeto al archivo arc. Si no es especifica
este, lo copia al portapapeles de Windows
lee ([arc]) - lee el contenido del archivo arc al objeto; si no se especifica ninguno, se
lee del portapapeles
bloque (bloide|blocod [, blores]) - mismo funcionamiento que capa, pero para bloques
punlee (pun, escala [, mapide]) - lee toda la información gráfica de las capas activas
que cae dentro del recuadro delimitado por la lista de puntos pun, a la escala
indicada (en función de la escala seleccionada, se mostrarán las capas visibles a
esas escalas). Opcionalmente, si se especifica un identificador de concepto mapa
zomlee (zom [, mapide]) - igual que punlee, pero cargando el rectángulo visible al
zoom actual en la ventana de mapas. Si se especifica un mapa concreto mapide, se
trabaja con este en vez de los datos actuales.
panlee (mapas) -
categorias (array_rot)- inicializa las categorías que van a existir en el gráfico con los
valores array_rot contenidos en una matriz de valores. Estas categorías se mostrarán
en el eje horizontal en los gráficos de tipo 1 y 2, y en la leyenda en los gráficos de
tipo 3. Ejemplo: grf.categorias (["Mano obra", "Maquinaria", "Materiales",
"Subcontrata", "Otros"])
serie (nom, array_val) - define los valores para cada serie de las definidas en
categorías. Cada serie recibe el nombre nom, y los valores incluidos en la matriz
array_val.
colorfondo - color del fondo del gráfico (por defecto es "FFFFFF" es decir, blanco). Este
color afectará únicamente a la zona en la que se dibuja el gráfico, mientras que el
color de fondo para la leyenda, título y resto de los elementos se establece mediante
el modificador del campo en el que se muestra el gráfico.
espacio - define el espacio libre alrededor del gráfico. Si tiene valor cero, los rótulos
de la leyenda, el título del gráfico, los nombres de las categorías y los valores del eje
'Y', quedarán pegados a los ejes del gráfico.
libera - inicializa el objeto gráfico estadístico poniendo en blanco todos sus datos de
categorías, serie, color, leyenda... de forma que se puede utilizar otra vez el mismo
objeto en memoria asignándole distintos datos.
Chor (h, m, s, 1) - constructor de un objeto de tipo tiehor (hora). Cada uno de los tres
valores puede ser entero o real, positivo o negativo;
hors, mins, segs - cada uno devuelve un número con las horas, minutos y segundos
de un objeto de tipo hora.
ponhora (hora) - asignándole un valor entero hora, establece sobre el mismo objeto
tiehor la hora, minuto y segundo de hora, manteniendo el formato que tenía (hora o
intervalo). Ejemplo: si h1 es de tipo hora 00:00:00, h1.ponhora=271345 daría como
resultado 3:13:45
doble -
suma (hor) -
resta -
suma2h -
resta2h -
divide2h -
multiplica2h -
El ancho relativo del campo hay que especificarlo teniendo en cuenta que el método
campo siempre asigna un 10 al ancho de la etiqueta. Si se especifica 10 para el
tercer parámetro, el ancho del campo de edición corresponderá a la mitad del ancho
de la ventana del formulario, asignando la otra mitad a la etiqueta. Si el argumento
es 5 el ancho se repartirá como sigue 10 para la etiqueta + 5 para el campo de
edición = 15, asignando 1/3 (5/15) del ancho de la ventana al campo de edición y
2/3 (10/15) a la etiqueta.
dia.campoM (id[, texto][, ancho][, alto])- Crea un campo de edición de texto multilínea,
con una barra de desplazamiento vertical. Recibe: obligatoriamente un identificador,
opcionalmente una cadena de texto para la etiqueta del control, y opcionalmente
también un número que determina el ancho del campo (por defecto es 10), por
último, y opcionalmente, recibe el número de líneas o altura del control (por defecto
son 4).
Cada pestaña se iniciará invocando de nuevo el método grupo, que tiene que tener
como primer argumento una cadena vacía, y como segundo argumento una cadena
con cuatro elementos separados por coma como sigue: "mc1,'Primera pestaña',-1 -1",
en donde Primera pestaña se reemplazará por la etiqueta de la pestaña.
Si la cadena de texto etiquetas contiene el carácter punto y coma (;), creará un grupo
de opciones de botones de radio, tomando como etiqueta de cada botón el texto
comprendido hasta el carácter punto y coma.
dia.opcionL (id, eti, opciones, [, ancho]) - Añade una caja combinada, el primer
argumento es un número entero identificador del control, el segundo es una
etiqueta que aparecerá a la derecha del control, el tercero es una cadena de texto
conteniendo las opciones que aparecerán en la lista separadas por punto y coma (;),
el cuarto argumento, opcional, es un entero para indicar el ancho relativo del
control, tal como se indica en el método campo. Al aplicar el método valor sobre este
control, retornará el texto de la opción seleccionada.
cn: color, 0 negro, de 1 a 5 serán los colores seleccionados para los tipos de letra
en las opciones del programa, 1 color de la letra pequeña, 2 mediana, etc.
en: exacto, 0 no, 1 sí. En el segundo caso el ancho del campo corresponderá al
ancho de la cadena de texto que contiene.
dia.valor (ide[, valor]) - Retorna o establece los valores de los controles del diálogo.
Cuando recibe un único argumento retorna el valor almacenado en el control cuyo
identificador recibe como argumento. Si el control es un campo de texto retornará la
cadena contenida en el control, si es una casilla de verificación retornará verdadero
o falso dependiendo de que la casilla esté activada o no, si se trata de un grupo de
opciones retorna un número indicativo de la opción seleccionada comenzando por
cero, si es una caja combinada retorna el texto de la opción seleccionada.
Métodos de ingra
coeci - Valor del coeficiente de costes indirectos definido en la ventana Parámetros
generales
moneda - Devuelve el índice de la moneda actual del archivo (monactual si hay una
seleccionada en ventana principal, y sino, monbase)
fase=fas - Asigna como fase actual para cálculos e impresión de datos, la fase
número fas
fasact ([fas]) - Obtiene la fase actual o, si se especifica, pone como actual la fase fas
faselimina (fas) -
fasrecrea (fas) -
ambelimina (amb) -
cancalcula (par) -
mediciones (rel, [for], [ref]) - Como la anterior, ofrece una estructura de datos con
las mediciones desglosadas correspondientes a una relación rel. La salida puede
estar formateada con for.
El contenido de cada matriz (línea de medición de una lista) son todos los datos de la
ventana mediciones: [0]Tipo de medición, [1]Comentario, [2]Nº Unidades, [3]Largo,
[4]Ancho, [5]Alto, [6]Subtotal línea y [7]Total acumulado de las líneas anteriores (muy
útil para suma_y_sigue).
texrefsincolgar () - ?
Métodos de Cdoccan
Todas las funciones que admiten como parámetro un identificador de concepto ide,
ofrecen el dato correspondiente a ese concepto
num -
can (ide) - Este, y todos los que reciben como parámetro un identificador, para
acceso por identificador. Cantidad en la fase
idei - ?
tipi - ?
cani - ?
acui - ?
Propiedades
Métodos
Modificadores de formato
rgb - Los colores se representan en formato RGB (es decir, con componentes
red,green,blue) con la notación 12:3:100 inedo 3 valores de 0 a 255. Cuando se
pone un único valor, se suponen los 3 iguales y consiste en una gama de
grises.
Dentro de los objetos y métodos básicos del objeto ingra, encontramos el objeto
impresor, cuya definición tiene el formato:
Objetos
subtabla - es un objeto tiene las mismas propiedades y métodos que impresor,
siendo a su vez el objeto subtabla uno de sus miembros. Permite definir subtablas
Por ejemplo:
sub.linea();
mostrará dentro de la tabla donde se defina la variable "sub", un campo que se divide
en una subtabla de dos columnas iguales, con borde y un fondo de color verde.
Propiedades
col - Almacena la columna (definida en el objeto impresor), dentro del informe en la
que se mostró la última línea al invocar el método linea. Si el número de columnas
del informe es superior a 1, la propiedad tendrá inicialmente el valor 1, y se
incrementará de uno en uno al mostrar la primera línea de las sucesivas columnas
del informe.
pag - Almacena el número de página actual. Por ejemplo, para mostrar el número de
página en el informe:
Métodos
campo ([dato[, modificadores]]) - Añade un campo a la lista de campos a imprimir en
una linea. Este es el método por defecto del objeto impresor, por lo que no es
necesario incluir la palabra campo para invocarlo. El argumento dato puede ser: una
cadena de texto, o un número, o una expresión que pueda evaluarse a una cadena
de texto o a un número, o un objeto subtabla. El argumento mod es una cadena de
texto conteniendo modificadores de formato del campo, estos modificadores
determinarán el aspecto que tendrá el campo. Si no recibe ningún argumento,
añadirá un campo vacío.
hor ([x1][, x2]{, x} [,modificadores]) - Muestra una línea horizontal desde el punto x1 al
punto x2 expresados en milímetros desde el margen izquierdo de la página, a una
distancia y en milímetros desde el margen superior de la página. si a la cadena se
añaden más posiciones (x), la raya se traza entre todas ellas. Opcionalmente puede
recibir una cadena de modificadores. Si no recibe ningún argumento muestra una
línea horizontal ocupando el ancho de página disponible. Vea también el método ver.
ver ([y1][, y2]{, y} [,modificadores]) - Exactamente igual que hor, pero para líneas
verticales.
Los métodos del objeto impresor reciben como último argumento una cadena de
texto, que contiene códigos que se interpretan como modificadores de la forma en
que se muestran los datos. Estos códigos se conocen como modificadores de formato.
(+ importante) campo -> línea -> columna -> tabla -> global (- importante)
bn - Borde del campo: b0- sin borde; b1- borde continuo; b2- borde de puntos; b3- borde
de rayas.
bi, bd, bs, bn - Borde izquierdo, borde derecho, borde superior, borde inferior.
d - Falta
ein, edn, esn, enn - Margen externo en milímetros: izquierdo, derecho, superior,
inferior.
ln - Letra Negrita.
lc - Letra Cursiva.
ls - Letra Subrayada.
lt - Letra Tachada.
lf - Letra de paso fijo, cada carácter ocupa el mismo espacio horizontal, por ejemplo
la letra Courier. (1) es el valor por defecto para estos últimos: activa el modificador.
También se puede desactivar (0), si está activado por otro ámbito de menos
importancia
lan - Angulo de giro del texto. Por ejemplo la45, texto girado 45º.
l#rgb - Color del texto. Por ejemplo l#CE40A7 para que la letra sea fucsia.
lrcar - Rellena el espacio libre del campo con el carácter ASCII car. Por ejemplo: imp
("campo 1", "lr."), mostrará en el campo correspondiente: "campo 1..........", rellenando
con puntos (.) el espacio disponible a la derecha.
ljn - Texto justificado: lj0- no justifica; lj1- justificado; lj2- justificado incluso en la
última línea.
lgn - Guionado del texto: lg0- no guionado; lg1- guionado normal; lg2- si el texto no
cabe en el espacio horizontal del campo, lo recorta mostrando tres puntos (...).
min, mdn, msn, mnn - Margen interno en milímetros: izquierdo, derecho, superior,
inferior.
rin, rdn, rsn, rnn - Estilo de la raya de borde de párrafo: (0) no, (1) sólida, (2) puntos,
(3) rayas
rp - Falta
En el tema Extensión COM: objetos y métodos para acceso a datos se detallan los
métodos y propiedades disponibles.
Las extensiones básicas son suministradas a través del objeto que representa la
aplicación, sus métodos y propiedades están disponibles para los programas .xjs sin
tener que crear o referenciar dicho objeto. Permiten mostrar diálogos en pantalla,
recuperar la fecha del sistema, dar formato a fechas y números, ejecutar otras
aplicaciones, incluir en el programa actual otros programas .xjs, abrir un diálogo para
depuración del programa, etc.
Las siguientes sentencias son una muestra de la funcionalidad suministrada por las
extensiones básicas, puede señalar el texto arrastrando con el cursor y pegarlo en un
programa en blanco de prueba, dentro de la ventana informes y procedimientos:
// Diálogo de aviso
// Diálogo de edición
if (txt == null)
writeline ("Hoy es " + fecdianombre (hoy) + " " + fecdia (hoy) + " de " + fecha (hoy,
"mmmm") + " de " + fecano (hoy));
writeline ("El número 123456.678 redondeado por el método red con 2 decimales
resulta: " + red (123456.678,2));
writeline ("El número 123456.678 es interpretado por el método letra como " +
letra (123456.678));
En una función o bucle imprimo líneas, y una o varias de las últimas no aparecen
en la página ¿porque?
Al imprimir un informe no he definido ningún objeto tabla, y aún así, aparecen los
datos en 3 columnas ¿porqué?
él incluso si no está en modo edición (aunque para ello, naturalmente el usuario con el
que se abre la base de datos tiene que tener permiso para ejecutar código JavaScript y
editar la base).
Ejemplo:
{ ... }
Para hacer una prueba de conexión, con la aplicación decodata, basta con ejecutar el
siguiente código en un archivo con extensión .JS:
Los usuarios finales confiarán más en los productos acreditados con el logotipo FIE-
BDC por tener mayor seguridad a la hora de utilizar todas las posibilidades de
intercambio de datos que se ofrecen en los productos existentes en el mercado.
Velázquez, 124, 4º
28006 Madrid
Fax: 91 604 11 60
DE LA COMUNIDAD DE MADRID.
ARAGÓN.
ATAYO.
EDETCO.
CONSTRUCCIÓN DE SEVILLA.
de presupuestos
AM2.
ARKTEC.
EPROS.
FHECOR.
MICROGESA.
PROFESSIONAL SOFTWARE.
SOFT.
TOOL.
VECTOR-3.
Este formato pretende abarcar toda la información contenida en las actuales bases de
datos de la construcción. No todos los desarrolladores de bases de datos necesitarán
utilizar todas las posibilidades del formato; así como tampoco todos los programas de
mediciones y presupuestos harán uso de toda la información suministrada.
Las máscaras de la ventana Parámetros generales, deben ser exactamente las que
corresponden a la codificación de la Base de Datos, por varios motivos:
Las cuatro primeras máscaras identifican los iconos que se van a asociar en el
campo info. Para que no haya inconsistencias entre distintas bases de datos, deben
ser las correctas y tenerse en cuenta que la máscara de Auxiliares no es estándar
FIEBDC-3.
En los modos de traslado para Exportación, ventana Modos traslada, debe examinarse
que todas las opciones seleccionadas coinciden con la información que queremos
exportar, aunque por defecto se seleccionan todas las habituales.
Consejos de chequeo:
1. Buscar conceptos sin padre (en general sólo deberían aparecer dos: el raíz (.) y
la propia búsqueda (..) aunque en algunos casos la base puede estar
organizada mediante carpetas de Clase búsqueda y tener conceptos
descolgados). Se puede realizar la búsqueda en la ventana Búsqueda general,
en la que viene predefinida esa búsqueda, ya que es bastante habitual.
where con.res=""
order by cod
Si deseamos saber el total de páginas real, para imprimir el libro de la base de datos,
poner en el campo Primera página a imprimir de la ventana informes y
procedimientos, un número bastante mayor que las páginas posibles, por ejemplo
50000. Después de terminado el informe, se nos muestra un diálogo con el resultado.
arriba).
de la descomposición paramétrica.
% : 1
se puede interpretar como 1 por ciento ó medición 1 (la unidad), es decir 100 por
ciento.
~?D | PADRE \ HIJO \ POSICIÓN \ PRE \ INI \ FIN \ DUR \ FCT \ FNL \ |
(descomposición)
%F %G %H %I
Parámetros seleccionados del concepto, ampliando estas y las otras cuatro, con los
valores a-z, A-Z, y 0-9, sin la ñ ni la Ñ (equivalente a 1-62).
%S %T %U %V
$F $G $H $I y $S $T $U $V
IM PORTANTE : Para ver los cambios más importantes entre la última especificación
FIE y la anterior, consulte el tema de novedades.
INDICE:
0. ESPECIFICACIÓN del Formato.
20. Anexo 1. Cambios respecto a versiones anteriores: 3/2004, 3/2002, 3/98 y 3/95.
ARBDC.
PRESENTACIÓN
Para facilitar su lectura, aparece en el lado derecho del texto una línea vertical en
aquellos párrafos nuevos o modificados respecto a la especificación FIEBDC-3/2004.
Este formato pretende abarcar toda la INFORMACION contenida en las actuales bases
de datos de CONSTRUCCIÓN. No todos los desarrolladores de bases de datos
necesitarán utilizar todas las posibilidades del formato; así como tampoco todos los
programas de mediciones y presupuestos harán uso de toda la INFORMACION
suministrada.
El juego de caracteres a emplear en los campos CÓDIGO será el definido por MS-DOS
6.0, incluyendo A-Z, a-z, 0-9, ñ, Ñ,< . > (ASCII-46), < $ > (ASCII-36), < # > (ASCII-35), <
%> (ASCII-37), < & > (ASCII-38), < _ > (ASCII-95). Excluyendo cualquier otro carácter
como espacio, tabulador, etc.
El fin de línea será el ESTÁNDAR de los archivos MS-DOS (ASCII-13 y ASCII-10). El fin
de archivo se marcará según el mismo ESTÁNDAR (ASCII-26). El único carácter de
control adicional que se permitirá será el tabulador (ASCII-9).
Cada registro estará compuesto de campos separados por caracteres < | > (ASCII-
124). Todo campo con INFORMACION tendrá que finalizar con el separador de campos
y el registro deberá contener todos los separadores de campos anteriores, aunque no
contengan INFORMACION. No es necesario disponer de finalizadores de los campos
posteriores al último con INFORMACION.
Cada campo estará compuesto de subcampos separados por caracteres < \ > (ASCII-
92). El separador final, entre el último dato de un campo y el fin de campo es opcional.
El primer campo de cada registro es la cabecera de registro, una letra mayúscula que
identifica el tipo de registro.
Se ignorarán los caracteres blancos (32), tabuladores (9) y de fin de línea (13 y 10),
delante de los separadores < ~ >, < | > y < \ >.
CONVENIOS DE NOTACIÓN
Todos los valores numéricos irán sin separadores de miles y con el carácter punto '.'
entre la parte entera y la decimal.
Ejemplos:
12062000 12 de junio de 2000
120699 12 de junio de 1999
00061281 junio de 1281
061281 6 de diciembre de 1981
401 abril de 2001
2 Presupuesto.
3 Certificación (a origen).
~K | { DN \ DD \ DS \ DR \ DI \ DP \ DC \ DM \ DIVISA \ } | CI \ GG \ BI \ BAJA \
IVA | { DRC \ DC \ \ DFS \ DRS \ \ DUO \ DI \ DES \ DN \ DD \ DS \DSP\
DEC \DIVISA \ } | [ n ] |
Este registro incluye el campo 1 por compatibilidad con versiones anteriores del
formato, aunque los programas deben leer el campo 3 por ser más completo y en su
defecto el campo 1.
Definiciones
DN: Decimales del campo número de partes iguales de la hoja de mediciones. Por
defecto 2 decimales.
decimales.
decimales.
DP: Decimales del importe resultante del sumatorio de los costes directos del
DC: Decimales del importe total del concepto. (CD+CI). Por defecto 2 decimales
utilizadas por el BCE (Banco Central Europeo), que en su caso deberán coincidir con
porcentaje.
DUO: Decimales del coste total de las unidades de obra. Por defecto 2 decimales.
totales de los elementos compuestos y/o elementos simples por sus respectivos
precios, decimales del importe resultante del sumatorio de los costes directos de la
DES: Decimales del importe de los elementos simples. Por defecto 2 decimales.
DN: Decimales del campo número de partes iguales de la hoja de mediciones. Por
defecto 2 decimales.
utilizadas por el BCE (Banco Central Europeo), que en su caso deberán coincidir con
~K | { DN \ DD \ DS \ DR \ DI \ DP \ DC \ DM \ DIVISA \ } | CI \ GG \ BI \ BAJA \
IVA | { DRC \ DC \ DFS \ DRS \ DUO \ DI \ DES \ DN \ DD \ DS \ DSP \ DEC \eur \
DRC \ DC \ DFS \ DRS \ DUO \ DI \ DES \ DN \ DD \ DS \ DSP \ DEC \ eur \
DRC \ DC \ DFS \ DRS \ DUO \ DI \ DES \ DN \ DD \ DS \ DSP \ DEC \ usd \ } [ n ]
|
Esquema aclaratorio:
Concepto Importe
unitario
Capítulo(#) DC(2)*
obra
compuesto
simple
indirecto
compuesto
simple
medición
Se ha añadido los decimales que se ponen por defecto según el formato después de
cada termino
Para distinguir el concepto tipo raíz de un archivo, así como los conceptos tipo
capítulo, se ampliará su CÓDIGO con los caracteres '##' y '#' respectivamente;
quedando dicha NOTACIÓN reflejada obligatoriamente en el registro tipo ~C ,siendo
opcional en los restantes registros del mismo concepto.
Las referencias a un CÓDIGO con y sin # y/o ##, se entienden únicas a un mismo
concepto.
PRECIO: Precio del concepto. Un concepto puede tener varios precios alternativos que
representen distintas épocas, ámbitos geográficos, etc., definidos biunívocamente
respecto al campo [CABECERA \ {RÓTULO_IDENTIFICACION\} del registro ~V. Cuando
haya más de un precio se asignarán secuencialmente a cada RÓTULO definido; si
hay más ROTULOS que precios, se asignará a aquellos el último precio definido. En el
caso que el concepto posea descomposición, este precio será el resultado de dicha
descomposición y se proporcionará, de forma obligatoria, para permitir su
comprobación. En caso de discrepancia, tendrá preponderancia el resultado obtenido
por la descomposición, tal como se indica en el registro Tipo Descomposición, ~D, y
complementariamente se podría informar al usuario de dicha situación. Esto se
aplica también a los conceptos tipo capítulo y concepto raíz de una Obra o
Presupuesto. Como excepción a esta regla está el intercambio de mediciones no
estructuradas (véase la descripción del registro Tipo Mediciones, ~M).
FECHA: Fecha de la última actualización del precio. Cuando haya más de una fecha
se asignarán secuencialmente a cada precio definido, si hay más precios que fechas,
los precios sin su correspondiente fecha tomarán la última fecha definida.
1. Prefijo, que forma una máscara indicando sobre qué elementos se aplica el
porcentaje. Si el prefijo es nulo, el porcentaje se aplica a todas las líneas
anteriores.
Ejemplo: OP%N0001
OP: Sobre todas la líneas anteriores cuyo código comience por OP.
%: Porcentaje no acumulable
Esta línea representa un porcentaje del 0.03 por uno (3%) de todas las líneas
anteriores a la actual, incluso porcentajes, cuyo código comience por O y cuyo texto
estará en la definición del código 'O%N0001'.
~T | CÓDIGO_CONCEPTO | TEXTO_DESCRIPTIVO |
~P | | [ DESCRIPCION_PARAMETRICA ] | [ NOMBRE.DLL ] |
~P | CÓDIGO_FAMILIA | [ DESCRIPCION_PARAMETRICA ] |
Este registro contiene las diferentes secciones y textos del pliego de condiciones de
un concepto. El pliego de condiciones se estructura de forma jerárquica con el
Sistema de Clasificación por Codificación y de forma facetada en varias secciones de
distinto contenido.
CÓDIGO_SECCION_ PLIEGO: CÓDIGO que define cada SECCION o faceta del pliego.
\COM\ COMPONENTES
\NOR\ NORMATIVA
\MAN\ MANTENIMIENTO
\VAR\ VARIOS \ |
~L | CÓDIGO_CONCEPTO | { CÓDIGO_SECCION_PLIEGO \
TEXTO_SECCION_PLIEGO \ } |
{ CÓDIGO_SECCION_PLIEGO \ ARCHIVO_TEXTO_RTF \ } |
{ CÓDIGO_SECCION_PLIEGO \ ARCHIVO_TEXTO_HTM \ } |
El pliego de condiciones de cada concepto estará dividido con caracteres '\' en varias
secciones o facetas, pensadas para imprimirse juntas o por separado.
Los fines de línea de cada SECCION del pliego se tratarán como en el REGISTRO
TIPO TEXTO.
D delegación.
R representante.
FAX: Números de fax de la entidad, con las mismas especificaciones que el campo
anterior.
Así una Base de Datos ( BD ) podrá contener CONCEPTOS genéricos de una BDG,
CONCEPTOS referentes a productos comerciales de una BDE, o ambas a la vez.
Estos datos podrían emplearse en otras utilidades, como el cálculo de los coeficientes
de transmisión térmica, aislamiento acústico, etc.
UM: En el caso que los valores de la INFORMACION Técnica sean valores numéricos,
se indicará su Unidad de Medida, de acuerdo con el Sistema Internacional de
Unidades de Medida.
TIPO: Indica el tipo de línea de medición de que se trate. Usualmente este subcampo
estará vacío. Los tipos establecidos en esta VERSION son:
Subtotal parcial: En esta línea aparecerá el subtotal de las líneas anteriores desde
el último subtotal hasta la línea inmediatamente anterior a ésta.
Igual que el registro tipo ~M pero añade las líneas de medición de este registro a las
ya existentes en vez de sustituir toda la medición como hace en aquel.
~B | CÓDIGO_CONCEPTO | CÓDIGO_NUEVO |
donde:
4- normativa y bibliografía
5- tarifa de precios
6- condiciones de venta
7- carta de colores
Además de las extensiones permitidas en los registros ~G, ~L y ~J, se añaden los
siguientes usando como referencia programas estandarizados de uso general, para
chequear y verificar el contenido del fichero:
Extensión .PDF: Acrobat Reader v.5
~K | { DN \ DD \ DS \ DR \ DI \ DP \ DC \ DM \ DIVISA \ } | [ [CI] \
{ FECHA \ } | [ TIPO ] |
~T | CÓDIGO_CONCEPTO | TEXTO_DESCRIPTIVO |
~P | | [ DESCRIPCION_PARAMETRICA ] | [ NOMBRE.DLL ] |
~P | CÓDIGO_FAMILIA | [ DESCRIPCION_PARAMETRICA ] |
~L | CÓDIGO_CONCEPTO | { CÓDIGO_SECCION_PLIEGO \
TEXTO_SECCION_PLIEGO \ } |
{ CÓDIGO_SECCION_PLIEGO \ ARCHIVO_TEXTO_RTF \ } |
{ CÓDIGO_SECCION_PLIEGO \ ARCHIVO_TEXTO_HTM \ } |
CÓDIGO_PARRAFO \ { ABREV_AMBITO; } \ } |
~J | CÓDIGO_PARRAFO | [ TEXTO_PARRAFO ] | |
[ ARCHIVO_PARRAFO_RTF ] | [ ARCHIVO_PARRAFO_HTM ] |
| [ETIQUETA] |
ALTURA \ } | [ETIQUETA] |
~B | CÓDIGO_CONCEPTO | CÓDIGO_NUEVO |
[ DESCRIPCION_ARCHIVO ] \ }|
rendimiento.
opcionales: V, D, Y, T, L, Q, W, G, O, X, A y B.
códigos de los conceptos: “incluyendo A-Z, a-z, 0-9, ñ, Ñ,” … “Excluyendo cualquier otro
-K Registro tipo COEFICIENTES: Se suprimen los campos DRO Y DFO. Se añaden los
Anexo 4: Aclaración sobre que el tipo Presupuesto Unitario no debe usar la # del tipo
capítulo.
DESCOMPOSICIÓN.
PARAMETRICA.
Conceptos
Cualquier variable de la 'A' a la 'Z' tanto numérica (%) como alfanumérica ($) se
puede definir o redefinir con cualquier número de dimensiones para ser utilizada
posteriormente en expresiones.
Se definen las constantes de la 'a' a la 'z' con los valores numéricos del 1 al 26
respectivamente, para permitir referenciar los parámetros de forma nemotécnica.
Para la utilización de otro tipo de caracteres, se determinará en el texto de la opción
del parámetro seleccionado el carácter de sustitución que se desea utilizar,
anteponiéndole un carácter especial ' ! ' .Si dicho carácter no existe la sustitución se
realiza relacionando el carácter con la posición que ocupa.
Las variables numéricas deben permitir valores reales en coma flotante de doble
precisión (64bits) y las variables alfanuméricas deben poder almacenar textos de
cualquier tamaño.
Las variables %E y $E son especiales para devolver errores producidos por selecciones
SENTENCIA DE COMENTARIO:
SENTENCIA DE SUSTITUCION:
\ RESUMEN \ ó \ R \ <texto de sustitución del texto resumido> \
<expresión_numérica>\}
Acaba en un operador
<expresión numérica>:
<expresión alfanumérica>:
<expresiones lógicas>:
$I = "blanco"*(%C=c) + "negro"*(%C=d)
<texto de sustitución>:
Variables predefinidas:
[%$][ABCD] Parámetros del concepto
, Separador de datos
: DEFINICIÓN de rendimiento
:: DEFINICIÓN de precio
- Resta
* Multiplicación
/ División
^ Operador elevado a
< Menor
> Mayor
= Igual
<> Diferente
! Operador lógico NO
Si una línea acaba sin haber cerrado las comillas '"' o delimitador '\', se considerará
que sigue en la línea siguiente. Los caracteres fin de línea (ASCII-13 + ASCII-10)
contenidos en las descripciones paramétricas se mantendrán al reformatear.
Cada vez que el operador define un parámetro, el sistema evaluará todas las
Si todos los parámetros menos uno son conocidos, se irá dando valores al parámetro
desconocido y evaluando la expresión hasta recorrer todos los valores válidos del
parámetro. De alguna forma, el sistema "marcará" los valores que producen ERROR
del parámetro estudiado en la pantalla de selección, para ayudar al operador a
seleccionar las combinaciones correctas.
Cada vez que se defina o redefina un parámetro el sistema actualizará todos los
valores marcados en pantalla, por ejemplo pondrá en "medio brillo" los ROTULOs de
las opciones cuya selección no sería compatible con los parámetros seleccionados
previamente.
exclusive.
2. Cambiar tabuladores (9) por caracteres ' ' (32)
3. Eliminar caracteres ' ' (32) delante y detrás de los caracteres '\'
4. Unir líneas, eliminando el fin de línea, en líneas que comienzan con '\' y
delimitadas (\...\)
6. Eliminar líneas vacías.
Si la sentencia comienza con '\' leer el RÓTULO hasta el siguiente '\', si el RÓTULO
es:
Si la sentencia comienza con '::' el resto de la misma debe ser una expresión
numérica indicadora del Precio, sólo en familias de conceptos simples (sin
descomposición) y sólo puede haber una sentencia de este tipo.
Si la sentencia comienza con '%:' el resto de la misma debe ser una expresión
numérica indicadora del Porcentaje de Medios Auxiliares, sólo puede haber una
sentencia de este tipo.
[ :: expresión_precio (13)(10) ]
Es decir; es posible construir una base de datos que cumpla este API utilizando para
ello cualquier lenguaje de programación que permita desarrollar librerías de enlace
dinámico Windows (DLL). Asimismo, es posible construir un programa que lea
cualquier base de datos de estas características utilizando lenguajes de aplicaciones
para Windows.
El juego de caracteres utilizado en los textos devueltos por las funciones del API será
el especificado en el registro ‘~V’.
base.dll En este archivo, único para cada base de datos y de nombre cualquiera
pero extensión ‘.DLL’, se encuentran las funciones del API que la base de datos
ofrece a las aplicaciones para que éstas obtengan la INFORMACION que contiene la
base.
~P|ABCD12$| |
~P| | | BASE.DLL |
Para que los programas puedan determinar si una base de datos responde a uno u
otro modelo, se ha definido la función BdcCodificacion(), que se especifica más
adelante y que indica si el sistema de codificación usado en la base de datos es
dependiente o independiente.
VOID
);
Propósito
Valor devuelto
VOID
);
Propósito
Valor devuelto
Devolverá ‘1’ si está implementado el modelo uno de textos de pliegos. Es este caso,
se utilizará la función BdcPliego() para obtener los textos de los pliegos.
Devolverá ‘2’ si está implementado el modelo dos de textos de pliegos. En este caso,
se utilizarán las funciones BdcCodigoParrafo() y BdcTextoParrafo() para obtener los
textos de los pliegos.
Devolverá ‘3’ si están implementados tanto el modelo uno como el modelo dos.
VOID
Propósito
Valor devuelto
VOID
);
Propósito
Valor devuelto
);
Propósito
Parámetros
par: Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo
‘n’ el número de parámetros del concepto paramétrico global.
Valor devuelto
);
Propósito
Parámetros
par: Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo
‘n’ el número de parámetros del concepto paramétrico global.
Valor devuelto
);
Propósito
Obtiene el rótulo que identifica la opción ‘opc’ del parámetro ‘par’ del
concepto.
Parámetros
par: Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo
‘n’ el número de parámetros del concepto paramétrico global.
opc: Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo ‘n’
el número de opciones que posee el parámetro ‘par’ del concepto
paramétrico global.
Valor devuelto
Devuelve el rótulo que identifica la opción ‘opc’ del parámetro ‘par’ del
concepto, como puntero constante ‘far’ a una cadena de caracteres. La
propia función es responsable de asignar memoria al puntero. En caso de
error, la función devuelve NULL. Para obtener más INFORMACION sobre
el error producido, llame a la función BdcGloError().
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
opcl: Puntero a un vector (array) de LONGs con las opciones que se desea
fijar a cada parámetro. Las opciones se numeran empezando por
cero.
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
Propósito
Parámetros
Valor devuelto
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
par: Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo
‘n’ el número de parámetros del concepto.
);
Propósito
Parámetros
par: Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo
‘n’ el número de parámetros del concepto.
Valor devuelto
);
Propósito
Obtiene rótulo que identifica la opción ‘opc’ del parámetro ‘par’ del
concepto.
Parámetros
par: Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo
‘n’ el número de parámetros del concepto.
Valor devuelto
Devuelve el rótulo que identifica la opción ‘opc’ del parámetro ‘par’ del
concepto, como puntero constante ‘far’ a una cadena de caracteres. La
propia función es responsable de asignar memoria al puntero. En caso de
error, la función devuelve NULL. Para obtener más INFORMACION sobre
el error producido, llame a la función BdcError(). En caso de referirse a
ámbitos territoriales y a divisas, véanse los anexos 5 y 6.
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
opcl: Puntero a un vector (array) de LONGs con las opciones que se desea
fijar a cada parámetro. Las opciones se numeran empezando por
cero.
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
Ordenación
Ejemplo
);
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
);
Propósito
Parámetros
);
Propósito
Parámetros
sección: Puede tomar como valor el código de la sección del pliego cuyo
texto se desea obtener, en cuyo caso deberá ser una de las
secciones especificadas en el registro ~L, según se indica en el
apartado ‘REGISTROS TIPO PLIEGOS’ de la especificaciones del
formato. Si no existen secciones definidas, el valor de este
parámetro no es utilizado. Si por el contrario toma el valor NULL,
la función devolverá los códigos de las secciones del pliego para
los que el concepto posea texto del pliego, separados por el
separador de subcampos ('\').
ámbito: Ámbito del cual se desea obtener el texto del pliego. Corresponde
a uno de los campos ‘ABREV_AMBITO’ especificados en el registro
~W, según se indica en el apartado ‘REGISTRO TIPO ÁMBITO
GEOGRÁFICO’ de las especificaciones del formato. Si no existen
ámbitos definidos (no existe un registro ~W), el valor de este
parámetro es ignorado. En ese caso, es posible que el ámbito sea
un parámetro global de la base.
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
Devuelve un texto con los códigos de párrafo del pliego del derivado
paramétrico, como puntero constante ‘far’ a una cadena de caracteres.
La propia función es responsable de asignar memoria al puntero. Si no
existe definido ningún código de párrafo, la función devuelve la cadena
vacía “”. En caso de error (por ejemplo ámbito no soportado por la BDC), la
función devuelve NULL. Para obtener más INFORMACION sobre el error
{ CÓDIGO_PARRAFO \ }
);
Propósito
Parámetros
cod_parrafo Código del párrafo del pliego cuyo texto se desea obtener.
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
Devuelve el tipo del concepto, como puntero constante 'far' a una cadena
de caracteres. Si se ha calculado un derivado paramétrico (se ha llamado
a la función BdcCalcula) este tipo será el del derivado paramétrico. En
caso contrario, será el tipo del concepto paramétrico. La propia función
es responsable de asignar memoria al puntero. En caso de error, la
función devuelve NULL. Para obtener más INFORMACION sobre el error
producido, llame a la función BdcError(). Corresponde al campo TIPO del
registro ~C.
);
Propósito
Valor devuelto
// la información a devolver
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
4. M ENSAJES DE ERROR
...
parámetro inexistente.
opción inexistente.
determinado parámetro.
BdcLee().
descomposición inexistente.
incorrecto”
EJEM PLOS
El ejemplo construido posee las siguientes características (no todas las bases que se
realicen conforme a este formato deben tener estas mismas características):
7. Los textos de los pliegos sólo están definidos en formato ASCII y para los
derivados paramétricos. No están divididos ni en secciones (facetas) ni en
ámbitos.
Para distribuir la base datos que se construyera con este ejemplo, se deberían
proporcionar los siguientes archivos:
~P| | | BASE.DLL |
~P| SBRG.1$ | |
~P| EADR.3$ | |
~P| Esp$ | |
Este ejemplo está preparado para compilarse con Microsoft Visual C++ VERSION
2.2 o posterior como DLL de 32 bits. Sin apenas modificaciones, sería posible
compilarlo como DLL de 16 bits o utilizar el compilador Borland C++.
Esta sencilla aplicación, lee los conceptos que se incluyen en el propio fuente de la
base BASE.DLL (en una aplicación real, los conceptos se definen en los registros ~P
de base.bc3), y escribe en el archivo 'SALIDA.TXT' los rótulos de todos sus
parámetros así como todos los datos de todas sus combinaciones paramétricas.
Los fuentes son fácilmente modificables para poder probar con el programa cualquier
base de datos que utilice paramétricos compilados en DLL de acuerdo con el API
establecido en este documento.
Este ejemplo está preparado para compilarse con Microsoft Visual C++ VERSION
2.2 o posterior como aplicación Windows 95 de 32 bits en modo consola. Sin
apenas modificaciones, sería posible compilarlo como aplicación de 16 bits o
utilizar el compilador Borland C++.
-1 Mano de obra
-2 Maquinaria
-3 Materiales
Esta clasificación proviene del BOE (Boletín Oficial del Estado: www.boe.es) y de la
CNC (Confederación Nacional de la Construcción: www.cnc.es), que la utilizan para
fijar los índices de variación de precios mediante sus respectivas fórmulas
polinómicas.
-H Mano de obra
- MC Cemento
- MCr Cerámicas
- MM Maderas
- MS Siderúrgicos
- ME Energía
- MCu Cobre
- Mal Aluminio
- ML Ligantes
-Q Maquinaria
-% Medios auxiliares
donde,
- H, se refiere al tipo 1 actual.
- MC, MCr, MM, MS, ME, MCu, Mal, ML y M, se refieren al tipo 3 actual. Dicha
de las obras oficiales, a los que se añade el tipo M para aquellos materiales que no se
- %, se refiere a un nuevo tipo que se corresponde con los medios auxiliares que
- EU Elemento unitario
- EC Elemento complejo
- EF Elemento funcional
- OB Obra
- PA Partida Alzada
- PU Presupuesto Unitario
donde,
Ejemplo: Partida alzada a justificar del 1% del PEM, para gastos de acción cultural.
E España
CO Córdoba
H Huelva
CA Cádiz
GR Granada
J Jaén
MA Málaga
SE Sevilla
HU Huesca
Z Zaragoza
O Asturias
PM Baleares
TF Tenerife
S Cantabria
CR Ciudad Real
CU Cuenca
GU Guadalajara
TO Toledo
SG Segovia
SO Soria
VA Valladolid
BU Burgos
LE León
P Palencia
SA Salamanca
ZA Zamora
GI Girona
T Tarragona
L Lleida
CC Cáceres
PO Pontevedra
C La Coruña
M Madrid
MU Murcia
NA Navarra
BI Vizcaya
SS Guipúzcoa
LO La Rioja
A Alicante
CS Castellón
Anexo 6. Divisas
Como abreviaturas de las Divisas (campo DIVISA del registro ~K), se establecen las
especificadas por el BCE (Banco Central Europeo, www.ecb.int), que son las
siguientes:
u unidad
mu mil unidades
cu cien unidades
mes mes
Importe que sirve de base para formular las ofertas económicas de las empresas que
concurren a una licitación de obra.
INDICE:
0. ESPECIFICACIÓN del Formato.
ARBDC.
PRESENTACIÓN
Para facilitar su lectura, aparece en el lado derecho del texto una línea vertical en
aquellos párrafos nuevos o modificados respecto a la especificación FIEBDC-3/2002.
Este formato pretende abarcar toda la INFORMACION contenida en las actuales bases
de datos de CONSTRUCCIÓN. No todos los desarrolladores de bases de datos
necesitarán utilizar todas las posibilidades del formato; así como tampoco todos los
programas de mediciones y presupuestos harán uso de toda la INFORMACION
suministrada.
El juego de caracteres a emplear en los campos CÓDIGO será el definido por MS-DOS
6.0, incluyendo < . > (ASCII-46), < $ > (ASCII-36), < # > (ASCII-35), < %> (ASCII-37), <
& > (ASCII-38), < _ > (ASCII-95).
El fin de línea será el ESTÁNDAR de los archivos MS-DOS (ASCII-13 y ASCII-10). El fin
de archivo se marcará según el mismo ESTÁNDAR (ASCII-26). El único carácter de
control adicional que se permitirá será el tabulador (ASCII-9).
Cada registro estará compuesto de campos separados por caracteres < | > (ASCII-
124). Todo campo con INFORMACION tendrá que finalizar con el separador de campos
y el registro deberá contener todos los separadores de campos anteriores, aunque no
contengan INFORMACION. No es necesario disponer de finalizadores de los campos
posteriores al último con INFORMACION.
Cada campo estará compuesto de subcampos separados por caracteres < \ > (ASCII-
92). El separador final, entre el último dato de un campo y el fin de campo es opcional.
El primer campo de cada registro es la cabecera de registro, una letra mayúscula que
identifica el tipo de registro.
Se ignorarán los caracteres blancos (32), tabuladores (9) y de fin de línea (13 y 10),
delante de los separadores < ~ >, < | > y < \ >.
CONVENIOS DE NOTACIÓN
Todos los valores numéricos irán sin separadores de miles y con el carácter punto '.'
entre la parte entera y la decimal.
Ejemplos:
12062000 12 de junio de 2000
120699 12 de junio de 1999
00061281 junio de 1281
061281 6 de diciembre de 1981
401 abril de 2001
PROGRAMA_EMISION: Programa y/o empresa que genera los ficheros en formato
Si algún campo no está lleno, cada programa podrá aplicar por defecto la precisión que éste
decida.
~K | { DN \ DD \ DS \ DR \ DI \ DP \ DC \ DM \ DIVISA \ } | CI \ GG \ BI \ BAJA \
IVA | { DRC \ DC \ DRO \ DFS \ DRS \ DFO \ DUO \ DI \ DES \ DN \ DD \ DS \
DIVISA \ } | [ n ] |
Este registro incluye el campo 1 por compatibilidad con versiones anteriores del
formato, aunque los programas deben leer el campo 3 por ser más completo y en su
defecto el campo 1.
Conceptos previos
Unidad de obra: Cualquier elemento simple o elemento compuesto, con o sin costes
indirectos, que se utiliza en un presupuesto.
Definiciones
DN: Decimales del campo número de partes iguales de la hoja de mediciones. Por
defecto 2 decimales.
defecto 2 decimales.
decimales.
DP: Decimales del importe resultante del sumatorio de los costes directos del
DC: Decimales del importe total del concepto. (CD+CI). Por defecto 2 decimales
DIVISA: Es la divisa expresada en el mismo modo que las abreviaturas utilizadas por
el BCE (Banco Central Europeo), que en su caso deberán coincidir con las del
porcentaje.
DFO: Decimales del factor de rendimiento de los capítulos, subcapítulos, etc. y líneas
decimales.
DUO: Decimales del coste total de las unidades de obra. Por defecto 2 decimales.
los elementos compuestos y/o elementos simples por sus respectivos precios,
decimales del importe resultante del sumatorio de los costes directos de la unidad de
DES: Decimales del importe de los elementos simples. Por defecto 2 decimales.
DN: Decimales del campo número de partes iguales de la hoja de mediciones. Por
defecto 2 decimales.
defecto 2 decimales.
DIVISA: Es la divisa expresada en el mismo modo que las abreviaturas utilizadas por
el BCE (Banco Central Europeo), que en su caso deberán coincidir con las del
~K | { DN \ DD \ DS \ DR \ DI \ DP \ DC \ DM \ DIVISA \ } | CI \ GG \ BI \ BAJA \
IVA | { DRC \ DC \ DRO \ DFS \ DRS \ DFO \ DUO \ DI \ DES \ DN \ DD \ DS \ eur
\ DRC \ DC \ DRO \ DFS \ DRS \ DFO \ DUO \ DI \ DES \ DN \ DD \ DS \ eur \
DRC \ DC \ DRO \ DFS \ DRS \ DFO \ DUO \ DI \ DES \ DN \ DD \ DS \ usd \ } [ n ]
|
CÓDIGO: CÓDIGO del concepto descrito. Un concepto puede tener varios CODIGOs
que actuarán como sinónimos, este mecanismo permite integrar distintos sistemas
de clasificación.
Para distinguir el concepto tipo raíz de un archivo, así como los conceptos tipo
capítulo, se ampliará su CÓDIGO con los caracteres '##' y '#' respectivamente;
quedando dicha NOTACIÓN reflejada obligatoriamente en el registro tipo ~C ,siendo
opcional en los restantes registros del mismo concepto.
Las referencias a un CÓDIGO con y sin # y/o ##, se entienden únicas a un mismo
concepto.
PRECIO: Precio del concepto. Un concepto puede tener varios precios alternativos que
representen distintas épocas, ámbitos geográficos, etc., definidos biunívocamente
respecto al campo [CABECERA \ {RÓTULO_IDENTIFICACION\} del registro ~V. Cuando
haya más de un precio se asignarán secuencialmente a cada RÓTULO definido; si
FECHA: Fecha de la última actualización del precio. Cuando haya más de una fecha
se asignarán secuencialmente a cada precio definido, si hay más precios que fechas,
los precios sin su correspondiente fecha tomarán la última fecha definida.
Ejemplos:
12062000 12 de junio de 2000
1. Prefijo, que forma una máscara indicando sobre qué elementos se aplica el
porcentaje. Si el prefijo es nulo, el porcentaje se aplica a todas las líneas
anteriores.
Ejemplo: OP%N0001
OP: Sobre todas la líneas anteriores cuyo código comience por OP.
%: Porcentaje no acumulable
El rendimiento será el porcentaje que se aplica sobre las líneas anteriores a la actual
y que queden afectadas por la máscara.
Esta línea representa un porcentaje del 0.03 por uno (3%) de todas las líneas
anteriores a la actual, incluso porcentajes, cuyo código comience por O y cuyo texto
estará en la definición del código 'O%N0001'.
~T | CÓDIGO_CONCEPTO | TEXTO_DESCRIPTIVO |
~P | | [ DESCRIPCION_PARAMETRICA ] | [ NOMBRE.DLL ] |
~P | CÓDIGO_FAMILIA | [ DESCRIPCION_PARAMETRICA ] |
CÓDIGO_SECCION_ PLIEGO: CÓDIGO que define cada SECCION o faceta del pliego.
\COM\ COMPONENTES
\NOR\ NORMATIVA
\MAN\ MANTENIMIENTO
\VAR\ VARIOS \ |
~L | CÓDIGO_CONCEPTO | { CÓDIGO_SECCION_PLIEGO \
TEXTO_SECCION_PLIEGO \ } |
{ CÓDIGO_SECCION_PLIEGO \ ARCHIVO_TEXTO_RTF \ } |
{ CÓDIGO_SECCION_PLIEGO \ ARCHIVO_TEXTO_HTM \ } |
El pliego de condiciones de cada concepto estará dividido con caracteres '\' en varias
secciones o facetas, pensadas para imprimirse juntas o por separado.
Los fines de línea de cada SECCION del pliego se tratarán como en el REGISTRO
TIPO TEXTO.
D delegación.
R representante.
FAX: Números de fax de la entidad, con las mismas especificaciones que el campo
anterior.
Estos datos podrían emplearse en otras utilidades, como el cálculo de los coeficientes
de transmisión térmica, aislamiento acústico, etc.
UM: En el caso que los valores de la INFORMACION Técnica sean valores numéricos,
se indicará su Unidad de Medida, de acuerdo con el Sistema Internacional de
Unidades de Medida.
TIPO: Indica el tipo de línea de medición de que se trate. Usualmente este subcampo
estará vacío. Los tipos establecidos en esta VERSION son:
Subtotal parcial: En esta línea aparecerá el subtotal de las líneas anteriores desde
el último subtotal hasta la línea inmediatamente anterior a ésta.
~B | CÓDIGO_CONCEPTO | CÓDIGO_NUEVO |
donde:
4- normativa y bibliografía
5- tarifa de precios
6- condiciones de venta
7- carta de colores
Además de las extensiones permitidas en los registros ~G, ~L y ~J, se añaden los
siguientes usando como referencia programas estandarizados de uso general, para
chequear y verificar el contenido del fichero:
Extensión .PDF: Acrobat Reader v.5
~T | CÓDIGO_CONCEPTO | TEXTO_DESCRIPTIVO |
~P | CÓDIGO_FAMILIA | [ DESCRIPCION_PARAMETRICA ] |
~L | CÓDIGO_CONCEPTO | { CÓDIGO_SECCION_PLIEGO \
TEXTO_SECCION_PLIEGO \ } |{ CÓDIGO_SECCION_PLIEGO \
ARCHIVO_TEXTO_RTF \ } | { CÓDIGO_SECCION_PLIEGO \
ARCHIVO_TEXTO_HTM \ } |
~B | CÓDIGO_CONCEPTO | CÓDIGO_NUEVO |
PRESENTACIÓN. X X X
Cualquier variable de la 'A' a la 'Z' tanto numérica (%) como alfanumérica ($) se
puede definir o redefinir con cualquier número de dimensiones para ser utilizada
posteriormente en expresiones.
Se definen las constantes de la 'a' a la 'z' con los valores numéricos del 1 al 26
respectivamente, para permitir referenciar los parámetros de forma nemotécnica.
Para la utilización de otro tipo de caracteres, se determinará en el texto de la opción
del parámetro seleccionado el carácter de sustitución que se desea utilizar,
anteponiéndole un carácter especial ' ! ' .Si dicho carácter no existe la sustitución se
realiza relacionando el carácter con la posición que ocupa.
Las variables numéricas deben permitir valores reales en coma flotante de doble
precisión (64bits) y las variables alfanuméricas deben poder almacenar textos de
cualquier tamaño.
Las variables %E y $E son especiales para devolver errores producidos por selecciones
de parámetros no coherentes. En una evaluación secuencial de expresiones, si en
una expresión la variable %E adopta un valor distinto de 0, ha habido algún error, se
interrumpe la evaluación de expresiones y se presenta el contenido de la variable $E
donde se almacena el texto del error producido.
SENTENCIA DE COMENTARIO:
SENTENCIA DE SUSTITUCION:
\ RESUMEN \ ó \ R \ <texto de sustitución del texto resumido> \
<expresión_numérica>\}
<expresión numérica>:
<expresión alfanumérica>:
<expresiones lógicas>:
$I = "blanco"*(%C=c) + "negro"*(%C=d)
<texto de sustitución>:
Variables predefinidas:
[%$][ABCD] Parámetros del concepto
, Separador de datos
: DEFINICION de rendimiento
:: DEFINICION de precio
- Resta
* Multiplicación
/ División
^ Operador elevado a
< Menor
> Mayor
<> Diferente
! Operador lógico NO
Si una línea acaba sin haber cerrado las comillas '"' o delimitador '\', se considerará
que sigue en la línea siguiente. Los caracteres fin de línea (ASCII-13 + ASCII-10)
contenidos en las descripciones paramétricas se mantendrán al reformatear.
Cada vez que el operador define un parámetro, el sistema evaluará todas las
sentencias posibles y en las sentencias del tipo: %E= ...., función de parámetros
Si todos los parámetros menos uno son conocidos, se irá dando valores al parámetro
desconocido y evaluando la expresión hasta recorrer todos los valores válidos del
parámetro. De alguna forma, el sistema "marcará" los valores que producen ERROR
del parámetro estudiado en la pantalla de selección, para ayudar al operador a
seleccionar las combinaciones correctas.
3. Eliminar caracteres ' ' (32) delante y detrás de los caracteres '\'
4. Unir líneas, eliminando el fin de línea, en líneas que comienzan con '\' y no
acaban con '\', que terminan con un operador y en la separación de datos de una
variable matricial.
5. Eliminar todos los caracteres ' ' (32) en zonas no entrecomilladas ("...") o
delimitadas (\...\)
entre '\' como el texto de sustitución del texto descriptivo del concepto.
entre '\' como los textos de sustitución de las distintas secciones del pliego.
ROTULOs entre '\' como los textos de sustitución de los términos claves
siguientes ROTULOs entre '\' como los ROTULOs de las opciones de dicho
parámetro.
Si la sentencia comienza con '::' el resto de la misma debe ser una expresión
numérica indicadora del Precio, sólo en familias de conceptos simples (sin
descomposición) y sólo puede haber una sentencia de este tipo.
Si la sentencia comienza con '%:' el resto de la misma debe ser una expresión
numérica indicadora del Porcentaje de Medios Auxiliares, sólo puede haber una
sentencia de este tipo.
[ :: expresión_precio (13)(10) ]
Es decir; es posible construir una base de datos que cumpla este API utilizando para
ello cualquier lenguaje de programación que permita desarrollar librerías de enlace
dinámico Windows (DLL). Asimismo, es posible construir un programa que lea
cualquier base de datos de estas características utilizando lenguajes de aplicaciones
para Windows.
El juego de caracteres utilizado en los textos devueltos por las funciones del API será
el especificado en el registro ‘~V’.
base.dll En este archivo, único para cada base de datos y de nombre cualquiera
pero extensión ‘.DLL’, se encuentran las funciones del API que la base
de datos ofrece a las aplicaciones para que éstas obtengan la
INFORMACION que contiene la base.
~P|ABCD12$| |
Para que los programas puedan determinar si una base de datos responde a uno u
otro modelo, se ha definido la función BdcCodificacion(), que se especifica más
adelante y que indica si el sistema de codificación usado en la base de datos es
dependiente o independiente.
VOID
);
Propósito
Valor devuelto
VOID
);
Propósito
Valor devuelto
Devolverá ‘1’ si está implementado el modelo uno de textos de pliegos. Es este caso,
se utilizará la función BdcPliego() para obtener los textos de los pliegos.
Devolverá ‘2’ si está implementado el modelo dos de textos de pliegos. En este caso,
se utilizarán las funciones BdcCodigoParrafo() y BdcTextoParrafo() para obtener los
textos de los pliegos.
Devolverá ‘3’ si están implementados tanto el modelo uno como el modelo dos.
VOID
);
Valor devuelto
VOID
);
Propósito
Valor devuelto
);
Propósito
Parámetros
par: Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo
‘n’ el número de parámetros del concepto paramétrico global.
Valor devuelto
);
Propósito
Parámetros
par: Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo
‘n’ el número de parámetros del concepto paramétrico global.
Valor devuelto
);
Propósito
Obtiene el rótulo que identifica la opción ‘opc’ del parámetro ‘par’ del
concepto.
Parámetros
par: Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo
‘n’ el número de parámetros del concepto paramétrico global.
opc: Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo ‘n’
el número de opciones que posee el parámetro ‘par’ del concepto
paramétrico global.
Valor devuelto
Devuelve el rótulo que identifica la opción ‘opc’ del parámetro ‘par’ del
concepto, como puntero constante ‘far’ a una cadena de caracteres. La
propia función es responsable de asignar memoria al puntero. En caso de
error, la función devuelve NULL. Para obtener más INFORMACION sobre
el error producido, llame a la función BdcGloError().
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
Propósito
Parámetros
Valor devuelto
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
par: Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo
‘n’ el número de parámetros del concepto.
);
Propósito
Parámetros
par: Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo
‘n’ el número de parámetros del concepto.
Valor devuelto
);
Propósito
Obtiene rótulo que identifica la opción ‘opc’ del parámetro ‘par’ del
concepto.
Parámetros
par: Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo
‘n’ el número de parámetros del concepto.
Valor devuelto
Devuelve el rótulo que identifica la opción ‘opc’ del parámetro ‘par’ del
concepto, como puntero constante ‘far’ a una cadena de caracteres. La
propia función es responsable de asignar memoria al puntero. En caso de
error, la función devuelve NULL. Para obtener más INFORMACION sobre
el error producido, llame a la función BdcError(). En caso de referirse a
ámbitos territoriales y a divisas, véanse los anexos 5 y 6.
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
Ordenación
Ejemplo
);
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
);
Parámetros
sección: Puede tomar como valor el código de la sección del pliego cuyo
texto se desea obtener, en cuyo caso deberá ser una de las
secciones especificadas en el registro ~L, según se indica en el
apartado ‘REGISTROS TIPO PLIEGOS’ de la especificaciones del
formato. Si no existen secciones definidas, el valor de este
parámetro no es utilizado. Si por el contrario toma el valor NULL,
la función devolverá los códigos de las secciones del pliego para
los que el concepto posea texto del pliego, separados por el
separador de subcampos ('\').
ámbito: Ámbito del cual se desea obtener el texto del pliego. Corresponde
a uno de los campos ‘ABREV_AMBITO’ especificados en el registro
~W, según se indica en el apartado ‘REGISTRO TIPO ÁMBITO
GEOGRÁFICO’ de las especificaciones del formato. Si no existen
ámbitos definidos (no existe un registro ~W), el valor de este
parámetro es ignorado. En ese caso, es posible que el ámbito sea
un parámetro global de la base.
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
Devuelve un texto con los códigos de párrafo del pliego del derivado
paramétrico, como puntero constante ‘far’ a una cadena de caracteres.
La propia función es responsable de asignar memoria al puntero. Si no
existe definido ningún código de párrafo, la función devuelve la cadena
vacía “”. En caso de error (por ejemplo ámbito no soportado por la BDC), la
función devuelve NULL. Para obtener más INFORMACION sobre el error
producido, llame a la función BdcError(). Los códigos irán separados con el
{ CÓDIGO_PARRAFO \ }
);
Propósito
Parámetros
cod_parrafo Código del párrafo del pliego cuyo texto se desea obtener.
Valor devuelto
);
Propósito
Parámetros
);
Propósito
Parámetros
Valor devuelto
Devuelve el tipo del concepto, como puntero constante 'far' a una cadena
de caracteres. Si se ha calculado un derivado paramétrico (se ha llamado
a la función BdcCalcula) este tipo será el del derivado paramétrico. En
caso contrario, será el tipo del concepto paramétrico. La propia función
es responsable de asignar memoria al puntero. En caso de error, la
función devuelve NULL. Para obtener más INFORMACION sobre el error
producido, llame a la función BdcError(). Corresponde al campo TIPO del
registro ~C.
);
Propósito
Parámetros
Valor devuelto
// la información a devolver
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
4. M ENSAJES DE ERROR
...
error explicativo.
parámetro inexistente.
inexistente.
determinado parámetro.
descomposición inexistente.
combinación inexistente.
EJEM PLOS
El ejemplo construido posee las siguientes características (no todas las bases que se
realicen conforme a este formato deben tener estas mismas características):
1. Se ha utilizado un modelo de codificación independiente de los parámetros.
formato no lo exige.
la técnica de definir una tabla de sinónimos: así, el concepto que resulta de escoger
el primer valor del único parámetro que posee, en lugar de poseer el código
7. Los textos de los pliegos sólo están definidos en formato ASCII y para los
~P| ABPH.1$ | |
~P| EADR.3$ | |
~P| Esp$ | |
Este ejemplo está preparado para compilarse con Microsoft Visual C++
VERSION 2.2 o posterior como DLL de 32 bits. Sin apenas modificaciones,
sería posible compilarlo como DLL de 16 bits o utilizar el compilador Borland
C++.
Esta sencilla aplicación, lee los conceptos que se incluyen en el propio fuente de la
base BASE.DLL (en una aplicación real, los conceptos se definen en los registros ~P
de base.bc3), y escribe en el archivo 'SALIDA.TXT' los rótulos de todos sus parámetros
así como todos los datos de todas sus combinaciones paramétricas.
Los fuentes son fácilmente modificables para poder probar con el programa cualquier
base de datos que utilice paramétricos compilados en DLL de acuerdo con el API
establecido en este documento.
Este ejemplo está preparado para compilarse con Microsoft Visual C++
VERSION 2.2 o posterior como aplicación Windows 95 de 32 bits en modo
consola. Sin apenas modificaciones, sería posible compilarlo como aplicación
de 16 bits o utilizar el compilador Borland C++.
-1 Mano de obra
-2 Maquinaria
-3 Materiales
Esta clasificación proviene del BOE (Boletín Oficial del Estado: http://www.boe.es/) y
de la CNC (Confederación Nacional de la Construcción: http://www.cnc.es/), que la
utilizan para fijar los índices de variación de precios mediante sus respectivas
fórmulas polinómicas.
-H Mano de obra
- MC Cemento
- MCr Cerámicas
- MM Maderas
- MS Siderúrgicos
- ME Energía
- MCu Cobre
- Mal Aluminio
- ML Ligantes
-Q Maquinaria
-% Medios auxiliares
donde,
- MC, MCr, MM, MS, ME, MCu, Mal, ML y M, se refieren al tipo 3 actual. Dicha
clasificación de materiales se corresponde con la de los índices de revisión de precios
- %, se refiere a un nuevo tipo que se corresponde con los medios auxiliares que
pueden aparecer en una justificación de precios.
- EU Elemento unitario
- EC Elemento complejo
- EF Elemento funcional
- OB Obra
- PA Partida Alzada
- PU Presupuesto Unitario
donde,
Ejemplo: Partida alzada a justificar del 1% del PEM, para gastos de acción cultural.
siguientes:
E España
AL Almería
CO Córdoba
H Huelva
CA Cádiz
GR Granada
J Jaén
MA Málaga
SE Sevilla
TE Teruel
HU Huesca
Z Zaragoza
O Asturias
GC Las Palmas
TF Tenerife
S Cantabria
AB Albacete
CR Ciudad Real
CU Cuenca
GU Guadalajara
TO Toledo
AV Ávila
SG Segovia
SO Soria
VA Valladolid
BU Burgos
LE León
P Palencia
SA Salamanca
ZA Zamora
B Barcelona
GI Girona
T Tarragona
L Lleida
BA Badajoz
CC Cáceres
LU Lugo
OR Orense
PO Pontevedra
M Madrid
MU Murcia
NA Navarra
VI Álava
BI Vizcaya
SS Guipúzcoa
LO La Rioja
V Valencia
A Alicante
CS Castellón
Anexo 6. Divisas
Como abreviaturas de las Divisas (campo DIVISA del registro ~K), se establecen las
especificadas por el BCE (Banco Central Europeo, http://www.ecb.int/), que son las
siguientes:
m metro
m2 metro cuadrado
m3 metro cúbico
kg kilogramo
km kilómetro
t tonelada
l litro
h hora
d día
u unidad
mu mil unidades
cu cien unidades
mes mes
Beneficio industrial del contratista (BI), que para obras oficiales se fija en
un 6%.
Importe que sirve de base para formular las ofertas económicas de las empresas que
concurren a una licitación de obra.
INDICE:
0. ESPECIFICACIÓN del Formato.
ARBDC.
Para facilitar su lectura, aparece en el lado derecho del texto una línea vertical en
aquellos párrafos nuevos o modificados respecto a la especificación FIEBDC-3/98.
Este formato pretende abarcar toda la INFORMACION contenida en las actuales bases
de datos de CONSTRUCCIÓN. No todos los desarrolladores de bases de datos
necesitarán utilizar todas las posibilidades del formato; así como tampoco todos los
programas de mediciones y presupuestos harán uso de toda la INFORMACION
suministrada.
El juego de caracteres a emplear en los campos CÓDIGO será el definido por MS-DOS
6.0, incluyendo < . > (ASCII-46), < $ > (ASCII-36), < # > (ASCII-35), < %> (ASCII-37), <
& > (ASCII-38), < _ > (ASCII-95).
El fin de línea será el ESTÁNDAR de los archivos MS-DOS (ASCII-13 y ASCII-10). El fin
de archivo se marcará según el mismo ESTÁNDAR (ASCII-26). El único carácter de
control adicional que se permitirá será el tabulador (ASCII-9).
Cada registro estará compuesto de campos separados por caracteres < | > (ASCII-
124). Todo campo con INFORMACION tendrá que finalizar con el separador de campos
y el registro deberá contener todos los separadores de campos anteriores, aunque no
contengan INFORMACION. No es necesario disponer de finalizadores de los campos
posteriores al último con INFORMACION.
Cada campo estará compuesto de subcampos separados por caracteres < \ > (ASCII-
92). El separador final, entre el último dato de un campo y el fin de campo es opcional.
El primer campo de cada registro es la cabecera de registro, una letra mayúscula que
identifica el tipo de registro.
Se ignorarán los caracteres blancos (32), tabuladores (9) y de fin de línea (13 y 10),
delante de los separadores < ~ >, < | > y < \ >.
CONVENIOS DE NOTACIÓN
[a] Indica nada o "a"
Todos los valores numéricos irán sin separadores de miles y con el carácter punto '.'
entre la parte entera y la decimal.
Ejemplos:
12062000 12 de junio de 2000
CODIGO: CODIGO del concepto descrito. Un concepto puede tener varios CODIGOs
que actuarán como sinónimos, este mecanismo permite integrar distintos sistemas
de clasificación.
Para distinguir el concepto tipo raíz de un archivo, así como los conceptos tipo
capítulo, se ampliará su CODIGO con los caracteres '##' y '#' respectivamente;
quedando dicha NOTACIÓN reflejada obligatoriamante en el registro tipo ~C ,siendo
opcional en los restantes registros del mismo concepto.
Las referencias a un CODIGO con y sin # y/o ##, se entienden únicas a un mismo
concepto.
PRECIO: Precio del concepto. Un concepto puede tener varios precios alternativos que
representen distintas épocas, ámbitos geográficos, etc., definidos biunívocamente
respecto al campo [CABECERA] \ { ROTULO_IDENTIFICACION \ } del registro ~V.
Cuando haya más de un precio se asignarán secuencialmente a cada ROTULO
definido; si hay más ROTULOS que precios, se asignará a aquellos el último precio
definido.
FECHA: Fecha de la última actualización del precio. Cuando haya más de una fecha
se asignarán secuencialmente a cada precio definido, si hay más precios que fechas,
los precios sin su correspondiente fecha tomarán la última fecha definida.
Ejemplos:
12062000 12 de junio de 2000
Ejemplo: OP%N0001
OP: Sobre todas la líneas anteriores cuyo código comience por OP.
%: Porcentaje no acumulable
Esta línea representa un porcentaje del 0.03 por uno (3%) de todas las líneas
anteriores a la actual, incluso porcentajes, cuyo código comience por O y cuyo
texto estará en la definición del código 'O%N0001'.
~T | CODIGO_CONCEPTO | TEXTO_DESCRIPTIVO |
~P | CODIGO_FAMILIA | DESCRIPCION_PARAMETRICA |
~P | | DESCRIPCION_PARAMETRICA | NOMBRE.DLL |
~L | | { CODIGO_SECCION_PLIEGO \ ROTULO_SECCION_PLIEGO \ } |
CODIGO_SECCION_ PLIEGO: CODIGO que define cada SECCION o faceta del pliego.
\COM\ COMPONENTES
\NOR\ NORMATIVA
\MAN\ MANTENIMIENTO
\VAR\ VARIOS \ |
~L | CODIGO_CONCEPTO |
{CODIGO_SECCION_PLIEGO \TEXTO_SECCION_PLIEGO \ } |
{ CODIGO_SECCION_PLIEGO \ARCHIVO_TEXTO_RTF \ }
| { CODIGO_SECCION_PLIEGO \ARCHIVO_TEXTO_HTM \ }
El pliego de condiciones de cada concepto estará dividido con caracteres '\' en varias
secciones o facetas, pensadas para imprimirse juntas o por separado.
\ { ABREV_AMBITO; } \ } |
~W | { ABREV_AMBITO \ AMBITO \ } |
D delegación.
R representante.
FAX: Números de fax de la entidad, con las mismas especificaciones que el campo
anterior.
Así una Base de Datos ( BD ) podrá contener CONCEPTOS genéricos de una BDG,
CONCEPTOS referentes a productos comerciales de una BDE, o ambas a la vez.
~O | CODIGO_RAIZ_BD # CODIGO_CONCEPTO | |
Estos datos podrían emplearse en otras utilidades, como el cálculo de los coeficientes
de transmisión térmica, aislamiento acústico, etc.
~X | | { CODIGO_IT \ DESCRIPCION_IT \ UM \ } |
UM: En el caso que los valores de la INFORMACION Técnica sean valores numéricos,
se indicará su Unidad de Medida, de acuerdo con el Sistema Internacional de
Unidades de Medida.
Primer comportamiento: Se lee el primer campo que sirve para regular ciertos
conceptos de un banco de precios y de un presupuesto. El tercer campo está vacío.
~K | { DN \ DD \ DS \ DR \ DI \ DP \ DC \ DM \ DIVISA \ } | CI \ GG \ BI \ BAJA \
IVA | | [ n ] |
Segundo comportamiento: El tercer campo sirve para regular más aspectos de un banco
de precios y de un presupuesto que los del primer comportamiento. Por compatibilidad
con versiones anteriores, si el tercer campo no existe, se debe de leer el primer
campo.
concepto.
DP: Decimales del importe resultante del sumatorio de los costes directos del
concepto.
por su precio.
por el BCE (Banco Central Europeo), que en su caso deberán coincidir con
expresados en porcentaje.
BI: Decimales del Beneficio Industrial cuando este está expresado en porcentaje.
expresado en porcentaje.
IVA: Decimales Impuesto del Valor Añadido, cuando este está expresado en
porcentaje.
elementos auxiliares.
DFO: Decimales del factor de medición de los capítulos, subcapítulos, etc. (unidades
DUO:Decimales del importe de las unidades de obra y partidas alzadas, decimales del
concepto divisa.
TIPO: Indica el tipo de línea de medición de que se trate. Usualmente este subcampo
estará vacío. Los tipos establecidos en esta VERSION son:
Subtotal parcial: En esta línea aparecerá el subtotal de las líneas anteriores desde
el último subtotal hasta la línea inmediatamente anterior a ésta.
~A | CODIGO_CONCEPTO | { CLAVE_TESAURO \ } |
~B | CODIGO_CONCEPTO | CODIGO_NUEVO |
JUEGO_CARACTERES |
~T | CODIGO_CONCEPTO | TEXTO_DESCRIPTIVO |
~P | CODIGO_FAMILIA | DESCRIPCION_PARAMETRICA |
~P | | DESCRIPCION_PARAMETRICA | NOMBRE.DLL |
~L | | { CODIGO_SECCION_PLIEGO \ ROTULO_SECCION_PLIEGO \ }
\ } | { CODIGO_SECCION_PLIEGO \ARCHIVO_TEXTO_RTF \ }|
{ CODIGO_SECCION_PLIEGO \ARCHIVO_TEXTO_HTM \ }
\ { ABREV_AMBITO; } \ } |
ARCHIVO_PARRAFO_RTF | ARCHIVO_PARRAFO_HTM |
CODIGO_ENTIDAD # CODIGO_CONCEPTO \ } |
~X | | { CODIGO_IT \ DESCRIPCION_IT \ UM \ } |
~K | { DN \ DD \ DS \ DR \ DI \ DP \ DC \ DM \ DIVISA \ } | CI \ GG \ BI \ BAJA \
IVA | | [ n ] |
~A | CODIGO_CONCEPTO | { CLAVE_TESAURO \ } |
~B | CODIGO_CONCEPTO | CODIGO_NUEVO |
PRESENTACIÓN. X X
FORMATO FIEBDC-3. ESPECIFICACIÓN. X
~V. Registro tipo PROPIEDAD Y VERSION. X X
~C. Registro tipo CONCEPTO. X X
~D. Registro tipo DESCOMPOSICIÓN. X X
~P. Registro tipo DESCRIPCIÓN X
PARAMÉTRICA.
~L. Registro tipo PLIEGOS. X X
~W. Registro tipo ÁMBITO GEOGRÁFICO. X X
~G. Registro tipo INFORMACION GRÁFICA. X X
~E. Registro tipo ENTIDAD. X X
~O. Registro tipo RELACION COMERCIAL. X X
~X. Registro tipo INFORMACION TÉCNICA. X
Cualquier variable de la 'A' a la 'Z' tanto numérica (%) como alfanumérica ($) se
puede definir o redefinir con cualquier número de dimensiones para ser utilizada
posteriormente en expresiones.
Se definen las constantes de la 'a' a la 'z' con los valores numéricos del 1 al 26
respectivamente, para permitir referenciar los parámetros de forma nemotécnica.
Para la utilización de otro tipo de caracteres, se determinará en el texto de la opción
del parámetro seleccionado el carácter de sustitución que se desea utilizar,
anteponiéndole un carácter especial ' ! ' .Si dicho carácter no existe la sustitución se
realiza relacionando el carácter con la posición que ocupa.
Las variables %E y $E son especiales para devolver errores producidos por selecciones
de parámetros no coherentes. En una evaluación secuencial de expresiones, si en
una expresión la variable %E adopta un valor distinto de 0, ha habido algún error, se
interrumpe la evaluación de expresiones y se presenta el contenido de la variable $E
donde se almacena el texto del error producido.
SENTENCIA DE COMENTARIO:
SENTENCIA DE SUSTITUCION:
\ RESUMEN \ ó \ R \ <texto de sustitución del texto resumido> \
<expresión_numérica>\}
<expresión numérica>:
<expresión alfanumérica>:
$I = "blanco"*(%C=c) + "negro"*(%C=d)
<texto de sustitución>:
Variables predefinidas:
[%$][ABCD] Parámetros del concepto
, Separador de datos
:: DEFINICIÓN de precio
- Resta
* Multiplicación
/ División
^ Operador elevado a
< Menor
> Mayor
= Igual
<> Diferente
! Operador lógico NO
Si una línea acaba sin haber cerrado las comillas '"' o delimitador '\', se considerará
que sigue en la línea siguiente. Los caracteres fin de línea (ASCII-13 + ASCII-10)
contenidos en las descripciones paramétricas se mantendrán al reformatear.
Cada vez que el operador define un parámetro, el sistema evaluará todas las
sentencias posibles y en las sentencias del tipo: %E= ...., función de parámetros
Si todos los parámetros menos uno son conocidos, se irá dando valores al parámetro
desconocido y evaluando la expresión hasta recorrer todos los valores válidos del
parámetro. De alguna forma, el sistema "marcará" los valores que producen ERROR
del parámetro estudiado en la pantalla de selección, para ayudar al operador a
seleccionar las combinaciones correctas.
Cada vez que se defina o redefina un parámetro el sistema actualizará todos los
valores marcados en pantalla, por ejemplo pondrá en "medio brillo" los ROTULOs de
las opciones cuya selección no sería compatible con los parámetros seleccionados
previamente.
exclusive.
2. Cambiar tabuladores (9) por caracteres ' ' (32)
3. Eliminar caracteres ' ' (32) delante y detrás de los caracteres '\'
4. Unir líneas, eliminando el fin de línea, en líneas que comienzan con '\' y
delimitadas (\...\)
6. Eliminar líneas vacías.
Si la sentencia comienza con '\' leer el ROTULO hasta el siguiente '\', si el ROTULO
es:
Si la sentencia comienza con '::' el resto de la misma debe ser una expresión
numérica indicadora del Precio, sólo en familias de conceptos simples (sin
descomposición) y sólo puede haber una sentencia de este tipo.
Si la sentencia comienza con '%:' el resto de la misma debe ser una expresión
numérica indicadora del Porcentaje de Medios Auxiliares, sólo puede haber una
sentencia de este tipo.
[ :: expresión_precio (13)(10) ]
Es decir; es posible construir una base de datos que cumpla este API utilizando para
ello cualquier lenguaje de programación que permita desarrollar librerías de enlace
dinámico Windows (DLL). Asimismo, es posible construir un programa que lea
cualquier base de datos de estas características utilizando lenguajes de aplicaciones
para Windows.
El juego de caracteres utilizado en los textos devueltos por las funciones del API será
el especificado en el registro ‘~V’.
~P|ABCD12$| |
~P| | | BASE.DLL |
Para que los programas puedan determinar si una base de datos responde a uno u
otro modelo, se ha definido la función BdcCodificacion(), que se especifica más
adelante y que indica si el sistema de codificación usado en la base de datos es
VOID
);
Propósito
Valor devuelto
VOID
);
Propósito
Valor devuelto
Devolverá ‘1’ si está implementado el modelo uno de textos de pliegos. Es este caso,
se utilizará la función BdcPliego() para obtener los textos de los pliegos.
Devolverá ‘2’ si está implementado el modelo dos de textos de pliegos. En este caso,
se utilizarán las funciones BdcCodigoParrafo() y BdcTextoParrafo() para obtener los
textos de los pliegos.
Devolverá ‘3’ si están implementados tanto el modelo uno como el modelo dos.
VOID
);
Propósito
Valor devuelto
VOID
);
Propósito
Valor devuelto
);
Propósito
Parámetros
par: Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo ‘n’ el
número de parámetros del concepto paramétrico global.
Valor devuelto
);
Propósito
Parámetros
par: Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo ‘n’ el
número de parámetros del concepto paramétrico global.
Valor devuelto
);
Propósito
Obtiene el rótulo que identifica la opción ‘opc’ del parámetro ‘par’ del
concepto.
par: Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo ‘n’ el
número de parámetros del concepto paramétrico global.
opc: Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo ‘n’ el
número de opciones que posee el parámetro ‘par’ del concepto
paramétrico global.
Valor devuelto
Devuelve el rótulo que identifica la opción ‘opc’ del parámetro ‘par’ del
concepto, como puntero constante ‘far’ a una cadena de caracteres. La propia
función es responsable de asignar memoria al puntero. En caso de error, la
función devuelve NULL. Para obtener más INFORMACION sobre el error
producido, llame a la función BdcGloError().
);
Propósito
Parámetros
Valor devuelto
);
Propósito
opcl: Puntero a un vector (array) de LONGs con las opciones que se desea
fijar a cada parámetro. Las opciones se numeran empezando por cero.
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
Parámetros
Valor devuelto
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Parámetros
par: Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo
‘n’ el número de parámetros del concepto.
Valor devuelto
);
Propósito
Parámetros
par: Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo
‘n’ el número de parámetros del concepto.
Valor devuelto
);
Obtiene rótulo que identifica la opción ‘opc’ del parámetro ‘par’ del
concepto.
Parámetros
par: Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo
‘n’ el número de parámetros del concepto.
opc: Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo ‘n’
el número de opciones que posee el parámetro ‘par’ del concepto.
Valor devuelto
Devuelve el rótulo que identifica la opción ‘opc’ del parámetro ‘par’ del
concepto, como puntero constante ‘far’ a una cadena de caracteres. La
propia función es responsable de asignar memoria al puntero. En caso de
error, la función devuelve NULL. Para obtener más INFORMACION sobre
el error producido, llame a la función BdcError(). En caso de referirse a
ámbitos territoriales y a divisas, véanse los anexos 5 y 6.
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
opcl: Puntero a un vector (array) de LONGs con las opciones que se desea
fijar a cada parámetro. Las opciones se numeran empezando por
cero.
Valor devuelto
);
Propósito
Parámetros
opcl: Puntero a un vector (array) de LONGs con las opciones que se desea
fijar a cada parámetro. Las opciones se numeran empezando por
cero.
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
Ordenación
Ejemplo
respectivamente.
respectivamente.
respectivamente.
respectivamente.
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
Devuelve un texto con los códigos de párrafo del pliego del derivado
paramétrico, como puntero constante ‘far’ a una cadena de caracteres.
La propia función es responsable de asignar memoria al puntero. Si no
existe definido ningún código de párrafo, la función devuelve la cadena
vacía “”. En caso de error (por ejemplo ámbito no soportado por la BDC), la
función devuelve NULL. Para obtener más INFORMACION sobre el error
producido, llame a la función BdcError(). Los códigos irán separados con el
separador de subcampos habitual, es decir, el texto devuelto tendrá la
sintaxis
{ CODIGO_PARRAFO \ }
);
Propósito
Parámetros
cod_parrafo Código del párrafo del pliego cuyo texto se desea obtener.
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
);
Propósito
Parámetros
Valor devuelto
Devuelve el tipo del concepto, como puntero constante 'far' a una cadena
de caracteres. Si se ha calculado un derivado paramétrico (se ha llamado
a la función BdcCalcula) este tipo será el del derivado paramétrico. En
caso contrario, será el tipo del concepto paramétrico. La propia función
es responsable de asignar memoria al puntero. En caso de error, la
función devuelve NULL. Para obtener más INFORMACION sobre el error
producido, llame a la función BdcError(). Corresponde al campo TIPO del
registro ~C.
);
Propósito
Parámetros
Valor devuelto
// la información a devolver
);
Propósito
Valor devuelto
4. M ENSAJES DE ERROR
...
parámetro inexistente.
opción inexistente.
determinado parámetro.
BdcLee().
descomposición inexistente.
El ejemplo construido posee las siguientes características (no todas las bases que se
realicen conforme a este formato deben tener estas mismas características):
7. Los textos de los pliegos sólo están definidos en formato ASCII y para los
derivados paramétricos. No están divididos ni en secciones (facetas) ni
en ámbitos.
Para distribuir la base datos que se construyera con este ejemplo, se deberían
proporcionar los siguientes archivos:
~P| ABPH.1$ | |
~P| SBRG.1$ | |
~P| Esp$ | |
Este ejemplo está preparado para compilarse con Microsoft Visual C++ VERSION
2.2 o posterior como DLL de 32 bits. Sin apenas modificaciones, sería posible
compilarlo como DLL de 16 bits o utilizar el compilador Borland C++.
Esta sencilla aplicación, lee los conceptos que se incluyen en el propio fuente de la
base BASE.DLL (en una aplicación real, los conceptos se definen en los registros ~P
de base.bc3), y escribe en el archivo 'SALIDA.TXT' los rótulos de todos sus
parámetros así como todos los datos de todas sus combinaciones paramétricas.
Los fuentes son fácilmente modificables para poder probar con el programa cualquier
base de datos que utilice paramétricos compilados en DLL de acuerdo con el API
establecido en este documento.
Este ejemplo está preparado para compilarse con Microsoft Visual C++ VERSION
2.2 o posterior como aplicación Windows 95 de 32 bits en modo consola. Sin
apenas modificaciones, sería posible compilarlo como aplicación de 16 bits o
utilizar el compilador Borland C++.
-1 Mano de obra
-2 Maquinaria
-3 Materiales
Esta clasificación proviene del BOE (Boletín Oficial del Estado: http://www.boe.es/) y
de la CNC (Confederación Nacional de la Construcción: http://www.cnc.es/), que la
utilizan para fijar los índices de variación de precios mediante sus respectivas
fórmulas polinómicas.
-H Mano de obra
- MC Cemento
- MCr Cerámicas
- MM Maderas
- MS Siderúrgicos
- ME Energía
- MCu Cobre
- Mal Aluminio
- ML Ligantes
-Q Maquinaria
-% Medios auxiliares
donde,
- MC, MCr, MM, MS, ME, MCu, Mal, ML y M, se refieren al tipo 3 actual. Dicha
clasificación de materiales se corresponde con la de los índices de revisión de precios
- %, se refiere a un nuevo tipo que se corresponde con los medios auxiliares que
pueden aparecer en una justificación de precios.
- EU Elemento unitario
- EC Elemento complejo
- EF Elemento funcional
- OB Obra
- PA Partida Alzada
donde,
Ejemplo: Partida alzada a justificar del 1% del PEM, para gastos de acción
cultural.
CO Córdoba
H Huelva
CA Cádiz
GR Granada
J Jaén
MA Málaga
SE Sevilla
HU Huesca
Z Zaragoza
O Asturias
PM Baleares
TF Tenerife
S Cantabria
CR Ciudad Real
CU Cuenca
GU Guadalajara
TO Toledo
SG Segovia
SO Soria
VA Valladolid
BU Burgos
LE León
P Palencia
SA Salamanca
ZA Zamora
GI Girona
T Tarragona
L Lleida
CC Cáceres
OR Orense
PO Pontevedra
C La Coruña
M Madrid
MU Murcia
NA Navarra
BI Vizcaya
SS Guipúzcoa
LO La Rioja
A Alicante
CS Castellón
Anexo 6. Divisas
Como abreviaturas de las Divisas (campo DIVISA del registro ~K), se establecen las
especificadas por el BCE (Banco Central Europeo, http://www.ecb.int/), que son las
siguientes:
M oneda no UM E Resto
m metro
m2 metro cuadrado
m3 metro cúbico
kg kilogramo
km kilómetro
t tonelada
l litro
h hora
d día
a área
Ha hectárea
cm3 centímetro cúbico
cm2 centímetro cuadrado
dm3 decímetro cúbico
u unidad
mu mil unidades
cu cien unidades
mes mes
Beneficio industrial del contratista (BI), que para obras oficiales se fija en
un 6%.
Importe que sirve de base para formular las ofertas económicas de las empresas que
concurren a una licitación de obra.
Este formato pretende abarcar toda la información contenida en las actuales bases de
datos de construcción. No todos los desarrolladores de bases de datos necesitarán
utilizar todas las posibilidades del formato; así como tampoco todos los programas de
mediciones y presupuestos harán uso de toda la información suministrada.
El juego de caracteres a emplear en los campos código será el definido por MS-DOS
6.0, incluyendo < . > (ASCII-46), < $ > (ASCII-36), < # > (ASCII-35), < %> (ASCII-37), <
& > (ASCII-38), < _ > (ASCII-95).
El fin de línea será el estándar de los archivos MS-DOS (ASCII-13 y ASCII-10). El fin
de archivo se marcará según el mismo estándar (ASCII-26). El único carácter de
control adicional que se permitirá será el tabulador (ASCII-9).
Cada registro estará compuesto de campos separados por caracteres < | > (ASCII-
124). Todo campo con información tendrá que finalizar con el separador de campos y
el registro deberá contener todos los separadores de campos anteriores, aunque no
contengan información. No es necesario disponer de finalizadores de los campos
posteriores al último con información.
El primer campo de cada registro es la cabecera de registro, una letra mayúscula que
identifica el tipo de registro.
Se ignorarán los caracteres blancos (32), tabuladores (9) y de fin de línea (13 y 10),
delante de los separadores < ~ >, < | > y < \ >.
Los campos vacíos se considerarán SIN información, no con información nula, esto
permite producir archivos de actualización que contengan únicamente la
información en alguno de sus campos y, por supuesto, el código de referencia.
CONVENIOS DE NOTACIÓN
Todos los valores numéricos irán sin separadores de miles y con el carácter punto '.'
entre la parte entera y la decimal.
CODIGO: código del concepto descrito. Un concepto puede tener varios códigos que
actuarán como sinónimos, este mecanismo permite integrar distintos sistemas de
clasificación.
Para distinguir el concepto tipo raíz de un archivo, así como los conceptos tipo
capítulo, se ampliará su código con los caracteres '##' y '#' respectivamente;
quedando dicha NOTACIÓN reflejada obligatoriamente en el registro tipo ~C ,siendo
opcional en los restantes registros del mismo concepto.
PRECIO: Precio del concepto. Un concepto puede tener varios precios alternativos que
representen distintas épocas, ámbitos geográficos, etc., definidos biunívocamente
respecto al campo [CABECERA] \ { ROTULO_IDENTIFICACION \ } del registro ~V.
Cuando haya más de un precio se asignarán secuencialmente a cada rótulo definido;
si hay más rótulos que precios, se asignará a aquellos el último precio definido.
FECHA: Fecha de la última actualización del precio. Cuando haya más de una fecha
se asignarán secuencialmente a cada precio definido, si hay más precios que fechas,
los precios sin su correspondiente fecha tomarán la última fecha definida.
1. Prefijo que forma una máscara indicando sobre qué elementos se aplica el
porcentaje. Si el prefijo es nulo, el porcentaje se aplica a todas las líneas
anteriores.
Ejemplo: LD%N0001
Esta línea representa un porcentaje del 0.03 por uno (3%) de todas las líneas
anteriores a la actual, incluso porcentajes, cuyo código comience por L y cuyo
~T | CODIGO_CONCEPTO | TEXTO_DESCRIPTIVO |
~P | CODIGO_FAMILIA | DESCRIPCION_PARAMÉTRICA |
~P | | DESCRIPCION_PARAMÉTRICA | NOMBRE.DLL |
Este registro contiene las diferentes secciones y textos del pliego de condiciones de
un concepto. El pliego de condiciones se estructura de forma jerárquica con el
Sistema de Clasificación por Codificación y de forma facetada en varias secciones de
distinto contenido.
~L | | { CODIGO_SECCION_PLIEGO \ ROTULO_SECCION_PLIEGO \ } |
\COM\ COMPONENTES
\NOR\ NORMATIVA
\MAN\ MANTENIMIENTO
\VAR\ VARIOS \ |
El pliego de condiciones de cada concepto estará dividido con caracteres '\' en varias
secciones o facetas, pensadas para imprimirse juntas o por separado.
Los fines de línea de cada sección del pliego se tratarán como en el REGISTRO TIPO
TEXTO.
~W | { ABREV_AMBITO \ AMBITO \ } |
\ { FAX; } \ { PERSONA_CONTACTO; } \ } |
CODIGO_ENTIDAD: código del SCc que define a la entidad (empresa, organismo, etc.).
C central.
D delegación.
R representante.
FAX: Números de fax de la entidad, con las mismas especificaciones que el campo
anterior.
Así una Base de Datos ( BD ) podrá contener CONCEPTOS genéricos de una BDG,
CONCEPTOS referentes a productos comerciales de una BDE, o ambas a la vez.
~O | CODIGO_RAIZ_BD # CODIGO_CONCEPTO | |
Estos datos podrían emplearse en otras utilidades, como el cálculo de los coeficientes
de transmisión térmica, aislamiento acústico, etc.
~X | | { CODIGO_IT \ DESCRIPCION_IT \ UM \ } |
UM: En el caso que los valores de la información Técnica sean valores numéricos, se
indicará su Unidad de Medida, de acuerdo con el Sistema Internacional de Unidades
de Medida.
~K | DN \ DD \ DS \ DR \ DI \ DP \ DC \ DM | CI |
concepto.
concepto.
por su precio.
TIPO: Indica el tipo de línea de medición de que se trate. Usualmente este subcampo
estará vacío. Los tipos establecidos en esta versión son:
Subtotal parcial: En esta línea aparecerá el subtotal de las líneas anteriores desde
~A | CODIGO_CONCEPTO | { CLAVE_TESAURO \ } |
~B | CODIGO_CONCEPTO | CODIGO_NUEVO |
~T | CODIGO_CONCEPTO | TEXTO_DESCRIPTIVO |
~P | CODIGO_FAMILIA | DESCRIPCION_PARAMÉTRICA |
~P | | DESCRIPCION_PARAMÉTRICA | NOMBRE.DLL |
~L | | { CODIGO_SECCION_PLIEGO \ ROTULO_SECCION_PLIEGO \ } |
~L | CODIGO_CONCEPTO |
{CODIGO_SECCION_PLIEGO \TEXTO_SECCION_PLIEGO \ } |
~W | { ABREV_AMBITO \ AMBITO \ } |
~X | | { CODIGO_IT \ DESCRIPCION_IT \ UM \ } |
~K | DN \ DD \ DS \ DR \ DI \ DP \ DC \ DM | CIE |
~A | CODIGO_CONCEPTO | { CLAVE_TESAURO \ } |
~B | CODIGO_CONCEPTO | CODIGO_NUEVO |
Cualquier variable de la 'A' a la 'Z' tanto numérica (%) como alfanumérica ($) se puede
definir o redefinir con cualquier número de dimensiones para ser utilizada
posteriormente en expresiones.
Se definen las constantes de la 'a' a la 'z' con los valores numéricos del 1 al 26
respectivamente, para permitir referenciar los parámetros de forma nemotécnica. Para
la utilización de otro tipo de caracteres, se determinará en el texto de la opción del
parámetro seleccionado el carácter de sustitución que se desea utilizar, anteponiéndole
un carácter especial ' ! ' .Si dicho carácter no existe la sustitución se realiza
relacionando el carácter con la posición que ocupa.
Las variables numéricas deben permitir valores reales en coma flotante de doble
precisión (64bits) y las variables alfanuméricas deben poder almacenar textos de
cualquier tamaño.
Las variables %E y $E son especiales para devolver errores producidos por selecciones
de parámetros no coherentes. En una evaluación secuencial de expresiones, si en una
expresión la variable %E adopta un valor distinto de 0, ha habido algún error, se
interrumpe la evaluación de expresiones y se presenta el contenido de la variable $E
donde se almacena el texto del error producido.
Los parámetros definidos, hasta 4, se irán asignando a las variables ABCD en el orden
que se encuentren.
SENTENCIA DE COMENTARIO:
SENTENCIA DE SUSTITUCION:
. Acaba en un operador
<expresión numérica>:
Son aquellas que dan como resultado un número en función de constantes y variables
numéricas, expresiones lógicas, funciones y operadores.
<expresión alfanumérica>:
Son aquellas que dan como resultada un texto en función de constantes y variables
alfanuméricas, operadores y funciones numéricas.
<expresiones lógicas>:
Son aquellas que dan como resultado VERDADERO o FALSO. En expresiones numéricas
el verdadero se considera como 1 y el falso como 0, en alfanuméricas el falso se
considera suprimir texto.
$I = "blanco"*(%C=c) + "negro"*(%C=d)
<texto de sustitución>:
Variables predefinidas:
# Comentarios (el texto comprendido entre este carácter y el siguiente final de línea
exclusive, no se tiene en cuenta)
, Separador de datos
: DEFINICIÓN de rendimiento
:: DEFINICIÓN de precio
+ Suma
- Resta
* Multiplicación
/ División
^ Operador elevado a
@ Operador lógico O
< Menor
> Mayor
= Igual
<> Diferente
! Operador lógico NO
Si una línea acaba sin haber cerrado las comillas '"' o delimitador '\', se considerará
que sigue en la línea siguiente. Los caracteres fin de línea (ASCII-13 + ASCII-10)
contenidos en las descripciones paramétricas se mantendrán al reformatear.
Cada vez que el operador define un parámetro, el sistema evaluará todas las
sentencias posibles y en las sentencias del tipo: %E= ...., función de parámetros
Si todos los parámetros menos uno son conocidos, se irá dando valores al parámetro
desconocido y evaluando la expresión hasta recorrer todos los valores válidos del
parámetro. De alguna forma, el sistema "marcará" los valores que producen ERROR
del parámetro estudiado en la pantalla de selección, para ayudar al operador a
seleccionar las combinaciones correctas.
Cada vez que se defina o redefina un parámetro el sistema actualizará todos los
valores marcados en pantalla, por ejemplo pondrá en "medio brillo" los ROTULOs de
las opciones cuya selección no sería compatible con los parámetros seleccionados
previamente.
Eliminar desde el carácter '#' inclusive hasta el siguiente cambio de línea exclusive.
Eliminar caracteres ' ' (32) delante y detrás de los caracteres '\'
Unir líneas, eliminando el fin de línea, en líneas que comienzan con '\' y no acaban
con '\', que terminan con un operador y en la separación de datos de una variable
matricial.
Eliminar todos los caracteres ' ' (32) en zonas no entrecomilladas ("...") o delimitadas
(\...\)
Si la sentencia comienza con '\' leer el ROTULO hasta el siguiente '\', si el ROTULO
es:
TEXTO ó T- Palabra o carácter reservado que identifica el siguiente ROTULO entre '\'
como el texto de sustitución del texto descriptivo del concepto.
Si la sentencia comienza con '::' el resto de la misma debe ser una expresión
numérica indicadora del Precio, sólo en familias de conceptos simples (sin
descomposición) y sólo puede haber una sentencia de este tipo.
Si la sentencia comienza con '%:' el resto de la misma debe ser una expresión
[ :: expresión_precio (13)(10) ]
27 de febrero de 1997
Introducción
Debido a la necesidad expuesta por los desarrolladores de bases de datos
paramétricas de ampliar las posibilidades del lenguaje de descripción paramétrica,
Es decir; es posible construir una base de datos que cumpla este API utilizando para
ello cualquier lenguaje de programación que permita desarrollar librerías de enlace
dinámico Windows (DLL). Asimismo, es posible construir un programa que lea
cualquier base de datos de estas características utilizando lenguajes de aplicaciones
para Windows.
Una base de datos que se desee distribuir con las definiciones paramétricas
compiladas en DLL, debe contener los siguientes archivos:
base.dll En este archivo, único para cada base de datos y de nombre cualquiera pero
extensión ‘..DLL’, se encuentran las funciones del API que la base de datos
ofrece a las aplicaciones para que éstas obtengan la información que
contiene la base.
~P|ABCD12$| |
~P| | | BASE.DLL |
Para que los programas puedan determinar si una base de datos responde a uno u
otro modelo, se ha definido la función BdcCodificacion(), que se especifica más
adelante y que indica si el sistema de codificación usado en la base de datos es
dependiente o independiente.
);
Propósito
Parámetros
h: Identificador (HANDLE) del concepto paramétrico, que debe ser obtenido en una
llamada anterior a la función BdcLee().
Valor devuelto
Devuelve el texto del pliego del derivado paramétrico en el formato solicitado, como
puntero constante 'far' a una cadena de caracteres. La propia función es responsable
de asignar memoria al puntero. Si no existe definido un texto de pliego, la función
devuelve la cadena vacía " ". En caso de error (por ejemplo, de formato no soportado
por la BDC), la función devuelve NULL. Para obtener más información sobre el error
producido, llame a la función BdcError ().
#define BDCFMT_ASCII 0
#define BDCFMT_RTF 1
Para que dicha función actúe, el registro ~C debe contener el caracter especial *
dentro del campo unidad de medida. Dicho caracter indica que la unidad de medida
de los conceptos derivados los debe proporcionar el API.
);
Propósito
Parámetros
h: Identificador (HANDLE) del concepto paramétrico, que debe ser obtenido en una
llamada anterior a la función BdcLee().
Valor devuelto
Funciones generales
LONG EXPORTA BdcCodificacion ( VOID );
Propósito
Valor devuelto
Propósito
Valor devuelto
Propósito
Parámetros
par:Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo ‘n’ el número de
parámetros del concepto paramétrico global.
Valor devuelto
Propósito
Parámetros
par:Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo ‘n’ el número de
parámetros del concepto paramétrico global.
Valor devuelto
Devuelve el rótulo que identifica el parámetro ‘par’ del concepto, como puntero
Propósito
Obtiene el rótulo que identifica la opción ‘opc’ del parámetro ‘par’ del concepto.
Parámetros
par:Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo ‘n’ el número de
parámetros del concepto paramétrico global.
opc:Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo ‘n’ el número de
opciones que posee el parámetro ‘par’ del concepto paramétrico global.
Valor devuelto
Devuelve el rótulo que identifica la opción ‘opc’ del parámetro ‘par’ del concepto, como
puntero constante ‘far’ a una cadena de caracteres. La propia función es responsable
de asignar memoria al puntero. En caso de error, la función devuelve NULL. Para
obtener más información sobre el error producido, llame a la función BdcGloError().
Propósito
Obtiene el tipo de error producido. Una vez leído, se inicializa el código de error.
Parámetros
Valor devuelto
Propósito
opcl:Puntero a un array de LONGs con las opciones que se desea fijar a cada
parámetro. Las opciones se numeran empezando por cero.
Valor devuelto
Devuelve ‘0’ si se ejecuta correctamente. En caso de error, devuelve ‘-1’. Para obtener
más información sobre el error producido, llame a la función BdcGloError().
Propósito
Parámetros
cod:Puntero constante ‘far’ a una cadena de caracteres con el código del concepto
paramétrico a leer. Si se utiliza un modelo de codificación dependiente, se asume
que dicho código tenga 7 caracteres y que el séptimo sea ‘$’. Dentro del código, los
caracteres pueden ser cualesquiera salvo el 0x00 (que indica el final del código).
Valor devuelto
Propósito
Parámetros
cod:Puntero constante ‘far’ a una cadena de caracteres con el código del concepto del
que se desea obtener el concepto paramétrico a la que pertenece. Dentro del código,
los caracteres pueden ser cualesquiera salvo el 0x00 (que indica el final del código).
Propósito
Parámetros
h:Identificador (HANDLE) del concepto, que debe ser obtenido en una llamada anterior
a la función BdcLee().
Valor devuelto
Propósito
Parámetros
h:Identificador (HANDLE) del concepto paramétrico, que debe ser obtenido en una
llamada anterior a la función BdcLee().
Valor devuelto
Propósito
h:Identificador (HANDLE) del concepto paramétrico, que debe ser obtenido en una
llamada anterior a la función BdcLee().
par:Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo ‘n’ el número de
parámetros del concepto.
Valor devuelto
Propósito
Parámetros
h:Identificador (HANDLE) del concepto paramétrico, que debe ser obtenido en una
llamada anterior a la función BdcLee().
par:Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo ‘n’ el número de
parámetros del concepto.
Valor devuelto
Devuelve el rótulo que identifica el parámetro ‘par’ del concepto, como puntero
constante ‘far’ a una cadena de caracteres. La propia función es responsable de
asignar memoria al puntero. En caso de error, la función devuelve NULL. Para
obtener más información sobre el error producido, llame a la función BdcError().
Propósito
Obtiene rótulo que identifica la opción ‘opc’ del parámetro ‘par’ del concepto.
Parámetros
h:Identificador (HANDLE) del concepto paramétrico, que debe ser obtenido en una
llamada anterior a la función BdcLee().
par:Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo ‘n’ el número de
parámetros del concepto.
opc:Número del parámetro. Debe ser un valor entre ‘0’ y ‘n-1’, siendo ‘n’ el número de
opciones que posee el parámetro ‘par’ del concepto.
Devuelve el rótulo que identifica la opción ‘opc’ del parámetro ‘par’ del concepto, como
puntero constante ‘far’ a una cadena de caracteres. La propia función es responsable
de asignar memoria al puntero. En caso de error, la función devuelve NULL. Para
obtener más información sobre el error producido, llame a la función BdcError().
Obtención de un comentario
Propósito
Parámetros
h:Identificador (HANDLE) del concepto paramétrico, que debe ser obtenido en una
llamada anterior a la función BdcLee().
Valor devuelto
Devuelve el comentario del concepto, como puntero constante ‘far’ a una cadena de
caracteres. La propia función es responsable de asignar memoria al puntero. En caso
de error, la función devuelve NULL. Para obtener más información sobre el error
producido, llame a la función BdcError().
Propósito
Parámetros
h:Identificador (HANDLE) del concepto paramétrico, que debe ser obtenido en una
llamada anterior a la función BdcLee().
opcl:Puntero a un array de LONGs con las opciones que se desea fijar a cada
parámetro. Las opciones se numeran empezando por cero.
Valor devuelto
Propósito
h:Identificador (HANDLE) del concepto paramétrico, que debe ser obtenido en una
llamada anterior a la función BdcLee().
opcl:Puntero a un array de LONGs con las opciones que se desea fijar a cada
parámetro. Las opciones se numeran empezando por cero.
Valor devuelto
Liberación de memoria
Propósito
Parámetros
h:Identificador (HANDLE) del concepto paramétrico, que debe ser obtenido en una
llamada anterior a la función BdcLee().
Valor devuelto
Propósito
Parámetros
h:Identificador (HANDLE) del concepto paramétrico, que debe ser obtenido en una
llamada anterior a la función BdcLee().
Valor devuelto
Propósito
Parámetros
h:Identificador (HANDLE) del concepto paramétrico, que debe ser obtenido en una
llamada anterior a la función BdcLee().
Valor devuelto
Propósito
Parámetros
h:Identificador (HANDLE) del concepto paramétrico, que debe ser obtenido en una
llamada anterior a la función BdcLee().
Valor devuelto
Propósito
Parámetros
h:Identificador (HANDLE) del concepto paramétrico, que debe ser obtenido en una
llamada anterior a la función BdcLee().
*pre:Puntero en el que devolver el precio unitario. Dicho precio puede ser positivo,
cero o negativo.
Valor devuelto
Propósito
Parámetros
h:Identificador (HANDLE) del concepto paramétrico, que debe ser obtenido en una
llamada anterior a la función BdcLee().
Valor devuelto
Devuelve el código del concepto, como puntero constante ‘far’ a una cadena de
caracteres. Si se ha calculado un derivado paramétrico (se ha llamado a BdcCalcula),
este código será el del derivado paramétrico. En caso contrario, será el código del
concepto paramétrico. La propia función es responsable de asignar memoria al
puntero. En caso de error, la función devuelve NULL. Para obtener más información
sobre el error producido, llame a la función BdcError().
Propósito
Parámetros
h:Identificador (HANDLE) del concepto paramétrico, que debe ser obtenido en una
llamada anterior a la función BdcLee().
Valor devuelto
Devuelve el texto resumido del derivado paramétrico, como puntero constante ‘far’ a
una cadena de caracteres. La propia función es responsable de asignar memoria al
puntero. Si no existe definido un texto resumido, la función devuelve la cadena vacía
“”. En caso de error, la función devuelve NULL. Para obtener más información sobre el
error producido, llame a la función BdcError().
Parámetros
h:Identificador (HANDLE) del concepto paramétrico, que debe ser obtenido en una
llamada anterior a la función BdcLee().
Valor devuelto
Propósito
Parámetros
h:Identificador (HANDLE) del concepto paramétrico, que debe ser obtenido en una
llamada anterior a la función BdcLee().
Valor devuelto
Devuelve el texto del pliego del derivado paramétrico, como puntero constante ‘far’ a
una cadena de caracteres. La propia función es responsable de asignar memoria al
puntero. Si no existe definido un texto de pliego, la función devuelve la cadena vacía
“”.. En caso de error, la función devuelve NULL. Para obtener más información sobre
el error producido, llame a la función BdcError().
Propósito
Parámetros
h:Identificador (HANDLE) del concepto paramétrico, que debe ser obtenido en una
llamada anterior a la función BdcLee().
Valor devuelto
Devuelve las claves de tesauro del derivado paramétrico, como puntero constante ‘far’
a una cadena de caracteres, con el mismo formato que el registro ‘~A’, es decir,
‘{CLAVE_TESAURO\}’. La propia función es responsable de asignar memoria al
puntero. Si no existen definidas claves del tesauro, la función devuelve la cadena
vacía “”. En caso de error, la función devuelve NULL. Para obtener más información
sobre el error producido, llame a la función BdcError().
Los códigos de error se almacenan en un LONG (entero de 32 bits) de manera que cada
error corresponde a un bit. De esta forma, es posible definir hasta 32 códigos de error
que pueden producirse de forma aislada o conjunta. Las llamadas a las funciones
BdcGloError() y BdcError() eliminan los códigos de error producidos anteriormente. Por
ejemplo, para saber si un determinado error se ha producido con el concepto ‘Concepto’,
se debe utilizar la sintaxis
Para distribuir la base datos que se construyera con este ejemplo, se deberían
proporcionar los siguientes archivos:
~P| | | BASE.DLL |
~P| ABPH.1$ | |
~P| SBRG.1$ | |
~P| EADR.3$ | |
Este ejemplo está preparado para compilarse con Microsoft Visual C++ versión 2.2 o
posterior como DLL de 32 bits. Sin apenas modificaciones, sería posible compilarlo como
DLL de 16 bits o utilizar el compilador Borland C++.
Archivo ‘base.h’
#define BASE
#include "Fiebdc.h"
#define PAR par.parametro
#define PRE par.precio
#define DES par.descompuesto
#define RES par.resumen
#define TEX par.texto
#define STRICT
#include <windows.h>
#include <string.h>
#include "Base.h"
Cfiebdc *Cglobal;
/////////////////////////////////////////////////////////////////////////////
// FUNCIONES GENERALES Y DE INICIALIZACIÓN
BOOL APIENTRY
DllMain ( // Específico de Microsoft. Borland utiliza ‘DllEntryPoint’
HANDLE hModule,
DWORD tipo_llamada,
LPVOID lpReserved )
{
switch (tipo_llamada) {
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
// Inicialización
Cglobal = new Cfiebdc;
Global (*Cglobal, LEE);
Cglobal->funcion = &Global;
break;
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
// Liberación
Cglobal->inicializa (BORRA);
Cglobal->Cfiebdc::~Cfiebdc();
}
return TRUE;
}
LONG EXPORTA
BdcCodificacion (VOID)
{
return 1; // La codificación es indipendiente de los valores de los parámetros
}
/////////////////////////////////////////////////////////////////////////////
// FUNCIONES REFERENTES AL PARAMÉTRICO GLOBAL
// Obtención de sus parámetros
LONG EXPORTA
BdcGloParNumero (VOID)
{
return BdcParNumero (Cglobal);
}
#define STRICT
#include <windows.h>
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#include <math.h>
#include "Base.h"
Cfiebdc::Cfiebdc (void) {
int i,j;
estado (ST_VACIO);
coderr =BDCERR_CORRECTO;
// parámetros y opciones por parámetro
for (i=0; i<MAX_PARAM; i++) {
parrot[i] = (char *)0;
opcrot[i] = (char **)0;
}
parnum=0;
pre=0.;
// sinónimos
for (j=0; j<2; j++) {
codsin[j]= (char **)0;
}
sinnum=0;
// descomposición
desren = (double *)0;
descod = (char **)0;
desnum=0;
// textos
#define STRICT
#include <windows.h>
#include <stdio.h>
#include <stdarg.h>
#include <math.h>
#include "Base.h"
//////////////////////////////////////////////////////////////////////////////
// Concepto Global
//
short Global (Cfiebdc &par, short operacion) {
INI (operacion);
switch (operacion) {
case LEE:
PAR ("ÁMBITO","España","Madrid","Barcelona","Valencia","Bilbao","Sevilla"
return TRUE;
}
return TRUE;
}
//////////////////////////////////////////////////////////////////////////////
// Conceptos
//
short fABPH_1 (Cfiebdc &par, short operacion) {
INI (operacion);
COD ("ABPH.1$");
switch (operacion) {
case LEE:
PAR ("RESISTENCIA", "H-50", "H-100", "H-125", "H-150", "H-175", "");
PAR ("CONSISTENCIA", "plástica", "blanda", "");
PAR ("Tmax", "18", "38", "78", "");
return TRUE;
case CALCULA:
case VALIDA:
// plástica H50 H100 H125 H150 H175
double T[2][3][5] ={ .180, .255, .290, .330, .365, //18
.160, .225, .260, .290, ..325, //3
.140, .200, .225, .255, ..285, //7
// blanda
.210, .290, .330, .375, ..000,
.185, .260, .300, .335, ..375,
.165, .235, .265, .300, ..335 };
if (!T[B][C][A]) return ERR ("Combinación no permitida");
if (operacion == VALIDA) return TRUE;
double U[2][3]= { .180, .160, .140,
.205, .185, .165 };
double V[2][3][5]= { .695, .675, .665, .650, .640,
.720, .700, .690, .680, ..670,
.740, .725, .720, .710, ..700,
.665, .640, .630, .615, ..0,
.690, .670, .665, .645, ..635,
.715, .695, .685, .775, ..665 };
DES (T[B][C][A], "SBAC.5ccaa"); // Cemento
DES (U[B][C], "SBAA.1a"); // Agua
DES (V[B][C][A], "SBRA.5ab"); // Arena
LIBRARY BASE
DESCRIPTION 'Formato Fiebdc-3/98. Ejemplo de Definiciones paramétricas'
CODE PRELOAD MOVEABLE DISCARDABLE
DATA PRELOAD SINGLE
HEAPSIZE 1024
EXPORTS
BdcCodificacion
BdcGloParNumero
BdcGloOpcNumero
BdcGloParRotulo
BdcGloOpcRotulo
BdcGloCalcula
BdcGloError
BdcLee
BdcDecodifica
BdcParNumero
BdcOpcNumero
BdcParRotulo
BdcOpcRotulo
BdcComentario
BdcValida
BdcCalcula
BdcCierra
BdcDesNumero
BdcDesCodigo
BdcRendimiento
BdcPrecio
BdcCodigo
BdcResumen
BdcTexto
BdcPliego
BdcClaves
BdcError
Aplicación ejemplo: programa.exe
Esta sencilla aplicación, lee los conceptos que se incluyen en el propio fuente de la base
BASE.DLL (en una aplicación real, los conceptos se definen en los registros ~P de base.
bc3), y escribe en el archivo 'SALIDA.TXT' los rótulos de todos sus parámetros así como
todos los datos de todas sus combinaciones paramétricas.
Este ejemplo está preparado para compilarse con Microsoft Visual C++ versión 2.2 o
posterior como aplicación Windows 95 de 32 bits en modo consola. Sin apenas
modificaciones, sería posible compilarlo como aplicación de 16 bits o utilizar el
programa.cPrograma ejemplo.
Archivo ‘programa.h’
#include "Fiebdc.h"
#define CORRECTO 0
#define ERRONEO -1
BDCGLOPARNUMERO pGloParNumero;
BDCGLOOPCNUMERO pGloOpcNumero;
BDCGLOPARROTULO pGloParRotulo;
BDCGLOOPCROTULO pGloOpcRotulo;
BDCGLOCALCULA pGloCalcula;
BDCGLOERROR pGloError;
BDCLEE pLee;
BDCDECODIFICA pDecodifica;
BDCPARNUMERO pParNumero;
BDCOPCNUMERO pOpcNumero;
BDCPARROTULO pParRotulo;
BDCOPCROTULO pOpcRotulo;
BDCVALIDA pValida;
BDCCALCULA pCalcula;
BDCCIERRA pCierra;
BDCDESNUMERO pDesNumero;
BDCDESCODIGO pDesCodigo;
BDCRENDIMIENTO pRendimiento;
BDCPRECIO pPrecio;
BDCCODIGO pCodigo;
BDCRESUMEN pResumen;
BDCTEXTO pTexto;
BDCPLIEGO pPliego;
BDCCOMENTARIO pComentario;
BDCCLAVES pClaves;
BDCERROR pError;
BOOL AbreDll (char *nDll, HINSTANCE *hDll, char **Err);
BOOL CierraDll (HMODULE hDll, char **Err);
BOOL ChequeaError (HANDLE Precio, FILE *f, BOOL EsGlobal);
Archivo ‘program0’
#define STRICT
#include <windows.h>
#include <stdio.h>
#include "programa.h"
BOOL
AbreDll (
char *nDll,
HINSTANCE *hDll,
#define STRICT
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include "programa.h"
int main (void) {
HANDLE Precio=(HANDLE)0, PrecioTmp=(HANDLE)0;
HINSTANCE hLib=(HINSTANCE)0;
FILE *fSalida;
char *err, codigo[20];
const char *texto;
char *Precios [] = {"ABPH.1$", "SBRG.1$", "EADR.3$", "NoExiste"};
int nPrecios = 4;
int i,j,k;
long limite,nParGlobales=0,ListaOpcGlobales[20];
long nPar,nOpc[20],ListaOpc[20],ListaOpc2[20];
double numero;
printf ("\nEJEMPLO DE PROGRAMA QUE ACCEDE A LA BASE \"BASE.DLL\"\n");
printf ("LOS RESULTADOS SE ESCRIBEN EN EL ARCHIVO \"SALIDA.TXT\"\n");
if ( !(fSalida = fopen ("SALIDA.TXT", "wt")) ) {
printf ("\nERROR: Imposible crear el archivo de salida\n");
printf ("\n\nPROGRAMA FINALIZADO\nPulse una tecla\n");
getch();
FORMATO FIEBDC-3:
La única limitación de tamaño de cada archivo será la máxima que permita el soporte
físico utilizado para su transporte. Si se utiliza algún tipo de compresor de archivos, se
deberá incluir en el mismo soporte el descompresor o utilizar un formato
autodescomprimible.
El juego de caracteres a emplear en los campos código será el definido por MS-DOS 6.0,
incluyendo < . > (ASCII-46), < $ > (ASCII-36), < # > (ASCII-35), < %> (ASCII-37), < & >
(ASCII-38), < _ > (ASCII-95).
El fin de línea será el estándar de los archivos MS-DOS (ASCII-13 y ASCII-10). El fin de
archivo se marcará según el mismo estándar (ASCII-26). El único carácter de control
adicional que se permitirá será el tabulador (ASCII-9).
Cada registro estará compuesto de campos separados por caracteres < | > (ASCII-124).
Cada campo estará compuesto de subcampos separados por caracteres < \ > (ASCII-92).
El separador final, entre el último dato de un campo y el fin de campo es opcional.
El primer campo de cada registro es la cabecera de registro, una letra mayúscula que
identifica el tipo de registro.
Se ignorarán los caracteres blancos (32), tabuladores (9) y de fin de línea (13 y 10),
delante de los separadores < ~ >, < | > y < \ >.
Los campos vacíos se considerarán SIN INFORMACIÓN, no con información nula, esto
permite producir archivos de actualización que contengan únicamente la información
en alguno de sus campos y, por supuesto, el CÓDIGO de referencia.
CONVENIOS DE NOTACIÓN
Todos los valores numéricos irán sin separadores de miles y con el carácter
punto '.' entre la parte entera y la decimal.
| CURVA_PRECIO_SIMPLE | CURVA_PRECIO_COMPUESTO |
CODIGO: CODIGO del concepto descrito. Un concepto puede tener varios CODIGOs
que actuarán como sinónimos, este mecanismo permite integrar distintos
sistemas de clasificación.
Para distinguir el concepto tipo raíz de un archivo, así como los conceptos tipo
capítulo, se ampliará su CODIGO con los caracteres '##' y '#' respectivamente;
quedando dicha notación reflejada obligatoriamente en el registro tipo ~C, siendo
opcional en los restantes registros del mismo concepto.
Únicamente puede haber un concepto raíz en una base de datos u obra, siendo
obligatorio que figure.
PRECIO: Precio del concepto. Un concepto puede tener varios precios alternativos que
representen distintas épocas, ámbitos geográficos, etc.
FECHA: Fecha de la última actualización del precio. Cuando haya más de una fecha
se asignarán secuencialmente a cada precio definido, si hay más precios que fechas,
los precios sin su correspondiente fecha tomarán la última fecha definida.
Las fechas se definirán en el formato DDMMAA; DD representa el día con dos dígitos,
MM el mes y AA el año, si la fecha tiene menos de 5 dígitos representa mes y año
únicamente, si tiene menos de tres, solo el año. Si se identifica la fecha con un
número impar de dígitos, se completará con el carácter cero por la izquierda.
1. Prefijo que forma una máscara indicando sobre qué elementos se aplica el
porcentaje. Si el prefijo es nulo, el porcentaje se aplica a todas las líneas
anteriores.
Ejemplo: LD%N0001
El rendimiento será el porcentaje que se aplica sobre las líneas anteriores a la actual
y que queden afectadas por la máscara.
~T |CODIGO_CONCEPTO |TEXTO_DESCRIPTIVO |
~P |CODIGO_FAMILIA |DESCRIPCION_PARAMÉTRICA |
El registro tipo pliego puede adoptar dos formas, cuando el primer campo está vacío, el
registro definirá los CÓDIGOS de cada pliego y sus RÓTULOS correspondientes. Este
registro es único para una base de datos u obra.
CODIGO_SECCION_ PLIEGO- CODIGO que define cada SECCION o faceta del pliego.
~L | CODIGO_CONCEPTO | { \CODIGO_SECCION_PLIEGO
\ TEXTO_SECCION_PLIEGO \} |
El pliego de condiciones de cada concepto estará dividido con caracteres '\' en varias
secciones o facetas, pensadas para imprimirse juntas o por separado.
Los fines de línea de cada SECCION del pliego se tratarán como en el REGISTRO TIPO
TEXTO.
\COM\ COMPONENTES
\NOR\ NORMATIVA
\MAN\ MANTENIMIENTO
\VAR\ VARIOS \ |
\ { ABREV_AMBITO; } \ } |
~W | { ABREV_AMBITO \ AMBITO \ } |
Para archivos tipo ráster (mapa de bits): de extensión .BMP, .PCX : Windows 3.1
\ { FAX; } \ { PERSONA_CONTACTO; } \ } |
CODIGO_ENTIDAD: código del SCc que define a la entidad (empresa, organismo, etc.).
C central.
D delegación.
R representante.
FAX: fax de la empresa, con las mismas especificaciones que el campo anterior.
DP :Decimales del importe resultante del sumatorio de los costes directos del
concepto.
TIPO: Indica el tipo de línea de medición de que se trate. Usualmente este subcampo
estará vacío. Los tipos establecidos en esta versión son:
Subtotal parcial: En esta línea aparecerá el subtotal de las líneas anteriores desde
el último subtotal hasta la línea inmediatamente anterior a ésta.
~A | CODIGO_CONCEPTO | { CLAVE_TESAURO \} |
~B |CODIGO_CONCEPTO | CODIGO_NUEVO |
~T | CODIGO_CONCEPTO | TEXTO_DESCRIPTIVO |
~P | CODIGO_FAMILIA | DESCRIPCION_PARAMÉTRICA |
~L | | { \CODIGO_SECCION_PLIEGO \ ROTULO_SECCION_PLIEGO }|
~L | CODIGO_CONCEPTO | { \CODIGO_SECCION_PLIEGO \
TEXTO_SECCION_PLIEGO \} |
~W | { ABREV_AMBITO \ AMBITO \ } |
~K | DN \ DD \ DS \ DR \ DI \ DP \ DC \ DM | CIE |
~A | CODIGO_CONCEPTO | { CLAVE_TESAURO \} |
~B |CODIGO_CONCEPTO | CODIGO_NUEVO |
Cualquier variable de la 'A' a la 'Z' tanto numérica (%) como alfanumérica ($) se puede
definir o redefinir con cualquier número de dimensiones para ser utilizada
posteriormente en expresiones.
Se definen las constantes de la 'a' a la 'z' con los valores numéricos del 1 al 26
respectivamente, para permitir referenciar los parámetros de forma nemotécnica. Para
la utilización de otro tipo de caracteres, se determinará en el texto de la opción del
parámetro seleccionado el carácter de sustitución que se desea utilizar, anteponiéndole
Ejemplo:
PBPO.2$ M3 Hormigón $B $A
Las variables numéricas deben permitir valores reales en coma flotante de doble
precisión (64bits) y las variables alfanuméricas deben poder almacenar textos de
cualquier tamaño.
Las variables %E y $E son especiales para devolver errores producidos por selecciones
de parámetros no coherentes. En una evaluación secuencial de expresiones, si en una
expresión la variable %E adopta un valor distinto de 0, ha habido algún error, se
interrumpe la evaluación de expresiones y se presenta el contenido de la variable $E
donde se almacena el texto del error producido.
Los parámetros definidos, hasta 4, se irán asignando a las variables ABCD en el orden
que se encuentren.
SENTENCIA DE COMENTARIO:
SENTENCIA DE SUSTITUCION:
acaba en un operador
Son aquellas que dan como resultado un número en función de constantes y variables
numéricas, expresiones lógicas, funciones y operadores.
<expresión alfanumérica>:
Son aquellas que dan como resultada un texto en función de constantes y variables
alfanuméricas, operadores y funciones numéricas.
<expresiones lógicas>:
Son aquellas que dan como resultado VERDADERO o FALSO, en expresiones numéricas
el verdadero se considera como 1 y el falso como 0, en alfanuméricas el falso se
considera suprimir texto.
$I = "blanco"*(%C=c) + "negro"*(%C=d)
<texto de sustitución>:
Variables predefinidas:
# - comentarios (el texto comprendido entre este carácter y el siguiente final de línea
exclusive, no se tiene en cuenta)
, - separador de datos
: - definición de rendimiento
:: - definición de precio
OPERADORES NUMÉRICOS
+-
*/
^ Operador elevado a
OPERADORES LÓGICOS
@ - Operador lógico O
= <>
! Operador lógico NO
ASIN(n), ACOS(n), ATAN(n) - Arco seno, arco coseno y arco tangente (gs)
Si una línea acaba sin haber cerrado las comillas '"' o delimitador '\', se considerará
que sigue en la línea siguiente. Los caracteres fin de línea (ASCII-13 + ASCII-10)
contenidos en las descripciones paramétricas se mantendrán al reformatear.
Cada vez que el operador define un parámetro, el sistema evaluará todas las
sentencias posibles y en las sentencias del tipo:
Si todos los parámetros menos uno son conocidos, se irá dando valores al parámetro
desconocido y evaluando la expresión hasta recorrer todos los valores válidos del
parámetro. De alguna forma, el sistema "marcará" los valores que producen ERROR
del parámetro estudiado en la pantalla de selección, para ayudar al operador a
seleccionar las combinaciones correctas.
Cada vez que se defina o redefina un parámetro el sistema actualizará todos los
valores marcados en pantalla, por ejemplo pondrá en "medio brillo" los ROTULOs de
las opciones cuya selección no sería compatible con los parámetros seleccionados
previamente.
Eliminar desde el carácter '#' inclusive hasta el siguiente cambio de línea exclusive.
Eliminar caracteres ' ' (32) delante y detrás de los caracteres '\'
Unir líneas, eliminando el fin de línea, en líneas que comienzan con '\' y no acaban
con '\', que terminan con un operador y en la separación de datos de una variable
matricial.
Eliminar todos los caracteres ' ' (32) en zonas no entrecomilladas ("...") o delimitadas
(\...\)
Si la sentencia comienza con '\' leer el ROTULO hasta el siguiente '\', si el ROTULO
es:
TEXTO ó T- Palabra o carácter reservado que identifica el siguiente ROTULO entre '\'
como el texto de sustitución del texto descriptivo del concepto.
Si la sentencia comienza con '::' el resto de la misma debe ser una expresión
numérica indicadora del Precio, sólo en familias de conceptos simples (sin
descomposición) y sólo puede haber una sentencia de este tipo.
Si la sentencia comienza con '%:' el resto de la misma debe ser una expresión
numérica indicadora del Porcentaje de Medios Auxiliares, sólo puede haber una
sentencia de este tipo.
[ :: expresión_precio (13)(10) ]
Esta especificación ha sido sustituida por una versión más completa del estándar, que
se detalla en el tema Formato de intercambio estándar. Pertenecía a las empresas
fabricantes de software ARKTEC, FHECOR, MICROGESA, SOFT, STAR y TOOL, que lo
ponen a libre disposición de usuarios y empresas, con la única condición de que
cualquier implementación informática de la presente Norma, debe recogen tanto la
entrada como la salida de datos.
Características generales
La información de los distintos conceptos de agrupará en archivos, uno o varios de
cada tipo, sin que la capacidad de ningún archivo exceda la capacidad de un disco de
doble cara y doble densidad (aprox. 360k).
Con carácter general, los nombres de los archivos tendrán los tres primeros
caracteres del nombre fijos, dependiendo del concepto; los cinco siguientes, de libre
designación por la empresa creadora, para cuando sea necesario diferenciar archivos
del mismo tipo, de forma libre pero con la condición de que ordenados los archivos
alfabéticamente, el orden obtenido sea congruente con la información que contienen.
La extensión del nombre de archivo tendrá tres caracteres, los dos primeros de libre
designación, definiendo la empresa creadora, y el tercero, un dígito numérico: el
último dígito del año en curso. Ejemplo:
Tipo de archivo: Descompuesto
Número de orden: 1
Empresa: XX
Año: 1.996DES001.XX6
Se usará como separador el carácter ASCII 124 “|”, pero no antes del primero ni
después del último campo.
Los textos en los archivos, irán sin ningún tipo de formateo (sin guiones y sin dividir
renglones), usando para caracteres especiales el código ASCII ampliado de IBM. No se
usará el separador 124 ni retorno de carro, ni nueva línea. Tampoco caracteres ASCII
inferiores al 31, inclusive.
Los precios en los archivos irán en pesetas; si hay céntimos, irán separados por un
punto decimal.
Archivos de precios
Los nombres de los archivos del archivo de precios de iniciarán con las tres letras
siguientes, dependiendo de su contenido:
MDOmano de obra
MAQmaquinaria
MATmateriales
AUXauxiliares
DESdescompuestos
siendo variable la longitud de cada campo y pudiendo llevar uno o varios precios.
El porcentaje, si 3es distinto de cero, representa un porcentaje (en tanto por ciento)
sobre el total de la partida.
1. Prefijo.- que forma una máscara indicando sobre qué elementos se aplica el
porcentaje. Si el prefijo es nulo, el porcentaje se aplica a todas las líneas
anteriores.
Ejemplo: OP%N0001
OP: Sobre todas la líneas anteriores cuyo código comience por OP.
%: Acumulable
N0001: Código
La CANTIDAD será el porcentaje en tanto por uno que se aplica sobre las líneas
anteriores a la actual y que queden afectadas por la máscara.
O%N0001 | 0.03
representa un porcentaje del 0.03 por 1 de todas las líneas anteriores a la actual,
cuyo código comience por O y cuyo texto estará en uno de los archivos de
elementales: mano de obra, maquinaria y materiales.
RECOMENDACIONES:
b/ Si la base de datos está organizada por capítulos se recomienda que cada capítulo
de unitarios o descompuestos figure en un archivo diferente.
Capítulos de la obra
Cada capítulo de la obra tendrá un archivo cuyos tres primeros dígitos sean “CAP”;
los restantes, según el criterio expuesto con carácter general.
La primera línea de archivo será el título de capítulo; las restantes, cada línea una
partida distinta con los siguientes campos:
ORDEN.- una sucesión de números separados por barra inclinada ‘/’ que representan
el capítulo, subcapítulo, apartado, sección, etc. según los niveles aceptados por cada
programa, sin ninguna limitación. Ejemplo:
2/8/13/4 significa capítulo 2, subcapítulo 8, apartado 13, partida 4 o los nombres que
cada implementación quiera darle.
UNIDAD, LONGITUD, LATITUD, ALTURA.- cuatro números reales con las mediciones.
Si alguna magnitud no existe, figurará un cero.
Archivos especiales
En cada archivo de precios o presupuestos podrá figurar un archivo ASCII con nombre
“versión” y las extensiones habituales, como por ejemplo: VERSION.XX6
En éste archivo podrá figurar cualquier comentario que se estime oportuno; entre
ellos podrán figurar títulos de los capítulos costes indirectos, beneficio industrial,
resumen de la obra, etc.
Decimales y Redondeos
**********************************
Definimos los costes indirectos como costes necesarios para la ejecución material de
una obra que no son imputables a unidades de obra determinadas. El porcentaje de
costes indirectos es único para fase de obra, pero puede cambiar del proyecto a
cualquiera de las certificaciones. Se define en ventana parámetros generales.
M edios auxiliares
Definimos los medios auxiliares como costes directos de pequeña cuantía para una
unidad de obra determinada y se incluyen en su descomposición en forma de
porcentaje para posibilitar su actualización. El porcentaje de medios auxiliares es
único para cada concepto que se descompone.
Rendimiento
(descompuesto)
amortizado
realizado
Precio
Coste
Definiremos el coste o coste total de una partida de obra, al precio o coste directo de
dicha partida, MÁS el porcentaje de costes indirectos aplicado ese coste directo.
Según la Ley de Contratos del Estado: "Se considerarán costes indirectos: los gastos
[...] Todos estos gastos, excepto aquellos que luzcan en el presupuesto valorados en
unidades de obra o en partidas alzadas, se cifrarán en un porcentaje de los costes
directos, igual para todas las unidades de obra [...]"
Cada obra tendrá un valor único de costes indirectos como porcentaje de costes
directos y aplicado al coste directo total de cada unidad de obra de la forma en que se
define a continuación.
Decimales y Redondeos
Para que los cálculos internos, haciendo una selección de conceptos, tenga la misma
precisión que el presupuesto acumulado de padres a hijos, y también con el fin de
que las mismas cifras con la misma precisión o decimales, produzca el mismo
presupuesto en cualquier otro programa, se deben establecer los decimales para cada
tipo de dato (mediciones, importes, precios, etc.)
Recuerde que un valor -1 significa sin límite de decimales (se opera con todos los
posibles), no hay decimales ocultos, esto quiere decir que si en pantalla se ven
precios con 2 decimales y al cambiar de divisa, el factor por el que dividimos tiene 3,
después de la división se redondeará a 2 decimales y el resultado se pone en
pantalla.
Como ejemplo, a cada uno de los siguientes valores se le aplicará el redondeo que se
indica, siendo (en nomenclatura propuesta para el FIEBDC):
ÍNDICE
¿Cómo se instalan y desinstalan los permisos (licencia)?
carpetas, ...?
minúsculas?
¿Qué debo hacer para recuperar una carpeta que he borrado sin querer?
¿Por qué al imprimir, veo el preliminar y salen una lista de datos en una
sitio de la página?
funcionamiento extraño?
origen?
*******************************
¿Porqué mi ventana principal, botones, menús... tienen una apariencia distinta que
otros de la misma versión?
Hay un modo del programa llamado visualizador, que pone el programa en un formato de
interfaz simplificado, y no tiene opciones de edición de la base de datos. Puede
cambiarlo en la ventana de Opciones.
El color de “no editable” se puede configurar en Herramientas > Opciones... > Letras y
colores
Sitúe el concepto raíz (.) en la lista de conceptos de la ventana principal haciendo clic
en Padres mientras está viendo el primer nivel de capítulos. También puede hacerlo
definiendo en la línea de Comandos una máscara de búsqueda sin tipo (todos) y sin
código (todos)
Una vez que tenga el concepto raíz en la lista puede modificar su descripción, puede
definir textos, términos, gráficos, etc. unidos a él —igual que en cualquier otro concepto
— con la única limitación de que no puede cambiar su código.
Otra posibilidad más es desde Proyecto > Ventana Parámetros generales > Proyecto, que
muestra los datos de resumen y texto del concepto raíz.
¿Qué debo hacer para recuperar una carpeta que he borrado sin querer?
Basta con teclear el código de nuevo en el mismo sitio, ya que estando en el árbol de
conceptos, los borrados sólo se “descuelgan”, no desaparecen del archivo de base de
datos a menos que apareciera en varios sitios, y hayamos seleccionado la opción
Eliminar.
¿Por qué al imprimir, veo el preliminar y salen una lista de datos en una
determinada hoja, pero al salir por impresora no están exactamente en el mismo
sitio de la página?
Debido a pequeños redondeos (sobre todo según el grado de zoom de reducción que se
Para modificar una serie de conceptos que cumplen una máscara —por ejemplo, hacer
que todos los E00???1* se llamen E01???1b*—, utilice Concepto > Concepto actual >
Cambia código...
En Herramientas > Modos Traslada... (común a las dos ventanas principales), debe estar
activada la casilla Traslada conceptos.
Ejecute la función Herramientas > Repara base de datos... si ha ocurrido algún fallo
grave como un corte de luz, un fallo del disco duro, etc. Si aparecen errores que no se
corrigen o no es posible realizar la reparación, todavía queda la posibilidad de utilizar
Herramientas > Compacta base de datos... que al pasarla a un archivo nuevo, tiene aún
más posibilidades de solucionar un problema grave.
Hay una sola forma de certificar, con las características de que: es por hitos
(mensuales, quincenales o con el periodo irregular que queramos) y definidas por un
periodo Fecha inicial-Fecha final, y siempre con mediciones a origen -aunque la
introducción de datos de cada fase se puede hacer a origen o parcial-.
Para certificar utilizamos una fase por cada certificación, y ponemos en ella las marcas
de finalización de unidad de obra (cuando corresponda) y mediciones a origen. Para
controlar fechas tenemos las fechas de inicio y fin de las fases. Todas las
certificaciones se mantienen en un solo archivo, junto al proyecto inicial (que es la
primera fase, de defecto).
Al tener el conmutador de Modo repite activado, cualquier campo vacío toma el valor de
la línea superior. Si desactiva el modo, o no deja el campo vacío, no sucederá esto.
Casi todos los informes tienen definido un parámetro para indicar el código del concepto
raíz para el informe. Basta cambiar el de defecto (el concepto raíz, punto ".") por el que
queramos. No admite máscaras.
Menfis ofrece varios informes en las 3 primeras carpetas, con los informes más
estándar, referidos a recursos, cuadros de precios y precios sin descomposición.
Podemos elegir el más conveniente en formato.
Otra forma es teclear el código que ya conocemos, en la parte que nos interese de
nuestra base, Menfis busca en el archivo paralelo, y si existe el código, cogerá los datos
de esa base estándar.
En Modos Traslada la Prioridad origen afecta sólo a los conceptos seleccionados (partidas
o unidades de obra en este caso) y no a su descomposición, porque esto podría provocar
que cambiaran los precios o datos de otras partidas donde aparezca esa descomposición.
Por ello, siempre debe consultar el archivo LEAME.HTM del directorio de instalación que
contiene las novedades de última hora no incluidas en este archivo de ayuda.
Aquí tiene la lista de las versiones principales. Las novedades de cada una de ellas se
encuentran detalladas en su propio tema:
Versiones / 715
Instalación y configuración
Administradores: Detalles de instalación
A continuación se detallan notas avanzadas interesantes para la instalación de una
versión registrada. Para información sobre la propia instalación, vea el tema
Instalación y solución de problemas.
Instalación de permisos
Los permisos se pueden instalar a través de disquete,por Internet o llamando por
teléfono a Professional Software, S.A. para que nos den la cadena de permisos para el
funcionamiento del programa.
Instalación de permisos
Instalación remota de permisos
Activación manual
Desinstalación de permisos
En esta ventana tiene dos opciones que le permiten desinstalar los permisos.
Este mismo procedimiento se podrá realizar por teléfono desde la segunda opción
Desinstalación telefónica de permisos a través de la que se deberá poner en
contacto con Professional Software, S.A. donde se le dará una clave que deberá
escribir en el campo Código de confirmación para tener desinstalada la licencia.
Modificación de permisos.
Desde esta opción se pueden modificar los permisos del programa, como por ejemplo,
aumentar el número de usuarios que pueden tener acceso simultáneo al programa
o el módulo de éste.
También se asocian las extensiones de los archivos que maneja el programa, con el
programa ejecutable de extensión .EXE, situado en el directorio de instalación, de
forma que al hacer doble clic en el Explorador de Windows sobre cualquier archivo con
extensión de la aplicación, de cualquier directorio o unidad, se ejecuta la aplicación,
La entrada opcional "dir=" es la que se utiliza en las instalaciones para red local.
Otro parámetro opcional es el lenguaje utilizado al abrirse, que se asigna con "len=",
aunque también está definido por defecto en el archivo .INI y se puede cambiar en la
ventana de Opciones
La entrada per= permite tener una instalación servidora con sus permisos, y una o
varias servidoras, que funcionen en modo local pero se comparten los permisos
como si fuesen clientes, es decir, tenemos la instalación completa en nuestro
equipo (de esta forma funciona más rápido que a través de la red), pero utilizamos
sólo unos permisos (los que están instalados en el equipo al que hacemos referencia
con el parámetro per=). Cualquier instalación normal permite esta configuración,
pero eso si: si no tenemos una licencia con múltiples usuarios de red, no podremos
estar trabajando con las diversas instalaciones SIMULTÁNEAMENTE.
Recuerde que los nombres de archivos, en las entradas del INI donde se utilicen,
TIENEN que llevar el nombre completo con la extensión correspondiente (no es
opcional).
Problemas y soluciones:
Después de instalar, al abrir el programa, está en modo Evaluación
desinstalada"
******************************
Precauciones y restricciones
Antes de realizar cualquier instalación / desinstalación de permisos:
Una vez instalado el programa no puede cambiarlo de unidad física de disco, pero
sí puede cambiar el nombre del directorio en el que se encuentra instalado, o
cambiar el directorio de lugar DENTRO del mismo disco físico (cambiar de sitio el
directorio significa moverlo, no copiarlo).
Los permisos deben ser de control total, es decir, permisos de lectura y ejecución por
supuesto, así como de escritura, creación, modificación y borrado de archivos. Es
IMPORTANTE que se tenga activado el "reemplazo de permisos en subdirectorios"
para que estos permisos tengan efecto sobre el subdirectorio oculto que contiene la
licencia del programa y todos los demás directorios del programa.
La instalación del cliente no hay que registrarla, ya que toma los permisos del
servidor. Tenga en cuenta que debe especificar los directorios de la red utilizando
las mismas letras de unidad o nombres de máquina que se utilizarán normalmente
para acceder a al programa.
Problemas y soluciones
Después de instalar, al abrir el programa, está en modo Evaluación
¿Cómo se puede comprobar esto? con el rótulo que se muestra en la pestaña
Licencia de la ventana Opciones.
Solución:
Solución:
Debe ponerse en contacto con el distribuidor del programa para que le dé la solución
más adecuada a su caso.
Solución:
Solución:
Los archivos externos que genera la aplicación tienen su extensión, a veces obligada y
otras simplemente para reconocer su procedencia. Cuando desde alguna ventana
queremos leer algún archivo externo, la aplicación nos presentará los que tengan la
extensión correspondiente a la ventana que los solicita, o del directorio en el que se
almacena ese tipo de archivos, aunque en la mayoría de los casos, podemos introducir
archivos que no tengan la extensión de defecto o grabarlos sin ella.
A continuación se describe cada tipo de archivo con su extensión por defecto, el formato
interno que utiliza y qué programa de la aplicación lo importa o exporta.
línea
Archivos en formato HTML de página web. Además de haber alguno que sirva
.htm como documentación, el programa permite cualquier salida de datos a este
- INCLUYE.LOG creado por Herramientas > Menú importa > Importa FIEBDC...
juntos.
.txt Texto estándar. Hay varios sitios donde se utilizan archivos de este tipo:
- Archivos de texto estándar con informes dirigidos hacia archivo con la opción
texto plano ASCII editables, por ejemplo, con el bloc de notas de Windows),
parámetros).
Además de éstos tipos, se distribuyen otros archivos con diversas extensiones, pero
clasificados por directorios. Estos tipos de archivos no se deben mover de su directorio
original.
cómodo para ello), y accesos directos a todos los directorios que visitemos,
Contiene todos los archivos que sirven de ejemplos de base de datos, así
contenido. Estos contienen los archivos con el código del programa de los
INFORMES
informes. Si no hay otro grupo de informes que los estándar, se
tipo tiene distinta extensión, y así desde cada función del programa se
forma desmedida.
por nombre la resolución de tarjeta gráfica para la cual están creadas las
VENTANAS configuraciones (1280x1024, 1024x768, 800x600 y la estándar 640x480).
directorio.
Todos los archivos de que hemos denominado de "texto estándar" o "ASCII", son legibles
mediante cualquier editor o procesador de textos.
HORARIO NORMAL
HORARIO DE VERANO
La empresa / 727
DONDE ENCONTRARNOS
28050 - Madrid
Castillejos, 226
08013 - Barcelona
www.prosoft.es