Объекты — различия между версиями
Материал из DevelopmenOnTheEdge
								
												
				Asko  (обсуждение | вклад)  (Новая страница: «<div>Для удобства в контексте выполнения Freemarker всегда содержатся некоторые объекты. Внутр…»)  | 
				Lan  (обсуждение | вклад)   | 
				||
| (не показаны 4 промежуточные версии ещё одного участника) | |||
| Строка 1: | Строка 1: | ||
| − | <div>Для удобства в контексте выполнения Freemarker всегда содержатся некоторые объекты. Внутри конструкций Freemarker (${}, <#> и <@>) ими можно пользоваться как обычными Java-объектами.  | + | <div>Для удобства в контексте выполнения Freemarker всегда содержатся некоторые объекты. Внутри конструкций Freemarker (${}, <#> и <@>) ими можно пользоваться как обычными Java-объектами.  | 
| − | + | ||
| − | + | Эти объекты определены везде (в Custom scripts и при задании кода представлений):  | |
| − | Эти объекты определены везде (в Custom scripts и при задании кода представлений):  | + | |
| − | + | ||
* '''project''': объект com.beanexplorer.enterprise.metadata.model.Project; содержит всю иерархию проекта; можно достать любые данные. Примеры:  | * '''project''': объект com.beanexplorer.enterprise.metadata.model.Project; содержит всю иерархию проекта; можно достать любые данные. Примеры:  | ||
| − | **   | + | ** <code>${project.getConnectionProfileName()} </code>— профиль соединения к базе данных.  | 
| − | **   | + | ** <code>${project.getEntity('myTable').getQueries().get('myQuery').getMenuName()} </code>— название пункта меню для представления myQuery в таблице myTable.  | 
* '''dbPlatform''': строка, определяющая платформу СУБД. Сокращённый вариант для project.getDatabaseSystem().getName(). Пример использования:  | * '''dbPlatform''': строка, определяющая платформу СУБД. Сокращённый вариант для project.getDatabaseSystem().getName(). Пример использования:  | ||
** <code>SELECT <#if dbPlatform == 'sqlserver'>TOP 1</#if></code>  | ** <code>SELECT <#if dbPlatform == 'sqlserver'>TOP 1</#if></code>  | ||
| Строка 12: | Строка 10: | ||
* '''currentDateTime''': SQL-выражение для текущего времени в текущей версии СУБД  | * '''currentDateTime''': SQL-выражение для текущего времени в текущей версии СУБД  | ||
* '''fromFakeTable''': SQL-выражение для выборки из псевдо-таблицы (например "FROM DUAL") в зависимости от текущей версии СУБД  | * '''fromFakeTable''': SQL-выражение для выборки из псевдо-таблицы (например "FROM DUAL") в зависимости от текущей версии СУБД  | ||
| − | * '''null''': специальное значение для работы с NULL в SQL. При использовании <code>null?str</code> вы получите строку NULL. Объект null можно передавать в макросы и функции, которые применят <code>?str</code> к нему. Использование объекта null другими способами ведёт к неопределённому поведению.  | + | * '''null''': специальное значение для работы с NULL в SQL. При использовании <code>null?str</code> вы получите строку NULL. Объект null можно передавать в макросы и функции, которые применят <code>?str</code> к нему. Использование объекта null другими способами ведёт к неопределённому поведению.  | 
| + | |||
| + | Эти объекты могут быть определены при задании кода представлений или кастомизаций:  | ||
| − | + | * '''module''': объект com.beanexplorer.enterprise.metadata.model.Module, представляющий текущий модуль  | |
| − | + | ||
| − | + | ||
| − | * '''module''': объект com.beanexplorer.enterprise.metadata.model.Module, представляющий текущий модуль  | + | |
* '''entity''': объект com.beanexplorer.enterprise.metadata.model.Entity, представляющий текущую entity. Пример:  | * '''entity''': объект com.beanexplorer.enterprise.metadata.model.Entity, представляющий текущую entity. Пример:  | ||
| − | **   | + | ** <code>SELECT * FROM ${entity.getName()} </code>— выбрать все элементы из текущего entity (можно, к примеру, определить такой макрос и использовать его в разных entity).  | 
* '''query''': объект com.beanexplorer.enterprise.metadata.model.Query, представляющий текущее представление.  | * '''query''': объект com.beanexplorer.enterprise.metadata.model.Query, представляющий текущее представление.  | ||
* '''operation''': объект com.beanexplorer.enterprise.metadata.model.Operation, представляющий текущую операцию.  | * '''operation''': объект com.beanexplorer.enterprise.metadata.model.Operation, представляющий текущую операцию.  | ||
| − | * '''customization''': объект com.beanexplorer.enterprise.metadata.model.PageCustomization, представляющий текущую кастомизацию.  | + | * '''customization''': объект com.beanexplorer.enterprise.metadata.model.PageCustomization, представляющий текущую кастомизацию.  | 
| − | + | [[Категория:Freemarker]]  | |
| − | + | ||
Текущая версия на 17:34, 9 октября 2014
Для удобства в контексте выполнения Freemarker всегда содержатся некоторые объекты. Внутри конструкций Freemarker (${}, <#> и <@>) ими можно пользоваться как обычными Java-объектами.
Эти объекты определены везде (в Custom scripts и при задании кода представлений):
-  project: объект com.beanexplorer.enterprise.metadata.model.Project; содержит всю иерархию проекта; можно достать любые данные. Примеры:
-  
${project.getConnectionProfileName()}— профиль соединения к базе данных. -  
${project.getEntity('myTable').getQueries().get('myQuery').getMenuName()}— название пункта меню для представления myQuery в таблице myTable. 
 -  
 -  dbPlatform: строка, определяющая платформу СУБД. Сокращённый вариант для project.getDatabaseSystem().getName(). Пример использования:
-  
SELECT <#if dbPlatform == 'sqlserver'>TOP 1</#if> 
 -  
 - currentDate: SQL-выражение для текущей даты в текущей версии СУБД
 - currentDateTime: SQL-выражение для текущего времени в текущей версии СУБД
 - fromFakeTable: SQL-выражение для выборки из псевдо-таблицы (например "FROM DUAL") в зависимости от текущей версии СУБД
 -  null: специальное значение для работы с NULL в SQL. При использовании 
null?strвы получите строку NULL. Объект null можно передавать в макросы и функции, которые применят?strк нему. Использование объекта null другими способами ведёт к неопределённому поведению. 
Эти объекты могут быть определены при задании кода представлений или кастомизаций:
- module: объект com.beanexplorer.enterprise.metadata.model.Module, представляющий текущий модуль
 -  entity: объект com.beanexplorer.enterprise.metadata.model.Entity, представляющий текущую entity. Пример:
-  
SELECT * FROM ${entity.getName()}— выбрать все элементы из текущего entity (можно, к примеру, определить такой макрос и использовать его в разных entity). 
 -  
 
- query: объект com.beanexplorer.enterprise.metadata.model.Query, представляющий текущее представление.
 - operation: объект com.beanexplorer.enterprise.metadata.model.Operation, представляющий текущую операцию.
 - customization: объект com.beanexplorer.enterprise.metadata.model.PageCustomization, представляющий текущую кастомизацию.