Перейти к содержанию

Пользовательские функции: различия между версиями

Материал из Химсофт Вики
 
(не показаны 43 промежуточные версии этого же участника)
Строка 1: Строка 1:
==Общие сведения==
==Перечень доступных библиотек, классов и функций==


Раздел <code>Scripts</code> предназначен для добавления программной логики непосредственно в файл макета отчета.
{|class="wikitable" style="margin:auto; background-color: #fff;"
|- style="background:#f8f9fa; font-weight:bold; text-align:center;"
! style="width:40%;" | Файл подключаемой библиотеки /<br>пространство имен (без приставки <code>.dll</code>)
! style="width:30%;" | Класс
! style="width:30%;" | Функция
|-


Это позволяет отчету быть самодостаточным: код из раздела выполняется в процессе формирования отчета.
| rowspan="2" | <code>Chemsoft.Triteia.ReportClasses.dll</code>
| <code>IdNameItemDto</code>
| –
|-
| <code>DoubleIdNameItemDto</code>
| –
|-


Внутри раздела можно создавать собственные вспомогательные функции для выполнения сложных вычислений прямо «на лету».
| rowspan="2" | <code>Chemsoft.Triteia.ReportFunctions.Maths.dll</code>
| <code>Rounding</code>
| <code>RoundBase</code>
|-
| <code>RoundMode</code>
| –
|-


==Rounding.RoundBase()==
| rowspan="6" | <code>Chemsoft.Triteia.ReportFunctions.Cells.dll</code>
| rowspan="3" | <code>Formatters</code>
| <code>ClearTags</code>
|-
| <code>SetMarginByDots</code>
|-
| <code>CollapseNumbers</code>
|-


<syntaxhighlight lang="vb">
| rowspan="3" | <code>Getters</code>
| <code>FieldOr</code>
|-
| <code>JoinFields</code>
|-
| <code>DateOr</code>
|-
 
| rowspan="2" | <code>Chemsoft.Triteia.ReportFunctions.Events.dll</code>
| <code>AfterData</code>
| <code>AlignCells</code>
|-
| <code>KeyPressValidate</code>
| <code>BlockIfNotDigits</code>
|-
 
| rowspan="3" | <code>Chemsoft.Triteia.ReportFunctions.Controls.dll</code>
| <code>ListControlDataFiller</code>
| <code>GetItemsArray</code>
|-
 
| rowspan="2" | <code>CheckedListSynchronizer</code>
| <code>HandleCheckboxChanged</code>
|-
| <code>HandleItemCheck</code>
|-
 
| rowspan="3" | <code>Chemsoft.Triteia.ReportFunctions.Signatures.dll</code>
| rowspan="3" | <code>PersonNameFormatter</code>
| <code>NameInit</code>
|-
| <code>InitName</code>
|-
| <code>FullName</code>
|}
 
==Варианты подключения в основном классе отчета <code>ReportScript</code>==
 
===Подключение пространства имен===
<syntaxhighlight lang="C#">
using Chemsoft.Triteia.ReportFunctions.Signatures;
</syntaxhighlight>
</syntaxhighlight>


<syntaxhighlight lang="vb">
В таком случае для использования в выражении перед именем функции требуется через точку указывать имя класса:
<syntaxhighlight lang="C#">
[PersonNameFormatter.FullName([Main.surname], [Main.name], [Main.patronimyc])]
</syntaxhighlight>
</syntaxhighlight>


Пример использования:
===Подключение класса===
<syntaxhighlight lang="vb">=Code.Rounding.RoundBase(Fields!D1.Value, 2, 1)</syntaxhighlight>
<syntaxhighlight lang="C#">
using static Chemsoft.Triteia.ReportFunctions.Signatures.PersonNameFormatter;
</syntaxhighlight>
 
В таком случае для использования в выражении требуется указывать только имя функции:
<syntaxhighlight lang="C#">
[FullName([Main.surname], [Main.name], [Main.patronimyc])]
</syntaxhighlight>
 
<div style="background-color: #e7f3ff; border-left: 5px solid #2196f3; padding: 15px; margin: 10px 0;">
'''Примечание'''
 
Даже если функция используется только в выражениях и не используется во вкладке кода, она все-равно должна быть обязательно подключена во вкладке кода одним из двух способов!
</div>

Текущая версия от 10:13, 20 октября 2026

Перечень доступных библиотек, классов и функций

Файл подключаемой библиотеки /
пространство имен (без приставки .dll)
Класс Функция
Chemsoft.Triteia.ReportClasses.dll IdNameItemDto –
DoubleIdNameItemDto –
Chemsoft.Triteia.ReportFunctions.Maths.dll Rounding RoundBase
RoundMode –
Chemsoft.Triteia.ReportFunctions.Cells.dll Formatters ClearTags
SetMarginByDots
CollapseNumbers
Getters FieldOr
JoinFields
DateOr
Chemsoft.Triteia.ReportFunctions.Events.dll AfterData AlignCells
KeyPressValidate BlockIfNotDigits
Chemsoft.Triteia.ReportFunctions.Controls.dll ListControlDataFiller GetItemsArray
CheckedListSynchronizer HandleCheckboxChanged
HandleItemCheck
Chemsoft.Triteia.ReportFunctions.Signatures.dll PersonNameFormatter NameInit
InitName
FullName

Варианты подключения в основном классе отчета ReportScript

Подключение пространства имен

using Chemsoft.Triteia.ReportFunctions.Signatures;

В таком случае для использования в выражении перед именем функции требуется через точку указывать имя класса:

[PersonNameFormatter.FullName([Main.surname], [Main.name], [Main.patronimyc])]

Подключение класса

using static Chemsoft.Triteia.ReportFunctions.Signatures.PersonNameFormatter;

В таком случае для использования в выражении требуется указывать только имя функции:

[FullName([Main.surname], [Main.name], [Main.patronimyc])]

Примечание

Даже если функция используется только в выражениях и не используется во вкладке кода, она все-равно должна быть обязательно подключена во вкладке кода одним из двух способов!