DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Imię
Nazwisko
Jak chcesz przeczytać The Bell
Bez spamu

Kiedyś, kiedy robiłem nowy dokument, stanąłem przed koniecznością wykonania kilku drukowalnych formularzy dla tego dokumentu. Ponadto użytkownicy nie mogli dokładnie określić, w jaki sposób dane powinny być pogrupowane w formie drukowanej. Wystąpiły sprzeczne informacje. Niektórzy użytkownicy chcieli pogrupować według jednego ze szczegółów, inni według innych. Oznacza to, że w przyszłości pojawiała się potrzeba stworzenia około sześciu różnych układów do druku, co mi nie odpowiadało. W rezultacie znaleziono rozwiązanie - wydrukowanie dokumentu z wykorzystaniem schematu kompozycji danych. Do dokumentu dodano layout typu „Schemat składu danych” oraz formularz z ustawieniami ACS. Właściwie w ustawieniach było tylko pole, w którym było wyświetlane drzewo z grupowaniami ACS (Ustawienia Composer. Ustawienia). Oznacza to, że po kliknięciu przycisku „Drukuj” użytkownik automatycznie otwiera okno ze wstępnie ustawionymi (najczęściej używanymi) ustawieniami grupowania. A jeśli to konieczne, sam mógł ustawić grupy w kontekście potrzebnych mu szczegółów. Cóż, wtedy było bezpośrednie drukowanie z uwzględnieniem ustawień określonych przez użytkownika. Nie będę wchodził w szczegóły techniczne. Najważniejsze, co chciałem przekazać, to sam pomysł.

2 komentarze na temat „Używanie ACS do drukowania dokumentów” „

    Moi użytkownicy to zrobili. To prawda, że \u200b\u200bnie byli to księgowi, ale kierownicy działów firmy. Cóż, dodatkowo instrukcja została napisana. Zrozumienie „kim są” dokumenty, katalogi, rejestry itp. nie były wymagane, ponieważ drukowanie zostało wywołane bezpośrednio z okna dialogowego dokumentu poprzez kliknięcie standardowego przycisku „Drukuj”

Podczas tworzenia raportów z wykorzystaniem systemu kompozycji danych (ACS) wygodnie jest wyświetlić parametry raportu (przynajmniej te najczęściej używane) na formularzu, aby nie zmuszać użytkownika do zagłębiania się w standardowe okno ustawień ACS.

Zastanówmy się, jak można to zrobić za pomocą konwencjonalnych formularzy 1C. Zróbmy od razu zastrzeżenie, że w tym artykule skupimy się na wyprowadzaniu parametrów do formularza tj. same parametry w ACS muszą być już utworzone.

Istnieją dwa sposoby wyświetlania parametrów ACS w zwykłej formie:

  • pełne wyjście tabeli ustawień parametrów
  • wyprowadzanie poszczególnych parametrów jako pól wejściowych.

Tabela nastaw parametrów wyświetlana w formularzu jest podobna do tabeli nastaw parametrów generowanej przez ACS. Aby wyświetlić go w formularzu, musisz utworzyć kontrolkę TabularField, w której nieruchomości Danewskazać Preferencje Composer.Settings.Data Options

W takim przypadku użytkownikowi zostaną wyświetlone wszystkie parametry ACS, dla których nie ustawiono ograniczenia dostępności.

Jednak w niektórych przypadkach ta metoda może nie wydawać się tak piękna i niezbyt przyjazna dla użytkownika. Zastanówmy się, jak wyświetlić parametry ACS oddzielnie w postaci zwykłych pól wejściowych.

  1. Stwórzmy szczegóły raportu odpowiadające parametrom. W naszym przykładzie będą to wymagania Data rozpoczęcia, data zakończenia, organizacja... Ustawmy odpowiadające im typy danych.
  2. Utwórzmy w formularzu pole wejściowe dla każdego z parametrów i połączmy je za pośrednictwem właściwości Dane ze szczegółami raportu. Dla każdego pola wejściowego dobrze byłoby utworzyć napis obok nazwy parametru, aby użytkownik wiedział, który parametr edytuje.
  3. Dla każdego pola wejściowego musisz utworzyć procedurę dla obsługi zdarzeń Kiedy to się zmienia, co spowoduje ustawienie wartości wybranej przez użytkownika na parametry ACS. W przykładzie utworzyłem jedną procedurę i przypisałem ją do zmiany zdarzeń dla wszystkich trzech pól wejściowych. Oznacza to, że po zmianie jednego parametru wszystkie trzy są resetowane. Z punktu widzenia wydajności najprawdopodobniej nie jest to wydajne, ale od tego czasu nie ma wielu parametrów, różnica nie jest zauważalna. Przy dużej liczbie parametrów warto wyświetlić ustawienie każdego z nich w osobnej procedurze. Tak więc kod procedury dla programu obsługi Kiedy to się zmienia będzie wyglądać tak:

    Procedura ParametersOnChange (pozycja)

    ParameterDateStart \u003d Linker ustawień. Ustawienia. Parametry danych. Elementy. Find ("BeginningPeriod"); // Wyszukiwanie jest wykonywane na podstawie nazwy parametru ACS
    ParameterDateStart. Użycie \u003d True; // Parametr zostanie użyty podczas wyboru
    ParameterDateStart. Wartość \u003d data rozpoczęcia; // Parametrowi jest przypisywana wartość atrybutu raportu

    ParameterDateCon \u003d Linker ustawień. Ustawienia. Parametry danych. Elementy. Znajdź ("EndPeriod");
    ParameterDateCon. Użycie \u003d True;
    ParameterDateCon. Wartość \u003d koniec dnia (data zakończenia);

    ParameterOrg \u003d Linker ustawień. Ustawienia. Parametry danych. Elementy. Znajdź („Organizacja”);
    ParameterOrg. Użycie \u003d True;
    ParameterOrg. Wartość \u003d Organizacja;

    Koniec procedury

Aby uniknąć komentarzy typu „Ja też jestem odkryciem!”, Od razu dokonam rezerwacji: artykuł jest przeznaczony dla niedoświadczonych programistów SKD, ci, którzy już to wiedzą, nie muszą wyrażać swojego „fi!”, Zrozum, że to, co dla Ciebie jest oczywiste, nie zawsze jest oczywiste dla reszty ...

Aby wizualnie przedstawić implementację niektórych sztuczek, zrobiłem małe puste miejsca w postaci zewnętrznych obwodów ACS. Starałem się tak zrobić opis trików i zrzutów ekranu, aby istota i technika wykonania triku były jasne, bez konieczności pobierania diagramów. Dla niektórych to wystarczy, ale jeśli coś nie jest jasne, zawsze możesz pobrać odpowiedni obwód i bezpośrednio zobaczyć implementację.

Sztuczka nr 1. Różnorodność właściwego znaczenia.

Zacznijmy więc od czegoś prostszego na rozgrzewkę. W takich mechanizmach ACS jak „Wybór” lub „Formatowanie warunkowe” prawdopodobnie natrafiłeś na kolumny „Pole” (lub „Lewa wartość”) i „Wartość” (lub „Prawa wartość”). Specjaliści prawdopodobnie znają tę sztuczkę, ale początkującym nie zawsze łatwo jest zgadnąć, że pole kompozycji danych może być używane zarówno po lewej, jak i po prawej stronie (tj. Do porównania nie tylko określonych stałych wartości, ale także innych pól ACS w tej samej linii). W tym celu wystarczy wejść do trybu edycji w polu o odpowiedniej wartości, wcisnąć przycisk kasowania wartości („kretyka”), następnie nacisnąć przycisk wyboru typu, który się pojawi (litera „T”) i wybrać typ „Pole kompozycji danych”.

Przykład.
Na przykład nie odkryłem koła na nowo, ale wziąłem najbardziej zwyczajny bilans obrotów dla konta 60 z wersji demonstracyjnej 1C: Księgowość (używam wersji 2.0.). Kto nie wie, od wersji 2.0 niniejszy raport powstał na podstawie ACS.

Ustawmy więc bezpośrednio w nim selekcję wierszy z warunkiem „BU Dt (obrót)” Równe „BU CT (obrót)”, a także zastosujmy projekt warunkowy do raportu, podświetlając komórki wiersza na żółto, gdzie „BU CT (saldo zamknięcia) „Więcej” BU CT (obrót) ”. Jeśli ktoś nie wie, jak włączyć panel „Wygląd” - znajdź przycisk „Opcje panelu ustawień” po prawej stronie etykiety „Panel ustawień”.

Wynik końcowy powinien wyglądać mniej więcej tak:

Sztuczka nr 2. Selekcja na zgrupowaniach.

Wszyscy wiedzą, czym jest selekcja w ACS, ale nie wszyscy wiedzą, że można jej używać nie tylko do całego raportu, ale także do poszczególnych grup wierszy i kolumn. Istnieje wiele zadań związanych z używaniem takiego narzędzia. Na przykład wyszczególnianie warunkowe (ograniczenie, dla których grup najwyższego poziomu należy wyświetlać szczegóły, a dla których nie) lub wyszczególnianie zmiennych (wyświetlanie różnych odszyfrowań dla różnych wartości grupowania najwyższego poziomu). Na przykład w jednym z projektów UPP musiałem wykonać formularz kalkulacji kosztów ze stałą strukturą (oddzielna książka referencyjna) i wyświetlić deszyfracje dla różnych pozycji kalkulacji według pozycji kosztowych lub po określonych kosztach lub nic. Dzięki tej sztuczce nie musieliśmy rezygnować z ACS podczas tworzenia raportu.

Przykład.
Cel przykładu: wyświetlenie SAL, w którym dla rachunków rozliczeń wzajemnych (60,62,76) przedstawiono podział według kontrahentów, a dla pozycji kosztowych (20,23,25,26) - według pozycji kosztowych.

Sam ACS jest zaimplementowany w postaci zbioru danych, w którym zapytanie jest wykorzystywane do wirtualnej tabeli sald i obrotów rejestru księgowego „Samonośny”.
Umieść zagnieżdżone grupy „Organizacja” i „Konto”. W grupie „Konto” umieść równolegle 2 zgrupowania „Subconto1” i „Subconto2”, dla których ustawiamy odpowiednie wybory.
Na zrzucie ekranu podaję ilustrację ustawienia:


Jeśli w głównych ustawieniach raportu w zakładce "Inne ustawienia" nie wyłączyłeś wycofywania wyborów, należy to zrobić w "innych ustawieniach" naszych grup "Subconto1" i "Subconto2"

Sztuczka nr 3. Niewidzialny kapelusz

Następną sztuczkę można traktować jako kontynuację poprzedniej. Jeśli zauważyłeś, w wynikowym raporcie, pomimo faktu, że w rzeczywistości wyświetlane jest tylko jedno subkonto, oba (zarówno „Subkonto1”, jak i „Subkonto2”) znajdują się w nagłówku. Niestety, twórcy ACS nie przewidzieli możliwości dostosowania widoczności nagłówka lub użycia jakiegoś symbolu usługi, po zainstalowaniu jako nagłówek nagłówek pola nie zostałby utworzony. Ale, jak zapewne już się domyślasz, istnieje sztuczka, która do pewnego stopnia pomoże ominąć to ograniczenie.

Podczas opracowywania schematu we wstępnie zdefiniowanym układzie dodaj układ grupowania, z definicją pod nazwą grupy „Niewidoczne”, jak pokazano na zrzucie ekranu. Pamiętaj, że pole Zakres musi pozostać puste!

Następnie ustaw nazwę „Niewidoczne” dla grupy „Subconto2”:

I voila ... czapka grupy Subkonto2 znika, a raport wygląda tak:

Zapytaj, dlaczego układ jest określony przez nazwę, a nie przez określenie konkretnego pola grupowania? Po prostu uzyskuje się bardziej uniwersalne rozwiązanie i później tę nazwę grupowania można ustawić w opcjach raportu dla dowolnego grupowania, ale zmiana predefiniowanego układu w opcjach nie będzie już działać.

Tak, jest jeszcze jeden niuans tej sztuczki: pamiętaj, że „niewidzialna czapka” obejmuje nie tylko tę grupę, ale także wszystkich podwładnych! Te. jeśli przypiszesz nazwę „Invisible” do grupy „Subconto1”, to ani „Subconto1”, ani „Subconto2” nie będą widoczne w nagłówku!

Sztuczka 4. Zadzwoń, jak chcesz

Większość programistów ACS wie, jak ustawić nagłówek pola żądania. Na zakładce ACS „Datasets” wystarczy zaznaczyć pole wyboru automatycznego anulowania tytułu i wpisać wymagany tekst w polu „Tytuł”. Minusem jest to, że w trybie użytkownika ta metoda nie jest dostępna, a chcesz zmienić nazwę tytułu bez uciekania się do pomocy konfiguratora. W ustawieniach opcji raportu jest więc nie tylko sposób na zmianę nazwy nagłówków pól, ale także na ich „zakrycie” grupującym „nagłówkiem”. W tym celu w zakładce „Wybrane pola” zaznacz wymagane pola i naciśnij prawy przycisk myszy. Jak widać na zrzucie ekranu, opcje „Ustaw tytuł” \u200b\u200bi „Pola grupowe” są dostępne dla pól.
Należy pamiętać, że w celu grupowania pól tytuł należy również ustawić za pomocą zakładki „Wybrane pola”, a nie przez menu kontekstowe „Nazwa zestawu” w górnej (strukturalnej) części ustawienia wariantu!



Po wszystkich ustawieniach wariant raportu wygląda następująco:



P.S.
Mała wskazówka dla tych, którzy pobiorą obwód. Jest jeden schemat, ale wszystkie sztuczki są wykonywane jako osobne opcje ustawień raportu tego schematu:

Ciąg dalszy nastąpi...

Prawie wszystkie parametry dostępne w oknach dialogowych ustawień drukowania (ustawienia drukarki, właściwości strony) można określić bezpośrednio podczas generowania dokumentu arkusza kalkulacyjnego.

Rozważmy właściwości i metody dokumentu arkusza kalkulacyjnego związane z ustawieniami drukowania (w podanych przykładach „TabDoc” jest obiektem typu „Dokument Arkusza”).

własność „PrinterName” umożliwia ustawienie drukarki innej niż domyślna do drukowania. Nazwa musi odpowiadać nazwie drukarki ustawionej w systemie:

TabDoc.PrinterName \u003d "Canon iR1133";

Podczas drukowania partii dokumentów można zaoszczędzić czas, ustawiając flagę sortowania:

TabDoc.ParseCopy \u003d True;

Liczbę kopii można określić w następujący sposób:

TabDoc.Liczba kopii \u003d 5;

Oczywiście możesz określić pola:

TabDoc.Left margin \u003d 20; // Lewy margines 20 mm, inne marginesy 10 mm (domyślnie)

Kilka innych właściwości strony:

TabDoc.Page Orientation \u003d Orientacja strony.Krajobraz; TabDoc.InstancesOnPage \u003d 2; // 2 strony TabDoc zostaną umieszczone na arkuszu Autoscale \u003d true; // podobne do ustawień powiększenia szerokości strony

W razie potrzeby można określić określoną wartość skalowania w procentach (właściwość „Drukuj skalę” ).

własność "Rozmiar strony" umożliwia ustawienie standardowych rozmiarów stron - „A3”, „A4”, „A5” (pełna lista opcji dostępna jest w pomocy 1C).

TabDoc.Page Size \u003d "A3"; // litera A musi być angielska

W przypadku papieru o niestandardowym rozmiarze można określić wysokość i szerokość strony (w mm):

TabDoc.PageSize \u003d "Custom"; // niestandardowy TabDoc.PageHeight \u003d 350; TabDoc.Page Width \u003d 350;

Również w arkuszu kalkulacyjnym dostępna jest kontrola nad wyświetlaniem nagłówków i stopek oraz ich zawartością. Odbywa się to za pomocą właściwości "Nagłówek" i „Stopka”. Na przykład:

TabDoc.HeaderFooter.Office \u003d true; // wydrukuje nagłówek TabDoc.FooterSizeTop \u003d 7; // rozmiar nagłówka 7 mm (domyślnie 10 mm) TabDoc.HeaderFooter.VerticalPosition \u003d VerticalPosition.Top; TabDoc.HeaderFooter.StartPage \u003d 2; // nagłówek jest wyświetlany z drugiej strony FontFootboard \u003d New Font ("Courier New", 8, True); TabDoc.HeaderFooter.Font \u003d HeaderFont; // kursywa TabDoc.HeaderFooter.TextVCenter \u003d "Nagłówek"; TabDoc.HeaderFooter.TextRight \u003d "Strona [& PageNumber] z [& PagesTotal]"; // paginacja TabDok.HeaderFooter.TextLeft \u003d "[& Date]"; // aktualna data

Wygenerowany dokument wysyłany jest do druku metodą "Rodzaj()". Istnieją dwie możliwe opcje połączenia.

1) Bezpośrednio do drukarki:

TabDoc.Print (ModePrintDialogueUse.Do not use); TabDoc.Print (prawda);

2) Przed drukowaniem zostanie wyświetlone okno dialogowe drukowania:

TabDoc.Print (ModePrintDialogueUse.Use); TabDoc.Print (false);

Ponadto możesz kontrolować paginację dokumentu. Możesz oszacować liczbę stron w dokumencie na podstawie ustawień bieżącej drukarki w następujący sposób:

TabDoc.Number of Pages ();

Korzystanie z metod „CheckOutput ()” i "Sprawdź połączenie ()" Możesz określić, czy dokument arkusza kalkulacyjnego lub tablica obszarów dokumentu arkusza kalkulacyjnego pasuje do strony pod względem wysokości i szerokości przy bieżących ustawieniach drukarki.

Należy pamiętać, że działanie trzech ostatnich metod zależy od zainstalowanej drukarki. Jeśli metoda nie może go znaleźć, zostanie zgłoszony wyjątek.

Metody pozwalają na wymuszenie wstawiania podziałów stron „DisplayVerticalPage Separator ()” i „DisplayHorizontalPage Separator ()” .

W ten sposób możesz kontrolować drukowanie strona po stronie i kontrolować wypełnienie strony:

Jeśli nie TabDoc.CheckOutput (Array of OutputOptions) Then TabDoc.OfferHorizontalPageSplitter (); Zakończ, jeśli

Ważną cechą platformy 1C: Enterprise 8.2 jest ścisłe oddzielenie właściwości i metod zgodnie z kontekstem wykonania. Jeśli wszystkie powyższe właściwości są dostępne w jakimkolwiek kontekście, wymienione metody nie są dostępne na kliencie uproszczonym. Wyjątkiem jest metoda „Print ()”, której dostępność jest z oczywistych względów ograniczona do klienta. Oznacza to, że utworzenie arkusza kalkulacyjnego powinno odbyć się na serwerze i powinno zostać przesłane do druku w procedurze klienta.

Stwórzmy zewnętrzny raport, który będzie wyświetlał raportowe informacje o stanie zapasów i jego obrotach. Wymagane informacje są wymagane we wniosku korzystającym ze zbioru danych typu „Wniosek”, który zawiera tekst żądania:
WYBIERAĆ
_DemoNomenclature.Ref AS Nomenclature
MIEJSCE Rzeczywista nomenklatura
Z
Directory._DemoNomenclature AS _DemoNomenclature
GDZIE
NOT _DemoNomenclature.Remove Mark
AND NOT _DemoNomenclature.To jest grupa
;

////////////////////////////////////////////////////////////////////////////////
WYBIERAĆ
Rzeczywista nomenklatura. Nomenklatura,
_DemoRemains of GoodsInStoragePlacesRemains andTurnover.Storage,
_DemoGoodsBalancesInStoragePlacesBalancesAndTurnover.QuantityBeginning Balance,
_DemoGoodsBalancesInStorageRestandsAndTurnover.QuantityFinal Balance,
_DemoRemains of GoodsInStoragePlacesRemains andTurnovers.NumberDochody,
_DemoGoodsBalancesInStoragePlacesBalances andTurnover.QuantityExpense,
_DemoGoodsBalancesInStoragePlacesBalancesAndTurnover.NumberTurnover
Z
ActualNomenclature AS ActualNomenclature
POŁĄCZENIE LEWE Rejestr akumulacji ._DemoRemains of Goods InStorage Locations.Resains and Turnovers AS _DemoRemains of GoodsInStorageMiejscaResains AND Turnovers
Software Up-to-dateNomenclature.Nomenclature \u003d _DemoProductsBalancesIn StorageMiejscaBalanse i obroty.Nomenklatura

W rezultacie raport zawiera następujące pola (patrz rysunek 1):

Ponieważ informacje są pobierane z wirtualnej tabeli „Pozostałości i obroty”, ACS automatycznie tworzy dwa parametry danych, Początek okresu i Koniec okresu, które są wymagane do ustalenia granic okresu próbkowania danych. Wolę nie pracować z takimi parametrami bezpośrednio, ale ustawić ich wartości za pomocą innego parametru, który będzie dostępny dla użytkownika do edycji (patrz rysunek 2).
Raport spełnia swoje zadanie, ale nagłówek raportu jest raczej suchy. Podczas mojej pracy znalazłem kilka sposobów na zaprojektowanie nagłówka raportu:

  1. Konfigurowanie nagłówków pól na karcie ACS „Zestawy danych”;
  2. Konfiguracja nagłówków pól w zakładce "Ustawienia" ACS;
  3. Programowe ustawianie nagłówków pól;
  4. Ustawienie nagłówka raportu za pomocą układu;
  5. Finalizacja wyniku (dokument arkusza kalkulacyjnego);
Rozważmy je szczegółowo.

1. Ustawianie nagłówków na karcie ACS „Zestawy danych”

Tutaj wszystko jest proste, postaw haczyk przed właściwością pola „Tytuł” \u200b\u200b(czyli anuluj auto-tytuł) i wprowadź wymagany tekst tytułu (patrz Rysunek 4).
Jeśli potrzebujesz ustawić wygląd całego pola, a nie tylko jego tytułu, to istnieje właściwość pola „Wygląd”, za pomocą której możesz ustawić określony wygląd pola, na przykład zmienić czcionkę lub ustawić kolor tła (patrz rysunek 5).
Na tym kończy się moja wiedza na temat zakładki „Zbiory danych”.

2. Konfiguracja nagłówków pól w zakładce "Ustawienia" ACS

Aby ustawić tytuł pola, wybierz żądane pole, kliknij prawym przyciskiem myszy, aby otworzyć menu kontekstowe i wybierz element „Ustaw tytuł” \u200b\u200b(patrz Rysunek 6)
Aby pogrupować pola (np. Według rodzaju informacji), należy dodać pole grupujące i umieścić w nim wymagane pola (patrz rysunek 7), zagnieżdżanie jest nieograniczone.
Możesz także pobawić się właściwością „Lokalizacja” pola grupowania, która określa typ grupowania pól.

Czynności te można również wykonać w trybie 1C: Enterprise, otwierając ustawienia raportu, ALE element „Wybrane pola” musi być uwzględniony w ustawieniach raportu (patrz Rysunek 8).
Na tym kończy się łatwa część dostosowywania nagłówka raportu. Z zalet powyższych działań: cała konfiguracja jest wykonywana standardowymi środkami. Wady: brak możliwości ustawienia wielowierszowego nagłówka pola.

3. Programowe ustawianie nagłówków pól

Platforma umożliwia programowe ustawianie nagłówków pól, a ponadto ustawianie wielowierszowe, co z kolei umożliwia elastyczne i dynamiczne ustawianie nagłówków pól podczas generowania raportu.

W tym celu w module raportów definiujemy procedurę Podczas ComposingResult... W tej procedurze napiszemy kod ustawiający nagłówek pola.

// 1. Pobierz ustawienia niestandardowe.
Ustawienia CD \u003d ThisObject.SettingsComposer.GetSettings ();

// 2. Pobierz wartość parametru „Okres”, na podstawie którego określamy datę rozpoczęcia i zakończenia okresu.
ParameterPeriod \u003d NewDataCompositionParameter ("Period");
Period \u003d CD Settings.DataParameters.FindParameterValue (ParameterPeriod) .Value;
Początek okresu \u003d Okres. Data rozpoczęcia;
PeriodEnd \u003d Period.EndDate;

// 3. Przygotuj informacje o przedefiniowaniu nagłówka pola. Aby to zrobić, utwórz
// tablica, która będzie zawierać informacje: FieldName - wartości właściwości "Path" w
// zbiór danych (patrz rysunek 1), Tytuł - tekst tytułu.
FieldList \u003d New Array;
pStartPeriod \u003d Format (BeginPeriod, "DF \u003d dd.MM.yyyy; DF \u003d" Pusta data "");
FieldStartBalance \u003d New Structure ("FieldName, Title", "QuantityStartingBalance", "Balance at" + Symbols.PS + pgStartPeriod);
ListFields.Add (FieldStart Balance);
stEndPeriod \u003d Format (EndPeriod, "DF \u003d dd.MM.yyyy; DF \u003d" Pusta data "");
FieldEnd Remaining \u003d Nowa struktura („FieldName, Title”, „QuantityEnd Remaining”, „Balance by” + Symbols.PS + lineEndPeriod);
ListFields.Add (FieldEnd Remaining);

// 4. Pobierz listę pól, które znajdują się w grupie „Pozostałości” (patrz Rysunek 7) i
// ustaw nowy nagłówek, przechodząc przez elementy.
SelectedFields \u003d Ustawienia CD.Selected.Elements; // Pierwszy poziom pól.
SelectedFieldsRemains \u003d SelectedFields.Elements; // Pozostałe pola grupujące.
Dla każdego wybranego pola z wybranych pól pozostaje cykl
Dla każdego elementu tablicy z pętli pól listy
CompositionField \u003d NewDataCompositionField (ArrayElement.FieldName);
Jeśli SelectedField.Field \u003d Pole układu Następnie
SelectedField.Header \u003d ArrayItem.Header;
EndIf;
Koniec cyklu;
Koniec cyklu;

// 5. Załaduj z powrotem zmodyfikowane ustawienia użytkownika.
ThisObject.SettingsComposer.DownloadSettings (Ustawienia CD);

Zgłoś wynik (patrz rysunek 10):
Metoda jest cięższa niż wszystkie powyższe, ale mi się podoba.

4. Ustawienie nagłówka raportu za pomocą układu

W celu bardziej elastycznego dostosowywania wyglądu raportu w ACS dostępne jest tworzenie układów. W ustawieniach raportu utwórz jeszcze jeden grupujący „zapis szczegółowy” i ustaw nazwę „łańcuch DZ” dla tego grupowania (patrz Rysunek 11).
Na karcie Układy dodaj układ nagłówka grupowania. Dla układu w dokumencie arkusza kalkulacyjnego, utwórz nagłówek raportu (nagłówek raportu powinien zawierać tyle nagłówków pól, ile wyświetla się szczegółowy rekord) i wskaż obszar arkusza kalkulacyjnego dla układu (patrz Rysunek 12).
W rezultacie raport ma następujący nagłówek (patrz Rysunek 13):

Rysunek 13. Układ ACS jako nagłówek raportu
Moim zdaniem layouty mają jedną dużą wadę, jest to brak możliwości przebudowy według danej grupy użytkowników, dlatego należy ich używać, jeśli forma raportowania jest uregulowana i nie można jej zmienić. Spróbuj ustawić grupowanie dla grupowania „RowDZ”, a zobaczysz, że układ nie działa.

Witryna pomocy technicznej dla technologii informacyjnych zawiera artykuł Korzystanie ze wstępnie zdefiniowanych układów, w którym szczegółowo opisano sposób korzystania z układów w ACS.

5. Finalizacja wyniku (dokument arkusza kalkulacyjnego)

Ta metoda wykorzystuje wspaniałą metodę dokumentu arkusza kalkulacyjnego Znajdź tekst (), ale ta metoda wymaga wyłączenia standardowego przetwarzania generowania wyniku raportu.

Zacznijmy. Wyłącz generowanie standardu, w tym celu w module raportów dla zdarzenia Podczas ComposingResult ustaw zmienną StandardProcessing na False i napisz własny układ wyniku:
StandardProcessing \u003d False;
Layout Composer \u003d Nowy DataComposition Layout Composer;
LayoutComposition \u003d LayoutComposer.Run (
ThisObject.DataCompositionSchema,
ThisObject.SettingsComposer.Settings,
Deszyfrowanie danych);
Composition Processor \u003d nowy procesor DataComposition;
LayoutProcessor.Initialize (LayoutDetails, DecodeData, True);
OutputProcessor \u003d New OutputProcessorDataCompositionResultInTableDocument;
OutputProcessor.SetDocument (DocumentResult);
OutputProcessor.Output (LayoutProcessor);
Bardziej szczegółowo, programowy układ wyniku raportu jest opisany w artykule

Połączony wynik jest wyprowadzany do dokumentu arkusza kalkulacyjnego - zmiennej DocumentResult. Co więcej, po wygenerowaniu wyniku i wyprowadzeniu go do dokumentu arkusza kalkulacyjnego, piszemy kod zastępujący tekst jednej komórki innym. Na przykład w nagłówku raportu zmień nazwę grupy „Pozostałości” na „Pozostałości w magazynie” (patrz Rysunek 14):
Cell \u003d DocumentResult.FindText ("Pozostaje");
Jeśli Cell<> Niezdefiniowany Wtedy
Cell.Text \u003d "Pozostaje element";
EndIf;

Możesz także ustawić formatowanie dla znalezionej komórki, zobaczyć właściwości komórki dokumentu arkusza kalkulacyjnego w asystencie składni.

Niedawno odkryłem tę metodę dla siebie, jest prosta i pozwala na bardzo elastyczną pracę z nagłówkiem raportu, najważniejsze jest to, że tekst komórki ma unikalny tekst.

P.S. może masz w swoim arsenale inny sposób projektowania nagłówków pól?

DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Imię
Nazwisko
Jak chcesz przeczytać The Bell
Bez spamu