· 9 years ago · Dec 17, 2016, 06:04 PM
1///
2Class User.fillorderFORM Extends %ZEN.Component.page [ ProcedureBlock ]
3{
4
5Parameter APPLICATION;
6
7Parameter CSSINCLUDES;
8
9Parameter DOMAIN = "ZENDEMO";
10
11Parameter PAGENAME = "User.fillorderFORM";
12
13Property MyId As %Integer;
14
15/// Provide localized text strings for use in the form.
16Method %OnGetJSResources(ByRef pResources As %String) As %Status [ Private ]
17{
18 Set pResources("SuccessSaveRecord") = $$$Text("Record saved.")
19 Set pResources("NothingRecord") = $$$Text("Enter an ID value. To view a list of IDs click Search.")
20 Set pResources("NoExistRecord") = $$$Text("No record with this ID exists. To view a list of valid IDs click Search.")
21 Set pResources("ConfirmDelete") = $$$Text("Are you sure you want to delete this record? You cannot undo this operation.")
22 Set pResources("FailedDelete") = $$$Text("Record was not deleted.")
23 Set pResources("SuccessDelete") = $$$Text("Record deleted.")
24 Set pResources("LabelHide") = $$$Text("Hide")
25 Set pResources("LabelTitleHide") = $$$Text("Hide display of current records")
26 Set pResources("LabelSearch") = $$$Text("Search")
27 Set pResources("LabelTitleHide") = $$$Text("Find all records")
28 Set pResources("FailedDataValidation") = $$$Text("Some data was incorrect or incomplete. Please try again. To view tips for entering the correct data format for a field, hover the cursor over the field (or its title) and wait for a tooltip to display"_ $c(13,10,13,10))
29
30 Set pResources("RequiredID") = $$$Text("ID is a required field, but it was empty."_$c(13,10))
31 Set pResources("FailedIntegerID") = $$$Text("ID was not an integer or was outside the allowed range."_$c(13,10))
32 Set pResources("FailedIntegerordersID") = $$$Text("ordersID was not an integer or was outside the allowed range."_$c(13,10))
33 Set pResources("FailedIntegerpriceID") = $$$Text("priceID was not an integer or was outside the allowed range."_$c(13,10))
34
35 Quit $$$OK
36}
37
38ClassMethod ModelIdExists(modelId As %String) As %Boolean [ ZenMethod ]
39{
40 if ($classmethod("User.ordersprice","%ExistsId",modelId)) {
41 Quit 1
42 }
43 else {
44 Quit 0
45 }
46}
47
48ClientMethod deleteRec() As %Status [ Language = javascript ]
49{
50 var id = zen('ID');
51 var val = id.getValue();
52 if (val.length <= 0) {
53 alert(zenText('NothingRecord'));
54 return false;
55 }
56 if (zenPage.ModelIdExists(val) == 0) {
57 alert(zenText('NoExistRecord'));
58 return false;
59 }
60 if (confirm(zenText('ConfirmDelete'))) {
61 var controller = zen('mvc');
62 controller.deleteId(controller.getModelId());
63 controller.createNewObject();
64 controller.update();
65 if (id.setValue('') == false) {
66 alert(zenText('FailedDelete'));
67 return false;
68 }
69 alert(zenText('SuccessDelete'));
70 return false;
71 }
72 else {
73 alert(zenText('FailedDelete'));
74 return false;
75 }
76}
77
78ClientMethod getRecord(id As %Integer) As %Status [ Language = javascript ]
79{
80 var controller = zen('mvc');
81 controller.setModelId(id);
82 var idText = id.toString();
83 zenPage.MyId = idText;
84 var id = zen('ID');
85 id.setValue(idText);
86}
87
88/// Hide the table of records on the form.
89ClientMethod hideSearchTable() As %Status [ Language = javascript ]
90{
91 var tab = zen('searchTable');
92 tab.setHidden(true);
93 var btn = zen('btnSearch');
94 btn.caption = zenText('LabelSearch');
95 btn.title = zenText('LabelTitleSearch');
96 zenPage.refreshContents();
97}
98
99ClientMethod newRec() As %Status [ Language = javascript ]
100{
101 var id = zen('ID');
102 id.setValue('');
103 var controller = zen('mvc');
104 controller.createNewObject();
105}
106
107/// Refresh the table of records on the form.
108ClientMethod refreshSearchTable() As %Status [ Language = javascript ]
109{
110 var tab = zen('searchTable');
111 if (tab.hidden == false) {
112 tab.executeQuery();
113 }
114}
115
116ClientMethod saveRec(ok) As %Status [ Language = javascript ]
117{
118 if (ok == true) {
119 var form=zen('fillorderFORM');
120 var save=form.save();
121 if (save.length == 0) ok = false;
122 else var cls=zen('mvc').getModelClass();
123 }
124 if (ok == true) alert(zenText('SuccessSaveRecord'));
125 else alert(zenText('FailedDataValidation'));
126 return ok;
127}
128
129/// Display the table of records on the form.
130ClientMethod toggleSearchTable() As %Status [ Language = javascript ]
131{
132 var tab = zen('searchTable');
133 if (tab.hidden == true) {
134 tab.setHidden(false);
135 var btn = zen('btnSearch');
136 btn.caption = zenText('LabelHide');
137 btn.title = zenText('LabelTitleHide');
138 tab.executeQuery();
139 zenPage.refreshContents();
140 }
141 else {
142 zenPage.hideSearchTable();
143 }
144}
145
146/// Refresh the table of records on the form.
147ClientMethod validateAndSave() As %String [ Language = javascript ]
148{
149 var msg = '';
150 if ((zen('ordersID').getValue().length > 0) && (zenPage.validateInteger('ordersID',true,-2147483648,true,2147483647) == false))
151 msg += zenText('FailedIntegerordersID');
152 if ((zen('priceID').getValue().length > 0) && (zenPage.validateInteger('priceID',true,-2147483648,true,2147483647) == false))
153 msg += zenText('FailedIntegerpriceID');
154 if (msg.length == 0) zenPage.saveRec(true);
155 else alert(zenText('FailedDataValidation') + msg);
156}
157
158ClientMethod validateDate(fname As %String) As %Status [ Language = javascript ]
159{
160 return zenPage.validateDateField(zen(fname).getValue());
161}
162
163ClientMethod validateDateField(field As %String) As %Status [ Language = javascript ]
164{
165 var len = field.length;
166 if (len < 10) return false;
167 if (field.charAt(4) != '-') return false;
168 if (field.charAt(7) != '-') return false;
169 var part = field.split('-');
170 if (part.length != 3) return false;
171 if (zenPage.validateYear(part[0]) == false) return false;
172 if (zenPage.validateMonthDay(part[1],part[2]) == false) return false;
173 return true;
174}
175
176ClientMethod validateDecimal(fname As %String) As %Status [ Language = javascript ]
177{
178 var field = (zen(fname)).getValue();
179 var part = field.split('.');
180 var len = part.length;
181 if ((len <= 0) || (part.length > 2)) return false;
182 for (i = 0; i < len; i++) {
183 if (isNaN(part[i])) return false;
184 }
185 return true;
186}
187
188ClientMethod validateHour(field As %String) As %Status [ Language = javascript ]
189{
190 var val = parseInt(field);
191 return ((val >= 0) && (val <= 23));
192}
193
194ClientMethod validateInteger(fname As %String, haveMin As %Boolean, min As %Integer, haveMax As %Boolean, max As %Integer) As %Status [ Language = javascript ]
195{
196 var field = (zen(fname)).getValue();
197 if (isNaN(field)) return false;
198 if ((haveMin == true) && (field < min)) return false;
199 if ((haveMax == true) && (field > max)) return false;
200 return true;
201}
202
203ClientMethod validateMinute(field As %String) As %Status [ Language = javascript ]
204{
205 var val = parseInt(field);
206 return ((val >= 0) && (val <= 59));
207}
208
209ClientMethod validateMonthDay(field1 As %String, field2 As %String) As %Status [ Language = javascript ]
210{
211 var m = parseInt(field1);
212 var d = parseInt(field2);
213 if ((m >= 1) && (m <= 12) && (d >= 1) && (d <= 31)) {
214 if ((m == 4) || (m == 6) || (m == 9) || (m == 11)) {
215 if (d <= 30) return true;
216 }
217 else if (m == 2) {
218 if (d <= 29) return true;
219 }
220 else return true;
221 }
222 return false;
223}
224
225ClientMethod validateRequired(fname As %String) As %Status [ Language = javascript ]
226{
227 var field = (zen(fname)).getValue();
228 if (field.length == 0) return false;
229 else return true;
230}
231
232ClientMethod validateString(fname As %String, haveMin As %Boolean, min As %Integer, haveMax As %Boolean, max As %Integer) As %Status [ Language = javascript ]
233{
234 var field = (zen(fname)).getValue();
235 var len = field.length;
236 if ((haveMin == true) && (len < min)) return false;
237 if ((haveMax == true) && (len > max)) return false;
238 else return true;
239}
240
241ClientMethod validateTime(fname As %String) As %Status [ Language = javascript ]
242{
243 return zenPage.validateTimeField(zen(fname).getValue());
244}
245
246ClientMethod validateTimeField(field As %String) As %Status [ Language = javascript ]
247{
248 var len = field.length;
249 if (len < 8) return false;
250 if (field.charAt(2) != ':') return false;
251 if (field.charAt(5) != ':') return false;
252 var part = field.split(':');
253 if (part.length != 3) return false;
254 if (zenPage.validateHour(part[0]) == false) return false;
255 if (zenPage.validateMinute(part[1]) == false) return false;
256 if (zenPage.validateMinute(part[2]) == false) return false;
257 return true;
258}
259
260ClientMethod validateTimeStamp(fname As %String) As %Status [ Language = javascript ]
261{
262 var field = zen(fname).getValue();
263 var len = field.length;
264 if (len < 18) return false;
265 var part = field.split(' ');
266 if (part.length != 2) return false;
267 if (zenPage.validateDateField(part[0]) == false) return false;
268 if (zenPage.validateTimeField(part[1]) == false) return false;
269 return true;
270}
271
272ClientMethod validateYear(field As %String) As %Status [ Language = javascript ]
273{
274 var val = parseInt(field);
275 return ((val >= 0) && (val <= 9999));
276}
277
278ClientMethod viewRec() As %Status [ Language = javascript ]
279{
280 var id = zen('ID');
281 var val = id.getValue();
282 if (val.length <= 0) {
283 alert(zenText('NothingRecord'));
284 return false;
285 }
286 if (zenPage.ModelIdExists(val) == 0) {
287 alert(zenText('NoExistRecord'));
288 return false;
289 }
290}
291
292XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ]
293{
294<page xmlns="http://www.intersystems.com/zen" title="User.ordersprice Zen Page" >
295<dataController id="mvc" modelClass="User.ordersprice" modelId="" />
296<form controllerId="mvc" id="fillorderFORM" width="100%" >
297<spacer height="10" />
298<vgroup align="center" valign="top" labelPosition="left" >
299<hgroup>
300<button id="btnNew" caption="New" title="Clear all fields so that you can create a new record" onclick="zenPage.newRec();"/>
301<button id="btnView" caption="View" title="To edit or delete a record, enter the number in the ID field, then click this button" onclick="zenPage.viewRec();"/>
302<button id="btnSave" caption="Save" title="Save the record currently in view" onclick="zenPage.validateAndSave(); zenPage.refreshSearchTable();"/>
303<button id="btnDelete" caption="Delete" title="Delete the record currently in view" onclick="zenPage.deleteRec(); zenPage.refreshSearchTable();" />
304<button id="btnSearch" caption="Search" title="Find all records" onclick="zenPage.toggleSearchTable();" />
305</hgroup>
306<spacer height="10" />
307 <text label="(System Assigned) ID" id="ID" title="System assigned identifier. Do not edit when creating a new record." size="10" value="#(%page.MyId)#" height="23" onblur="zenPage.getRecord(zenThis.getValue());" />
308 <text id="ordersID" label="ordersID" title="Greater than or equal to -2147483648. Less than or equal to 2147483647. " size="50" dataBinding="ordersID" height="23" />
309 <text id="priceID" label="priceID" title="Greater than or equal to -2147483648. Less than or equal to 2147483647. " size="50" dataBinding="priceID" height="23" />
310 <html id="requiredText" >* Indicates a required field</html>
311 <html id="as"><a href="Untitled7.csp">Return</a></html>
312 <spacer height="20" />
313 <tablePane id="searchTable" hidden="true" maxRows="50" sql="SELECT * FROM SQLUser.ordersprice ORDER BY ID" >
314 <column colName="ID" link="javascript:zenPage.getRecord(#(%query.ID)#);" />
315 </tablePane>
316 <spacer height="10" />
317 </vgroup>
318 </form>
319</page>
320}
321
322XData Style
323{
324<style type="text/css">
325</style>
326}
327
328}