Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
synergy-api-util
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Raimbek Egemberdiev
synergy-api-util
Commits
fdbc687d
Commit
fdbc687d
authored
Jan 16, 2017
by
Raimbek Egemberdiev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
документация объекта форм
parent
8d156b0e
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
117 additions
and
0 deletions
+117
-0
README.md
README.md
+3
-0
docs/forms.md
docs/forms.md
+114
-0
No files found.
README.md
0 → 100644
View file @
fdbc687d
Утилита работы с api synergy.
[
Формы
](
docs/forms.md
)
\ No newline at end of file
docs/forms.md
0 → 100644
View file @
fdbc687d
# Работа с формами
## Объект формы
Форма должна наследовать класс AsForm. Компоненты описываются с помощью
аннотации.
Пример:
```
public class ExampleForm extends AsForm {
@TextBox
private String year;
@NumericInput("sum_without_sale")
private Double sumWithoutSale;
@NumericInput
private Double balance;
@Table(id = "transactions", type = AccrualTransaction.class)
private List<AccrualTransaction> transactions = new ArrayList<>();
// ... ...
// геттеры и сеттеры
}
```
А вот пример объекта таблицы, который используется выше:
```
public class AccrualTransaction {
@DateCmp("date_t")
private Date date;
@NumericInput("sum_t")
private Double sum;
@TextBox("comment_t")
private String comment;
// ... ...
// геттеры и сеттеры
}
```
Теперь этого объекта формы можем использовать следующим образом:
```
AsFormService formService = new AsFormService(context);
ExampleForm form = formService.getData(ExampleForm.class, "data uuid данных"; // получение данных:
form.setBalance(105.5d); // изменение
formService.saveData(form); // сохранение
```
Есть следующие виды аннотации:
-
`TextBox`
- однострочное поле
-
`NumericInput`
- числовое поле
-
`DateCmp`
- компонент дата/время
-
`Counter`
- счетчик
-
`Entity`
- объекты synergy
-
`Radio`
- ...
-
`ListBox`
- Компонент выбора варианта
-
`Table`
- динамическая таблица
-
`Cmp`
- универсальная аннотация для других копонентов форм. Используется следующим образом:
```
@Cmp(id = "company", type = ComponentTypes.REG_LINK)
private AsFormData company;
```
Класс AsFormData универсальное описание компонента формы. Его можно использовать с любой
аннотацией. Например:
```
@Entity
private AsFormData executor;
```
Есть специальная аннотация
`@KeyValue`
если его использовать вместе вышеперечисленными
аннотациями, то в качестве значения поле формы берется
`key`
а не
`value`
. Т.е. для всех компонентов,
кроме
`NumericInput`
, в качестве значения по умолчанию берется
`value`
. Аннотация особенно
полезно при использований
`ListBox`
:
Например:
```
@ListBox(id = "detailing_service", dictionary = ServiceDetailingDictionary.class)
@KeyValue
private Integer detailingService;
```
Во всех аннотациях если явно не указать id компонента, в качестве id берется название
поле.
Поддерживаемые типы полей:
-
String
-
Integer
-
Double
-
BigDecimal
-
BigInteger
-
AsFormData
Для компонента
`DateCmp`
формат по умолчанию такой
`yyyy-MM-dd hh:mm:ss`
. Но при использований
компонента можно указать свой формат:
```
@DateCmp(value = "date_t", format = "yyyy/MM hh:mm:ss")
private Date date;
```
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment