Contactos

Funciones de creación de informes (1Cv8). Creación de informes paso a paso

Para evitar comentarios como “¡esto también es un descubrimiento para mí!”, Haré una reserva de inmediato: el artículo está destinado a desarrolladores de ACS sin experiencia, aquellos que ya saben esto no tienen que expresar su “¡guau! ”, comprende que lo que es obvio para ti no siempre lo es para los demás.

Para representar visualmente la implementación de algunos de los trucos, hice pequeños espacios en blanco en forma de circuitos ACS externos. Intenté hacer descripciones de trucos y capturas de pantalla para que la esencia y la técnica de implementación del truco quedaran claras sin necesidad de descargar diagramas. Para algunos esto será suficiente, pero si algo no queda claro, siempre puedes descargar el diagrama correspondiente y ver la implementación directamente.

Truco #1. Las muchas caras del significado correcto.

Entonces, para entrar en calor, comencemos con algo más simple. En mecanismos ACS como "Selección" o "Formato condicional", probablemente haya encontrado las columnas "Campo" (o "Valor izquierdo") y "Valor" (o "Valor derecho"). Los profesionales probablemente conozcan este truco, pero no siempre es fácil para los principiantes adivinar que el campo de composición de datos se puede usar tanto a la izquierda como a la derecha (es decir, comparar no solo los valores fijos dados, sino también otros campos ACS dentro del mismo línea). Para hacer esto, simplemente vaya al modo de edición en el campo de valor derecho, haga clic en el botón borrar valor ("dick"), luego haga clic en el botón de selección de tipo que aparece (la letra "T") y seleccione el "campo de composición de datos". tipo.

Ejemplo.
Como ejemplo, no reinventé la rueda, sino que tomé el balance más común para la cuenta 60 de la versión de demostración de 1C: Contabilidad (uso la edición 2.0). Para quienes no lo saben, a partir de la versión 2.0, este informe se realizó en base al sistema de control de acceso.

Entonces, establezcamos la selección directamente en él para las líneas con la condición "BU Dt (facturación)" Igual a "BU Kt (facturación)", y también apliquemos formato condicional al informe, resaltando en amarillo las celdas de las filas donde " BU Kt (saldo final) " Más "BU Kt (facturación)". Si alguien no sabe cómo habilitar el panel Apariencia, busque el botón "Opciones del panel de opciones" a la derecha del título "Panel de configuración".

El resultado final debería verse así:

Truco #2. Selección de grupo.

Todo el mundo sabe qué es la Selección en ACS, pero no todo el mundo sabe que se puede utilizar no sólo para el informe en su conjunto, sino también para grupos individuales de filas y columnas. Existen muchos problemas aplicados al utilizar una herramienta de este tipo. Por ejemplo, detalles condicionales (restricción para qué agrupaciones de nivel superior mostrar detalles y cuáles no), o detalles variables (que muestran diferentes decodificaciones para diferentes valores de agrupaciones de nivel superior). En uno de los proyectos de la UPP, por ejemplo, fue necesario crear un formulario de cálculo de costos con una estructura fija (un libro de referencia separado) y para diferentes elementos de cálculo de costos mostrar transcripciones ya sea por elementos de costo o por costos específicos, o no mostrar cualquier cosa. Gracias a este truco no tuve que abandonar el sistema de control de acceso a la hora de desarrollar el informe.

Ejemplo.
El propósito del ejemplo: mostrar SALT, en el que para las cuentas de liquidación mutua (60,62,76) se muestra un desglose por contraparte y para las cuentas de costos (20,23,25,26) - por elemento de costo.

El propio sistema de control de acceso se implementa como un conjunto de datos, donde se utiliza una consulta a la tabla virtual de saldos y facturación del registro contable "Contabilidad de Costos".
Colocamos grupos anidados “Organización” y “Cuenta”. En la agrupación “Cuenta” colocamos en paralelo 2 grupos “Subconto1” y “Subconto2”, para los cuales establecemos las selecciones adecuadas.
Proporciono una ilustración de la configuración en la captura de pantalla:


Si en la configuración del informe principal en la pestaña "Otras configuraciones" no deshabilitó la salida de selecciones, entonces esto definitivamente deberá hacerse en las "otras configuraciones" de nuestras agrupaciones "Subconto1" y "Subconto2".

Truco #3. sombrero invisible

El siguiente truco puede considerarse una continuación del anterior. Si se dio cuenta, en el informe resultante, a pesar de que en realidad solo se muestra un subconto, ambos (tanto “Subconto1” como “Subconto2”) están incluidos en el encabezado. Desafortunadamente, los desarrolladores de ACS no brindaron la posibilidad de ajustar la visibilidad del encabezado o usar algún tipo de símbolo de servicio que, si se configura como encabezado, no crearía un encabezado de campo. Pero, como probablemente ya habrás adivinado, hay un truco que hasta cierto punto te ayudará a superar esta limitación.

Al desarrollar un esquema en un diseño predefinido, agregue un diseño de agrupación, definido por el nombre del grupo "Invisible", como se muestra en la captura de pantalla. ¡Tenga en cuenta que el campo "Región" debe permanecer vacío!

Y luego establezca el nombre "Invisible" para la agrupación "Subconto2":

Y listo... el sombrero del grupo "Subkonto2" desaparece y el informe queda así:

Quizás se pregunte por qué el diseño se especifica mediante el nombre y no mediante la especificación de un campo de agrupación específico. Así es simplemente como se obtiene una solución más universal y, posteriormente, este nombre de agrupación se puede configurar en las opciones del informe para cualquier agrupación, pero cambiar el diseño predefinido en las opciones ya no funcionará.

Sí, hay un matiz más en este truco: ¡ten en cuenta que el “sombrero de la invisibilidad” cubre no sólo a este grupo, sino también a todos los inferiores! Aquellos. Si asigna el nombre "Invisible" al grupo "Subconto1", ¡ni "Subconto1" ni "Subconto2" serán visibles en el encabezado!

Truco #4. Llámame como quieras

La mayoría de los desarrolladores de ACS saben cómo configurar el encabezado del campo de solicitud. En la pestaña "Conjuntos de datos" de ACS, simplemente marque la casilla cancelar título automático e ingrese el texto requerido en el campo "Título". La desventaja es que en modo usuario este método no está disponible y desea cambiar el nombre del encabezado sin recurrir a la ayuda del configurador. Entonces, en la configuración de opciones del informe no solo hay una manera de cambiar el nombre de los encabezados de los campos, sino también de "cubrirlos" con un "encabezado" de agrupación. Para hacer esto, en la pestaña "Campos seleccionados", seleccione los campos requeridos y haga clic con el botón derecho del mouse. Como puede ver en la captura de pantalla, las opciones "Establecer título" y "Campos de grupo" están disponibles para los campos.
Tenga en cuenta que para agrupar campos, la configuración del título también debe realizarse a través de la pestaña "Campos seleccionados", y no a través del menú contextual "Establecer nombre" en la parte superior (estructural) de la configuración de variantes.



Después de todas las configuraciones, la versión del informe se ve así:



PD
Una pequeña pista para quienes descargarán el diagrama. Sólo hay un esquema, pero todos los trucos se realizan en forma de opciones separadas para la configuración del informe de este esquema:

Continuará...

Al crear informes utilizando un sistema de composición de datos (DCS), es conveniente mostrar los parámetros del informe (al menos los más utilizados) en el formulario, para no obligar al usuario a profundizar en la ventana de configuración estándar de DCS.

Veamos cómo se puede hacer esto utilizando los formularios 1C habituales. Inmediatamente hagamos una reserva de que en este artículo consideraremos exactamente la salida de parámetros al formulario, es decir los propios parámetros en el sistema de control de acceso ya deben estar creados.

Hay dos formas de generar parámetros ACS en un formato normal:

  • salida de toda la tabla de configuración de parámetros
  • salida de parámetros individuales en forma de campos de entrada.

La tabla de configuración de parámetros que se muestra en el formulario es similar a la tabla de configuración de parámetros generada por las herramientas ACS. Para mostrarlo en el formulario necesita crear un elemento de control. Campo tabular, que tiene la propiedad Datos indicar Configuraciones Composer.Configuraciones.Opciones de datos

En este caso, se mostrarán al usuario todos los parámetros del sistema de control de acceso que no tengan restricción de disponibilidad.

Sin embargo, en algunos casos este método puede no parecer tan bonito ni muy fácil de usar. Veamos cómo mostrar los parámetros ACS en un formulario por separado en forma de campos de entrada normales.

  1. Creemos detalles del informe correspondientes a los parámetros. En nuestro ejemplo, estos serán los detalles. Fecha de inicio, fecha de finalización, organización. Establezcamos los tipos de datos apropiados para ellos.
  2. Creemos campos de entrada en el formulario para cada uno de los parámetros y conectémoslos a través de la propiedad Datos con detalles del informe. Para cada campo de entrada, sería bueno crear una etiqueta al lado con el nombre del parámetro para que el usuario entienda qué parámetro está editando.
  3. Para cada campo de entrada necesita crear un procedimiento para el controlador de eventos cuando cambia, que establecerá el valor seleccionado por el usuario en los parámetros ACS. En el ejemplo, creé un procedimiento y lo asigné para cambiar eventos de los tres campos de entrada. Es decir, cuando cambia un parámetro, los tres se restablecen. Desde el punto de vista del rendimiento, lo más probable es que esto no sea efectivo, pero... No hay muchos parámetros, la diferencia no se nota. Si hay una gran cantidad de parámetros, vale la pena configurar cada uno en un procedimiento separado. Entonces, el código de procedimiento para el controlador cuando cambia se verá así:

    Parámetros del procedimientoOnChange(Elemento)

    ParameterStartDate = ConfiguracionesLinker. Ajustes. Parámetros de datos. Elementos. Buscar("Inicio del período"); //La búsqueda se realiza por el nombre del parámetro ACS
    ParámetroFechaInicio Uso = Verdadero; //El parámetro se utilizará durante la selección.
    ParámetroFechaInicio Valor = Fecha de inicio; //Al parámetro se le asigna el valor del atributo del informe

    ParameterDataCon = LinkerSettings. Ajustes. Parámetros de datos. Elementos. Buscar("EndPeriod");
    ParámetroDateCon. Uso = Verdadero;
    ParámetroDateCon. Valor = Día de finalización (Fecha de finalización);

    ParameterOrg = BuilderSettings. Ajustes. Parámetros de datos. Elementos. Buscar("Organización");
    Organización de parámetros. Uso = Verdadero;
    Organización de parámetros. Valor = Organización;

    Procedimiento final

Casi todos los parámetros disponibles en los cuadros de diálogo de configuración de impresión (configuración de la impresora, propiedades de la página) se pueden especificar directamente al generar un documento de hoja de cálculo.

Veamos las propiedades y métodos de un documento de hoja de cálculo relacionados con la configuración de impresión (en los ejemplos dados, "TabDoc" es un objeto del tipo "Documento de hoja de cálculo").

Propiedad "Nombre de la impresora" Le permite especificar una impresora distinta a la predeterminada para imprimir. El nombre debe coincidir con el nombre de la impresora configurada en el sistema:

TabDoc.PrinterName="Canon iR1133";

Al imprimir un lote de documentos, puede ahorrar tiempo configurando la opción de intercalación:

TabDoc.ParsingByCopies=Verdadero;

El número de copias se puede especificar de la siguiente manera:

TabDoc.Número de instancias=5;

Por supuesto, puedes configurar los campos:

TabDoc.MarginLeft=20; //Margen izquierdo 20 mm, otros márgenes 10 mm (predeterminado)

Algunas propiedades de página más:

TabDoc.PageOrientation=PageOrientation.Paisaje; TabDoc.InstancesOnPage=2; //la hoja contendrá 2 páginas TabDoc.Autoscale=true; //similar a la configuración de escala de “ancho de página”

Si es necesario, puede especificar un valor de escala específico en porcentaje (propiedad "Escala de impresión" ).

Propiedad "Tamaño de página" le permite configurar formatos de página estándar: “A3”, “A4”, “A5” (una lista completa de opciones está disponible en la ayuda de 1C).

TabDoc.PageSize="A3"; // la letra A debe estar en inglés

Para un tamaño de papel no estándar (Personalizado), puede especificar el alto y el ancho de la página (en mm):

TabDoc.PageSize="Personalizado";//tamaño no estándar TabDoc.PageHeight=350; TabDoc.PageWidth=350;

También en un documento de hoja de cálculo, puedes controlar la salida de encabezados y pies de página y su contenido. Esto se hace usando propiedades. "Encabezado de página" Y "Pie de página". Por ejemplo:

TabDoc.Header.Output=verdadero; //se imprimirá el encabezado de TabDoc.HeaderSizeTop=7; //tamaño del pie de página 7 mm (predeterminado 10 mm) TabDoc.Header.VerticalPosition=VerticalPosition.Top; TabDoc.Header.InitialPage=2;//el encabezado se deriva de la segunda páginaHeaderFont=NewFont("Courier New", 8,True); TabDoc.Header.Font=EncabezadoFont; //fuente en cursiva TabDoc.Header.TextInCenter="Encabezado"; TabDoc.Header.TextRight="Página[&PageNumber] de [&PagesTotal]"; //numeración de páginas TabDoc.Header.TextLeft="[&Date]";//fecha actual

El documento generado se envía para impresión mediante el método "Tipo()". Hay dos opciones de llamada posibles.

1) Directamente a la impresora:

TabDoc.Print(PrintDialogUseMode.NotUse); TabDoc.Print (verdadero);

2) Antes de imprimir, se mostrará un cuadro de diálogo de impresión:

TabDoc.Print(PrintDialogUseMode.Use); TabDoc.Imprimir (falso);

Además, puedes controlar cómo se divide el documento en páginas. Puede estimar el número de páginas de un documento según la configuración actual de la impresora:

TabDoc.Número de páginas();

Usando métodos "Verificar salida()" Y "ComprobarAdjuntar()" Puede determinar si un documento de hoja de cálculo o una serie de áreas de documentos de hoja de cálculo caben en la página en altura y ancho con la configuración actual de la impresora.

Hay que tener en cuenta que el funcionamiento de los tres últimos métodos depende de la impresora instalada. Si el método no puede encontrarlo, se lanza una excepción.

Los métodos le permiten forzar la inserción de saltos de página "SalidaVerticalPageSeparator()" Y "SalidaHorizontalPageSeparator()" .

Por lo tanto, puede controlar la impresión página por página y controlar el llenado de páginas:

Si no es TabDoc.CheckOutput(ArrayOutputAreas) Entonces TabDoc.OutputHorizontalPageSeparator(); Terminara si

Una característica importante de la plataforma 1C:Enterprise 8.2 es la estricta separación de propiedades y métodos por contexto de ejecución. Si bien todas las propiedades anteriores están disponibles en cualquier contexto, los métodos enumerados no están disponibles en el cliente ligero. La excepción es el método “Print()”, cuya disponibilidad está limitada al cliente por razones obvias. Esto significa que la formación de un documento de hoja de cálculo debe realizarse en el servidor y debe enviarse para imprimir en un procedimiento del cliente.

Hoy veremos cómo resolver un problema interesante: mostrar imágenes en un informe.

¿Para qué puede ser útil esto?

Aquí Algunos ejemplos:

  • Lista de precios con imágenes de productos y logo en el encabezado.
  • Perfiles de empleados con fotos.
  • Conciliación de cálculos con sello y firma en el sótano.
  • Informes/formularios impresos con impresión escaneada

En el vídeo también hablamos formación del programa informar a SKD. Este método de generación de informes se utiliza. en configuraciones estándar– esta es otra razón para verlo con atención :)

Diseños predefinidos en ACS

Al utilizar diseños predefinidos, puede anular el diseño de informe estándar.

En esta lección, además de plantear el problema, consideraremos:

  • Almacenamiento de datos binarios en una configuración de modelo
  • Posibilidad de utilizar diseños ACS para mostrar imágenes.

Generación programática de un informe sobre el sistema de control de acceso.

Para resolver el problema de mostrar imágenes en un informe en el sistema de control de acceso, es necesario generarlo mediante programación.

Es al generar un informe mediante programación que es posible acceder a datos binarios.

Durante esta lección haremos:

  • Enviar el resultado del diseño a un documento de hoja de cálculo
  • Usando el objeto de datos de descifrado
  • Recuperar datos binarios de la base de datos
  • Creación programática de dibujos en un documento de hoja de cálculo.

Mostrar una imagen en el informe ACS

En esta lección realizamos los pasos finales: mostramos los datos binarios obtenidos previamente en un informe.

Para hacer esto, se agrega un dibujo a un documento de hoja de cálculo, luego de lo cual se muestra en el informe.

La versatilidad del algoritmo de salida de imágenes.

El algoritmo de salida de imágenes desarrollado es universal: el algoritmo continúa funcionando independientemente de cualquier cambio en la estructura del informe.

En realidad, esto es lo que demostraremos en esta lección.

Además, consideraremos la función de generación de informes en segundo plano en el sistema de control de acceso (generación de informes mediante tareas de rutina).

Mostrar una imagen en el encabezado del informe

A menudo es necesario mostrar una imagen estática en el encabezado o pie de página de un informe.

Parecería una tarea sencilla, pero en el caso del ACS es necesario saber cómo solucionarlo:

  • Paso 1. Generar un informe mediante programación
  • Paso 2. Cree un diseño separado con el encabezado o pie de página deseado
  • Paso 3. Antes de completar el informe ACS, muestre una sección con los datos necesarios.

Este vídeo muestra claramente la solución al problema.

¡Disfruto ver! :)

Durante los últimos días hemos estado publicando materiales sobre ACS.

¿Qué pasa si el programador/implementador de 1C no conoce el sistema de control de acceso? ¿Quizás realmente no sea tan importante?

Bien, veamos lo que le espera a un especialista que escribe informes "sobre la rodilla" (por ejemplo, utilizando la salida manual a un documento de hoja de cálculo).

No dispares al pianista, toca lo mejor que puede.

Los informes son prácticamente en todas las configuraciones estándar Basado en SKD.

Para un especialista sin conocimientos de CDS, finalizar informes estándar se convierte en una lotería: por qué y cómo se muestra tal o cual cifra en el informe, cómo añadir nuevas fuentes, dónde editar las cifras calculadas en el código...

SKD – estándar de informes en configuraciones estándar, y 1C no escribe comentarios basados ​​​​en aquellos que aún no han estudiado los estándares :)

Maldita sea la hora...

Sin un sistema de control de acceso, el desarrollo de informes se realiza en gran medida de forma manual.

Por supuesto, es genial salir como Rambaud con un destornillador entre los dientes y hacer lo mismo con todos :)

Como resultado - Grandes costos de mano de obra para el desarrollo y la depuración de informes.. Y esto al menos alarmará a cualquier gerente/cliente: “qué extraño, pero ¿realmente entiende esto??”

Y cuando se trata de la revisión posterior del informe, esto muchas veces se convierte en un dolor de cabeza (especialmente si es el informe de otra persona)…

Viajes de desarrollo a clientes para cambiar la agrupación en el informe.

SKD le permite recibir informes de calidad sin programación. El esqueleto se esta haciendo. por unos pocos minutos, entonces – reverencias.

Y los usuarios pueden personalizar dichos informes. sin involucrar a un programador, genera varias opciones de presentación: cuadros, gráficos, listas, tablas.

Para lograr tal versatilidad en los informes creados mediante programación, imposible en un plazo razonable.

Por lo tanto, llama, tranvía, vámonos... Este es un gran crecimiento profesional para un apodo de 1C...

“¿No tienes uno igual, pero con botones de nácar? “Lamentablemente no…” (c)

¿Qué pasa si es necesario obtener algunos datos de otro sistema, de otra base de datos de 1C o de ningún otro sistema?

Con el sistema de control de acceso, puede crear un informe que funcione con datos de seguridad de la información actuales y reciba datos de otra fuente: no se requiere programación.

Sin sistemas de control de acceso, los datos externos se obtendrán mediante programación y no de la forma más trivial.

Si quieres dominar ACS profesionalmente y diariamente aplicar en tu trabajo, inscríbete en el curso:

Apoyo - 2 meses. Alcance del curso – 34 horas lectivas.

¡No retrases tus estudios!

Creemos un informe externo que mostrará información de informes sobre los saldos de los artículos y su facturación. La información requerida se solicita mediante la solicitud utilizando un conjunto de datos del tipo "Solicitud", que contiene el texto de la solicitud:
ELEGIR
_DemoNomenclature.Link CÓMO Nomenclatura
LUGAR Nomenclatura actual
DE
Directorio._DemoNomenclature CÓMO _DemoNomenclature
DÓNDE
NOT _DemoNomenclature.Marca de eliminación
Y NO _DemoNomenclature. Este es un grupo
;

////////////////////////////////////////////////////////////////////////////////
ELEGIR
Nomenclatura actual.Nomenclatura,
_DemoRestos de Mercancías en Lugares de AlmacenamientoRestos y Rotaciones.Lugar de Almacenamiento,
_DemoRemaining GoodsIn Storage LocationsRemainingsAndTurnover.QuantityInitialRemaining,
_DemoBienes restantes en ubicaciones de almacenamientoRemainingsAndTurnover.CantidadFinalRemaining,
_DemoProductos restantes en lugares de almacenamientoRemainingsAndTurnover.Cantidad entrante,
_DemoBienes restantes en lugares de almacenamiento Restos y facturación.CantidadConsumo,
_DemoBienes restantes en lugares de almacenamientoRemainingsAndTurnover.CantidadTurnover
DE
Nomenclatura actual AS Nomenclatura actual
CONEXIÓN IZQUIERDA RegisterAccumulators._DemoRemaining GoodsInStorageLocations.RemainingsAndTurnover AS _DemoRemainingGoodsInStorageLocationsRemainingAndTurnover
Software CurrentNomenclature.Nomenclature = _DemoRemaining Goods in Storage LocationsRemainingsAndTurnover.Nomenclature

Como resultado, el informe contiene los siguientes campos (ver Figura 1):

Dado que la información se toma de la tabla virtual “Saldos y Facturaciones”, el ACS crea automáticamente dos parámetros de datos, Inicio de Período y Fin de Período, que son necesarios para fijar los límites del período de muestreo de datos. Prefiero no trabajar con dichos parámetros directamente, sino establecer sus valores a través de otro parámetro que estará disponible para que el usuario lo edite (ver Figura 2).
El informe hace frente a su tarea, pero el encabezado del informe es bastante seco. Durante mi trabajo, encontré varias formas de diseñar el encabezado de un informe:

  1. Configurar encabezados de campo en la pestaña "Conjuntos de datos" de ACS;
  2. Configurar encabezados de campo en la pestaña "Configuración" de ACS;
  3. Configuración programática de encabezados de campo;
  4. Configurar el encabezado del informe mediante un diseño;
  5. Finalización del resultado (documento tabular);
Veámoslos en detalle.

1. Configuración de encabezados en la pestaña "Conjuntos de datos" de ACS

Aquí todo es simple: marque la casilla junto a la propiedad del campo "Título" (es decir, cancele el título automático) e ingrese el texto del título requerido (consulte la Figura 4).
Si necesita configurar el diseño para todo el campo, y no solo para su título, entonces existe la propiedad de campo "Diseño", con la que puede configurar algún diseño para el campo, por ejemplo, cambiar la fuente o configurar el fondo. color (ver Figura 5).
Aquí termina mi conocimiento sobre la pestaña "Conjuntos de datos".

2. Configurar encabezados de campo en la pestaña "Configuración" de ACS

Para establecer un título de campo, debe seleccionar el campo deseado, hacer clic derecho para abrir el menú contextual y seleccionar "Establecer título" (ver Figura 6)
Para agrupar campos (por ejemplo, por tipo de información), debe agregar un campo de agrupación y colocar en él los campos requeridos (ver Figura 7), el anidamiento es ilimitado.
También puedes jugar con la propiedad del campo de agrupación “Ubicación”, que determina el tipo de agrupación de campos.

Estas acciones también se pueden realizar en el modo 1C:Enterprise abriendo la configuración del informe, PERO, el elemento "Campos seleccionados" debe incluirse en la configuración del informe (ver Figura 8).
Esto completa la parte sencilla de configurar el encabezado del informe. Una de las ventajas de las acciones anteriores: toda la configuración se realiza utilizando herramientas estándar. De las desventajas: la imposibilidad de establecer un título de campo de varias líneas.

3. Establecer encabezados de campo mediante programación

La plataforma le permite configurar encabezados de campo mediante programación y, además, configurar encabezados de varias líneas, lo que a su vez hace posible configurar encabezados de campo de manera flexible y dinámica al generar un informe.

Para ello definiremos un procedimiento en el módulo de informes. Al exponer el resultado. En este procedimiento, escribiremos código para configurar los encabezados de campo.

// 1. Obtener la configuración del usuario.
ConfiguraciónKD = ThisObject.SettingsLitter.GetSettings();

// 2. Obtenemos el valor del parámetro "Período" a partir del cual determinamos la fecha de inicio y finalización del período.
ParameterPeriod = NewDataCompositionParameter("Periodo");
Período = ConfiguraciónCD.DataParameters.FindParameterValue(PeriodParameter).Value;
PeríodoInicio = Período.FechaInicio;
EndPeriod = Periodo.EndDate;

// 3. Prepare información sobre la redefinición de encabezados de campo. Para hacer esto, creemos
// una matriz que contendrá información: FieldName - valores de la propiedad "Ruta" en
// conjunto de datos (ver Figura 1), Título - texto del título.
Lista de campos = Nueva matriz;
pagePeriodStart = Formato(PeriodStart, "DF=dd.MM.yyyy; DP="Fecha vacía"");
FieldInitialRemaining = Nueva estructura ("Nombre de campo, encabezado", "CantidadRemanente inicial", "Permanente en" + Símbolos.PS + pageBeginningPeriod);
Lista de campos. Agregar (campo inicial restante);
strEndPeriod = Format(EndPeriod, "DF=dd.MM.yyyy; DP="Fecha vacía"");
FieldFinalRemaining = Nueva estructura ("Nombre de campo, encabezado", "CantidadFinalRemaining", "Remaining on" + Symbols.PS + strEndPeriod);
FieldList.Add(FieldFinalRemaining);

// 4. Obtener una lista de campos que están en el grupo "Restante" (ver Figura 7) y
// establece un nuevo título atravesando los elementos en un bucle.
Campos seleccionados = ConfiguraciónCD.Selección.Items; // Primer nivel de campos.
SelectedFieldsRemains = SelectedFields.Items; // Permanece agrupando campos.
Para cada campo seleccionado del ciclo de restos de campos seleccionados
Para cada elemento de una matriz de una lista de ciclo de campos
LayoutField = NewDataCompositionField(ArrayItem.FieldName);
Si SelectedField.Field = LayoutField Entonces
SelectedField.Header = ArrayItem.Header;
terminara si;
Fin del ciclo;
Fin del ciclo;

// 5. Vuelva a cargar la configuración de usuario modificada.
ThisObject.SettingsLinker.LoadSettings(CDSettings);

Resultado del informe (ver Figura 10):
El método es más difícil que todos los anteriores, pero me gusta.

4. Configurar el encabezado del informe mediante un diseño

Para una personalización más flexible de la apariencia del informe, el ACS permite la creación de diseños. En la configuración del informe, crearemos otra agrupación "registros detallados" y estableceremos el nombre "Línea DZ" para esta agrupación (ver Figura 11).
En la pestaña Diseños, agregue un diseño de encabezado de agrupación. Para el diseño en un documento de hoja de cálculo, crearemos un encabezado de informe (el encabezado del informe debe contener tantos encabezados de campo como el número de campos que muestra el registro detallado) e indicaremos el área del documento de hoja de cálculo para el diseño (ver Figura 12).
Como resultado, el informe tiene el siguiente encabezado (ver Figura 13):

Figura 13. Diseño de ACS como encabezado de informe
En mi opinión, los diseños tienen un gran inconveniente: la imposibilidad de adaptarse a un grupo de usuarios determinado, por lo que conviene utilizarlos si el formulario de presentación de informes está regulado y no se puede modificar. Intente configurar una agrupación para la agrupación “LineDZ” y verá que el diseño es confuso.

El sitio web de soporte de tecnología de la información contiene un artículo Uso de diseños predefinidos, que describe en detalle cómo utilizar diseños en sistemas de control de acceso.

5. Finalización del resultado (documento tabular)

Este método utiliza el maravilloso método del documento de hoja de cálculo. Buscar texto(), pero para utilizar este método, debe desactivar el procesamiento estándar para generar el resultado del informe.

Empecemos. Desactivamos la generación estándar, para hacerlo en el módulo de reporte del evento Al exponer el resultado Establezcamos la variable StandardProcessing en False y escribamos nuestro propio diseño del resultado:
Procesamiento estándar = Falso;
DiseñoLinker = newDataLayoutLayoutLinker;
DiseñoLayout = LayoutLocker.Execute(
ThisObject.DataCompositionSchema,
ThisObject.SettingsLinker.Configuración,
Datos de descifrado);
Procesador de composición = nuevoProcesador de composición de datos;
LayoutProcessor.Initialize(LayoutLayout, DecryptionData, Verdadero);
OutputProcessor = Nuevo OutputProcessorDataCompositionResultInTabularDocument;
OutputProcessor.SetDocument(DocumentoResultado);
OutputProcessor.Output(CompositionProcessor);
El diseño del software del resultado del informe se describe con más detalle en el artículo.

El resultado compilado se envía a un documento de hoja de cálculo: esta es la variable DocumentResult. A continuación, después de generar el resultado y enviarlo a un documento de hoja de cálculo, escribimos código para reemplazar el texto de una celda por otro. Por ejemplo, cambiemos el nombre del grupo "Restantes" a "Elementos restantes" en el encabezado del informe (ver Figura 14):
Celda = DocumentResult.FindText("Restantes");
Si celular<>Indefinido entonces
Cell.Text = "Elementos restantes";
terminara si;

También puede configurar el formato de la celda encontrada; consulte las propiedades de la celda del documento de hoja de cálculo en el asistente de sintaxis.

Este método lo descubrí recientemente, es simple y permite trabajar de manera muy flexible con el encabezado del informe, lo principal es que el texto de la celda tenga un texto único.

PD ¿Quizás tengas otra forma de diseñar encabezados de campo?



¿Te gustó el artículo? Compártelo