-
Notifications
You must be signed in to change notification settings - Fork 1
/
Tutorial_MToolsDocumentBuilder.xpo
200 lines (195 loc) · 6.38 KB
/
Tutorial_MToolsDocumentBuilder.xpo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
Exportfile for AOT version 1.0 or later
Formatversion: 1
***Element: CLS
; Microsoft Dynamics Class: Tutorial_MToolsDocumentBuilder выгружен
; --------------------------------------------------------------------------------
CLSVERSION 1
CLASS #Tutorial_MToolsDocumentBuilder
Id 52046
PROPERTIES
Name #Tutorial_MToolsDocumentBuilder
Extends #MToolsDocumentBuilderRunBase
RunOn #Called from
ENDPROPERTIES
METHODS
Version: 3
SOURCE #classDeclaration
#class Tutorial_MToolsDocumentBuilder extends MToolsDocumentBuilderRunBase
#{
# DialogField fieldDocumentFormat;
# DialogField fieldUserGroupId;
#
# MToolsDocumentFormat documentFormat;
# UserGroupId userGroupId;
#
# int userCount;
#
# #define.CurrentVersion(1)
# #localmacro.CurrentList
# documentFormat,
# userGroupId
# #endmacro
#}
ENDSOURCE
SOURCE #dialog
#public Object dialog()
#{
# DialogRunBase dialog = super();
#;
# fieldDocumentFormat = dialog.addFieldValue(typeid(MToolsDocumentFormat), documentFormat);
# fieldUserGroupId = dialog.addFieldValue(typeid(UserGroupId), userGroupId);
# return dialog;
#}
ENDSOURCE
SOURCE #documentFormat
#protected MToolsDocumentFormat documentFormat()
#{
# return documentFormat;
#}
ENDSOURCE
SOURCE #documentTemplateName
#protected str documentTemplateName()
#{
# str ret;
#;
# switch (documentFormat)
# {
# case MToolsDocumentFormat::XMLSS:
# ret = 'Tutorial_MToolsDocumentBuilderRunBase.xml';
# break;
# case MToolsDocumentFormat::RTF:
# ret = 'Tutorial_MToolsDocumentBuilderRunBase.rtf';
# break;
# default:
# throw error(strfmt("Формат документа %1 не поддерживается", documentFormat));
# }
# return ret;
#}
ENDSOURCE
SOURCE #fillBody
#protected void fillBody()
#{
# UserInfo userInfo;
# SysUserLog userLog;
# UserGroupList userGroupList;
# UserGroupInfo userGroupInfo;
#;
# super();
# while select userInfo order by name
# {
# if (userGroupId)
# {
# select firstonly userGroupList
# where userGroupList.UserId == userInfo.id
# && userGroupList.groupId == userGroupId;
# if (!userGroupList)
# {
# continue;
# }
# }
# userCount ++;
# select maxof(CreatedDate) from userLog
# where userLog.UserId == userInfo.Id &&
# userLog.Type == SysLogType::Login;
# documentBuilder.insertBlockByName('User',
# [123, 'Username', 01\01\1988],
# [userCount, strfmt('%1 - %2', userInfo.id, userInfo.name), userLog.createdDate]);
# while select userGroupList
# where userGroupList.UserId == userInfo.id
# join userGroupInfo order by name
# where userGroupInfo.id == userGroupList.groupId
# {
# documentBuilder.insertBlockByName('Group',
# ['Group'],
# [strfmt('%1 - %2', userGroupInfo.id, userGroupInfo.name)]);
# }
# }
#}
ENDSOURCE
SOURCE #fillFoooter
#protected void fillFoooter()
#{
# super();
# documentBuilder.insertBlockByName('Footer', [123], [userCount]);
#}
ENDSOURCE
SOURCE #fillHeader
#protected void fillHeader()
#{
# super();
# documentBuilder.insertBlock(0, ['ReportHeader'], [Tutorial_MToolsDocumentBuilder::description()]);
#}
ENDSOURCE
SOURCE #getFromDialog
#public boolean getFromDialog()
#{
# boolean ret;
#;
# ret = super();
# if (ret)
# {
# documentFormat = fieldDocumentFormat.value();
# userGroupId = fieldUserGroupId.value();
# }
# return ret;
#}
ENDSOURCE
SOURCE #pack
#public container pack()
#{
# return[#CurrentVersion, #CurrentList];
#}
ENDSOURCE
SOURCE #prepare
#protected void prepare()
#{
# MToolsDocumentBuilder_XMLSS mtoolsDocumentBuilder_XMLSS;
#;
# if (documentFormat == MToolsDocumentFormat::XMLSS)
# {
# mtoolsDocumentBuilder_XMLSS = documentBuilder;
# mtoolsDocumentBuilder_XMLSS.parmBlockNameLeftQuote('#!');
# mtoolsDocumentBuilder_XMLSS.parmBlockNameRightQuote('!#');
# mtoolsDocumentBuilder_XMLSS.parmExpandNameBlocksToRowElement(true);
# }
# super();
#}
ENDSOURCE
SOURCE #unpack
#public boolean unpack(container packedClass)
#{
# container base;
# boolean ret;
# integer version = conPeek(packedClass, 1);
# switch (version)
# {
# case #CurrentVersion:
# [version, #CurrentList, base] = packedClass;
# ret = true;
# break;
# default:
# ret = false;
# }
# return ret;
#}
ENDSOURCE
SOURCE #description
#client server static ClassDescription description()
#{
# return "@SYS27348";
#}
ENDSOURCE
SOURCE #main
#public static void main(Args _args)
#{
# Tutorial_MToolsDocumentBuilder report = new Tutorial_MToolsDocumentBuilder();
#;
# if (report.prompt())
# {
# report.run();
# }
#}
ENDSOURCE
ENDMETHODS
ENDCLASS
***Element: END