Отчет построен

> [HTML Version](report-built.html)

_(./images/sc_event_types_17.png)_

**Описание**

Создать скрипт с типом события "Отчет построен" можно [через редактор скриптов](via-script-editor.md). Скрипт будет вызван при полном построении любого отчета(построение отчета вызывается функцией [ReportBuild](reportbuild.md)). Имеет следующие параметры:

- **rbReportName** - имя построенного отчета;

- **rbUserID** - номер, присвоенный отчету пользователем через свойство [Tag](reptag.md) функции [ReportBuild](reportbuild.md);

**Примеры скриптов**

**(./images/tog_code_1.png) 1. Показать окно о построении отчета**

Для этого нужно создать скрипт с типом события "Отчет построен" и написать следующий код:

````
begin  
  // отобразить на всех клиентах окно с информацией о построении отчета  
  ShowMessageAll('Отчет построен', 'Отчет ' + IntToStr(rbUserID) + ' ' + rbReportName + ' построен успешно\!');  
end.
````

````
**(./images/tog_code_1.png) 2. Блокировка кнопки на время построения отчета**

Допустим, имеется кнопка, по нажатию на которую строится отчет. Требуется блокировать кнопку на время построения отчета для предотвращения повторных нажатий. Для решения этой задачи на событие OnClick кнопки нужно написать такой код:

````
var   
  aReport: TM\_Report;  
begin  
  // блокируем кнопку, чтобы ее нельзя было нажать повторно  
  Button1.Enabled := False;    
     
  // строим отчет и помечаем его тегом 77  
  aReport := ReportBuild('Мой отчет');  
  aReport.Tag := 77;  
  aReport.View(GetClientName);  
end.

````
Далее, [создадим новый скрипт](via-script-editor.md) с типом события "Отчет построен" и следующим кодом:

````
begin  
  if rbUserID = 77 then       // если отчет помеченный тегом 77 построился, то  
    Button1.Enabled := True;  // разблокируем кнопку  
end.
````

````
