1 | unit fOptionsReportsDefault;
|
---|
2 |
|
---|
3 | interface
|
---|
4 |
|
---|
5 | uses
|
---|
6 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
---|
7 | StdCtrls, ExtCtrls, Spin, fOptions, ComCtrls, ORFn, ORNet, ORCtrls,
|
---|
8 | ORDtTm, rCore;
|
---|
9 |
|
---|
10 | type
|
---|
11 | TfrmOptionsReportsDefault = class(TForm)
|
---|
12 | Label2: TLabel;
|
---|
13 | Label3: TLabel;
|
---|
14 | Label4: TLabel;
|
---|
15 | edtDefaultMax: TCaptionEdit;
|
---|
16 | Bevel1: TBevel;
|
---|
17 | Bevel2: TBevel;
|
---|
18 | Panel1: TPanel;
|
---|
19 | btnOK: TButton;
|
---|
20 | btnReset: TButton;
|
---|
21 | lblDefaultText: TMemo;
|
---|
22 | btnCancel: TButton;
|
---|
23 | odcDfStart: TORDateBox;
|
---|
24 | odcDfStop: TORDateBox;
|
---|
25 | procedure btnOKClick(Sender: TObject);
|
---|
26 | procedure btnCancelClick(Sender: TObject);
|
---|
27 | procedure btnResetClick(Sender: TObject);
|
---|
28 | procedure edtDefaultMaxExit(Sender: TObject);
|
---|
29 | procedure edtDefaultStartKeyPress(Sender: TObject; var Key: Char);
|
---|
30 | procedure edtDefaultEndKeyPress(Sender: TObject; var Key: Char);
|
---|
31 | procedure edtDefaultMaxKeyPress(Sender: TObject; var Key: Char);
|
---|
32 | procedure FormCreate(Sender: TObject);
|
---|
33 | procedure odcDfStartExit(Sender: TObject);
|
---|
34 | procedure odcDfStopExit(Sender: TObject);
|
---|
35 | procedure odcDfStartKeyPress(Sender: TObject; var Key: Char);
|
---|
36 | procedure odcDfStopKeyPress(Sender: TObject; var Key: Char);
|
---|
37 | procedure odcDfStartClick(Sender: TObject);
|
---|
38 | procedure odcDfStopClick(Sender: TObject);
|
---|
39 | procedure edtDefaultMaxClick(Sender: TObject);
|
---|
40 | private
|
---|
41 | { Private declarations }
|
---|
42 | startDate, endDate, maxOcurs: integer;
|
---|
43 | sDate,eDate: String;
|
---|
44 | public
|
---|
45 | { Public declarations }
|
---|
46 | procedure fillLabelText;
|
---|
47 |
|
---|
48 | end;
|
---|
49 |
|
---|
50 | var
|
---|
51 | frmOptionsReportsDefault: TfrmOptionsReportsDefault;
|
---|
52 |
|
---|
53 | procedure DialogOptionsHSDefault(topvalue, leftvalue, fontsize: integer; var actiontype: Integer);
|
---|
54 |
|
---|
55 | implementation
|
---|
56 |
|
---|
57 | uses rOptions, uOptions, fReports, uCore;
|
---|
58 | {$R *.DFM}
|
---|
59 |
|
---|
60 | procedure DialogOptionsHSDefault(topvalue, leftvalue, fontsize: integer; var actiontype: Integer);
|
---|
61 | var
|
---|
62 | frmOptionsReportsDefault: TfrmOptionsReportsDefault;
|
---|
63 | begin
|
---|
64 | frmOptionsReportsDefault := TfrmOptionsReportsDefault.Create(Application);
|
---|
65 | actiontype := 0;
|
---|
66 | try
|
---|
67 | with frmOptionsReportsDefault do
|
---|
68 | begin
|
---|
69 | if (topvalue < 0) or (leftvalue < 0) then
|
---|
70 | Position := poScreenCenter
|
---|
71 | else
|
---|
72 | begin
|
---|
73 | Position := poDesigned;
|
---|
74 | Top := topvalue;
|
---|
75 | Left := leftvalue;
|
---|
76 | end;
|
---|
77 | ResizeAnchoredFormToFont(frmOptionsReportsDefault);
|
---|
78 | ShowModal;
|
---|
79 | actiontype := btnOK.Tag;
|
---|
80 | end;
|
---|
81 | finally
|
---|
82 | frmOptionsReportsDefault.Release;
|
---|
83 | end;
|
---|
84 | end;
|
---|
85 |
|
---|
86 | procedure TfrmOptionsReportsDefault.btnOKClick(Sender: TObject);
|
---|
87 | var
|
---|
88 | valueStartdate, valueEnddate, valueMax, values: string;
|
---|
89 | begin
|
---|
90 | if (odcDfStart.Text = sDate) and (odcDfStop.Text = eDate) and (not edtDefaultMax.Modified ) then
|
---|
91 | begin
|
---|
92 | Close;
|
---|
93 | Exit;
|
---|
94 | end;
|
---|
95 |
|
---|
96 | if (odcDfStart.Text='') or (odcDfStop.Text='') or (edtDefaultMax.Text='') then
|
---|
97 | begin
|
---|
98 | InfoBox('You have to fill out each box, don''t leave blank!', 'Warning', MB_OK or MB_ICONWARNING);
|
---|
99 | Exit;
|
---|
100 | end;
|
---|
101 |
|
---|
102 | valueStartdate := odcDfStart.RelativeTime;
|
---|
103 | valueEnddate := odcDfStop.RelativeTime;
|
---|
104 | valueMax := edtDefaultMax.Text;
|
---|
105 | values := valueStartdate + ';' + valueEnddate + ';' + valueMax;
|
---|
106 | if InfoBox('Do you really want to change all of the reports settings to the specified values as following?'
|
---|
107 | +#13#13' Start date: ' + odcDfStart.Text
|
---|
108 | +#13' End date: ' + odcDfStop.Text
|
---|
109 | +#13' Max occurences: ' + edtDefaultMax.Text
|
---|
110 | +#13#13' Click Yes, all of the CPRS reports except for health summary reports will have these same settings.',
|
---|
111 | 'Confirmation', MB_YESNO or MB_ICONQUESTION) = IDYES then
|
---|
112 | begin
|
---|
113 | rpcSetDefaultReportsSetting(values);
|
---|
114 | rpcActiveDefaultSetting;
|
---|
115 | frmReports.LoadTreeView;
|
---|
116 | with frmReports.tvReports do
|
---|
117 | begin
|
---|
118 | if Items.Count > 0 then
|
---|
119 | Selected := Items.GetFirstNode;
|
---|
120 | frmReports.tvReportsClick(Selected);
|
---|
121 | end;
|
---|
122 | Close;
|
---|
123 | end
|
---|
124 | else
|
---|
125 | begin
|
---|
126 | odcDfStart.Text := sDate;
|
---|
127 | odcDfStop.Text := eDate;
|
---|
128 | edtDefaultMax.Text := IntToStr(maxOcurs);
|
---|
129 | end;
|
---|
130 | end;
|
---|
131 |
|
---|
132 |
|
---|
133 | procedure TfrmOptionsReportsDefault.btnCancelClick(Sender: TObject);
|
---|
134 | begin
|
---|
135 | Close;
|
---|
136 | end;
|
---|
137 |
|
---|
138 | procedure TfrmOptionsReportsDefault.btnResetClick(Sender: TObject);
|
---|
139 | var
|
---|
140 | startD,endD,maxOc: integer;
|
---|
141 | values,msg,stdate,endate: string;
|
---|
142 | today: TFMDateTime;
|
---|
143 | begin
|
---|
144 | rpcRetrieveDefaultSetting(startD,endD,maxOc,msg);
|
---|
145 | today := FMToday;
|
---|
146 | if msg = 'NODEFAULT' then
|
---|
147 | begin
|
---|
148 | InfoBox('No default report settings are available', 'Warning', MB_OK or MB_ICONWARNING);
|
---|
149 | Exit;
|
---|
150 | end;
|
---|
151 | //if (startD=startDate) and (endD=endDate) and (maxOc=maxOcurs) then
|
---|
152 | // Exit;
|
---|
153 | stdate := DateToStr(FMDateTimeToDateTime(FMDateTimeOffsetBy(today, startD)));
|
---|
154 | endate := DateToStr(FMDateTimeToDateTime(FMDateTimeOffsetBy(today, endD)));
|
---|
155 | if InfoBox('Do you really want to change all of the reports settings to the default values as following?'
|
---|
156 | +#13#13' Start date: ' + stdate
|
---|
157 | +#13' End date: ' + endate
|
---|
158 | +#13' Max occurences: ' + IntToStr(maxOc)
|
---|
159 | +#13#13' Click Yes, all of the CPRS reports except for health summary reports will have these same settings.',
|
---|
160 | 'Confirmation', MB_YESNO or MB_ICONQUESTION) = IDYES then
|
---|
161 | begin
|
---|
162 | rpcDeleteUserLevelReportsSetting;
|
---|
163 | odcDfStart.Text := stdate;
|
---|
164 | odcDfStop.Text := endate;
|
---|
165 | edtDefaultMax.Text := inttostr(maxOc);
|
---|
166 | values := odcDfStart.RelativeTime + ';' + odcDfStop.RelativeTime + ';' + edtDefaultMax.Text;
|
---|
167 | rpcSetDefaultReportsSetting(values);
|
---|
168 | rpcActiveDefaultSetting;
|
---|
169 | sDate := odcDfStart.Text;
|
---|
170 | eDate := odcDfStop.Text;
|
---|
171 | startDate := startD;
|
---|
172 | endDate := endD;
|
---|
173 | maxOcurs := maxOc;
|
---|
174 | fillLabelText;
|
---|
175 | frmReports.LoadTreeView;
|
---|
176 | with frmReports.tvReports do
|
---|
177 | begin
|
---|
178 | if Items.Count > 0 then
|
---|
179 | Selected := Items.GetFirstNode;
|
---|
180 | frmReports.tvReportsClick(Selected);
|
---|
181 | end;
|
---|
182 | end;
|
---|
183 | end;
|
---|
184 |
|
---|
185 | procedure TfrmOptionsReportsDefault.edtDefaultMaxExit(Sender: TObject);
|
---|
186 | var
|
---|
187 | newValue: string;
|
---|
188 | I, code: integer;
|
---|
189 | begin
|
---|
190 | if edtDefaultMax.Modified then
|
---|
191 | begin
|
---|
192 |
|
---|
193 | newValue := edtDefaultMax.Text;
|
---|
194 | if length(newValue) = 0 then
|
---|
195 | begin
|
---|
196 | InfoBox('Invalid value of max occurences', 'Warning', MB_OK or MB_ICONWARNING);
|
---|
197 | edtDefaultMax.Text := '100';
|
---|
198 | end;
|
---|
199 | if length(newValue) > 0 then
|
---|
200 | begin
|
---|
201 | Val(newValue, I, code);
|
---|
202 | if I = 0 then begin end; //added to keep compiler from generating a hint
|
---|
203 | if code <> 0 then
|
---|
204 | begin
|
---|
205 | InfoBox('Invalid value of max occurences', 'Warning', MB_OK or MB_ICONWARNING);
|
---|
206 | edtDefaultMax.Text := inttostr(maxOcurs);
|
---|
207 | end;
|
---|
208 | if code = 0 then
|
---|
209 | if strtoint(edtDefaultMax.Text) <= 0 then
|
---|
210 | begin
|
---|
211 | InfoBox('Invalid value of max occurences', 'Warning', MB_OK or MB_ICONWARNING);
|
---|
212 | edtDefaultMax.Text := inttostr(maxOcurs);
|
---|
213 | end;
|
---|
214 | end;
|
---|
215 | fillLabelText;
|
---|
216 |
|
---|
217 | end;
|
---|
218 | end;
|
---|
219 |
|
---|
220 | procedure TfrmOptionsReportsDefault.fillLabelText;
|
---|
221 | var
|
---|
222 | fromday,dayto: string;
|
---|
223 | begin
|
---|
224 | fromday := DateToStr(FMDateTimeToDateTime(odcDfStart.FMDateTime));
|
---|
225 | dayto := DateToStr(FMDateTimeToDateTime(odcDfStop.FMDateTime));
|
---|
226 | lblDefaultText.Text := 'All of the CPRS reports except for Health Summary reports will be displayed on the CPRS Reports tab from start date: '
|
---|
227 | + fromday + ' to end date: ' + dayto + '.';
|
---|
228 | end;
|
---|
229 |
|
---|
230 | procedure TfrmOptionsReportsDefault.edtDefaultStartKeyPress(Sender: TObject;
|
---|
231 | var Key: Char);
|
---|
232 | begin
|
---|
233 | if Key = #13 then
|
---|
234 | begin
|
---|
235 | Perform(WM_NextDlgCtl, 0, 0);
|
---|
236 | exit;
|
---|
237 | end;
|
---|
238 | end;
|
---|
239 |
|
---|
240 | procedure TfrmOptionsReportsDefault.edtDefaultEndKeyPress(Sender: TObject;
|
---|
241 | var Key: Char);
|
---|
242 | begin
|
---|
243 | if Key = #13 then
|
---|
244 | begin
|
---|
245 | Perform(WM_NextDlgCtl, 0, 0);
|
---|
246 | exit;
|
---|
247 | end;
|
---|
248 | end;
|
---|
249 |
|
---|
250 | procedure TfrmOptionsReportsDefault.edtDefaultMaxKeyPress(Sender: TObject;
|
---|
251 | var Key: Char);
|
---|
252 | begin
|
---|
253 | if Key = #13 then
|
---|
254 | begin
|
---|
255 | Perform(WM_NextDlgCtl, 0, 0);
|
---|
256 | exit;
|
---|
257 | end;
|
---|
258 | end;
|
---|
259 |
|
---|
260 | procedure TfrmOptionsReportsDefault.FormCreate(Sender: TObject);
|
---|
261 | var
|
---|
262 | today : TFMDateTime;
|
---|
263 | begin
|
---|
264 | today := FMToday;
|
---|
265 | rpcGetDefaultReportsSetting(startDate,endDate,maxOcurs);
|
---|
266 | odcDfStart.text := DateToStr(FMDateTimeToDateTime(FMDateTimeOffsetBy(today, startDate)));
|
---|
267 | sDate := odcDfStart.Text;
|
---|
268 | odcDfStop.text := DateToStr(FMDateTimeToDateTime(FMDateTimeOffsetBy(today, endDate)));
|
---|
269 | eDate := odcDfStop.Text;
|
---|
270 | if maxOcurs <> 0 then
|
---|
271 | begin
|
---|
272 | edtDefaultMax.Text := inttostr(maxOcurs);
|
---|
273 | fillLabelText;
|
---|
274 | end;
|
---|
275 | lblDefaultText.Text := 'Click dots in boxes to set start and end dates. You can also input values directly.';
|
---|
276 | btnCancel.caption := 'Cancel';
|
---|
277 | if (not User.ToolsRptEdit) then // For users with Reports settings edit parameter not set.
|
---|
278 | begin
|
---|
279 | lblDefaultText.Text := 'Settings can only be viewed (no editing provided).';
|
---|
280 | btnReset.visible := false;
|
---|
281 | btnOK.visible := false;
|
---|
282 | btnCancel.caption := 'Close';
|
---|
283 | odcDfStart.readOnly := true;
|
---|
284 | odcDfStart.enabled := false;
|
---|
285 | odcDfStart.onExit := nil;
|
---|
286 | odcDfStart.onKeyPress := nil;
|
---|
287 | odcDfStop.readOnly := true;
|
---|
288 | odcDfStop.enabled := false;
|
---|
289 | odcDfStop.onExit := nil;
|
---|
290 | odcDfStop.onKeyPress := nil;
|
---|
291 | edtDefaultMax.readOnly := true;
|
---|
292 | end;
|
---|
293 | end;
|
---|
294 |
|
---|
295 | procedure TfrmOptionsReportsDefault.odcDfStartExit(Sender: TObject);
|
---|
296 | const
|
---|
297 | TX_BAD_START = 'The start date is not valid.';
|
---|
298 | TX_STOPSTART = 'The start date must not be after the stop date.';
|
---|
299 |
|
---|
300 | var
|
---|
301 | x,ErrMsg,datestart,datestop: String;
|
---|
302 | begin
|
---|
303 | if odcDfStart.text = '' then
|
---|
304 | begin
|
---|
305 | InfoBox(TX_BAD_START, 'Warning', MB_OK or MB_ICONWARNING);
|
---|
306 | odcDfStart.Text := sDate;
|
---|
307 | odcDfStart.Setfocus;
|
---|
308 | odcDfStart.SelectAll;
|
---|
309 | exit;
|
---|
310 | end;
|
---|
311 |
|
---|
312 | ErrMsg := '';
|
---|
313 | odcDfStart.Validate(x);
|
---|
314 | if Length(x) > 0 then
|
---|
315 | begin
|
---|
316 | ErrMsg := TX_BAD_START;
|
---|
317 | InfoBox(TX_BAD_START, 'Warning', MB_OK or MB_ICONWARNING);
|
---|
318 | odcDfStart.Text := sDate;
|
---|
319 | odcDfStart.Setfocus;
|
---|
320 | odcDfStart.SelectAll;
|
---|
321 | exit;
|
---|
322 | end;
|
---|
323 | datestart := odcDfStart.RelativeTime;
|
---|
324 | datestop := odcDfStop.RelativeTime;
|
---|
325 | delete(datestart,1,1);
|
---|
326 | delete(datestop,1,1);
|
---|
327 | if StrToIntDef(datestop,0) < StrToIntDef(datestart,0) then
|
---|
328 | begin
|
---|
329 | InfoBox(TX_STOPSTART, 'Warning', MB_OK or MB_ICONWARNING);
|
---|
330 | odcDfStart.Text := odcDfStop.Text;
|
---|
331 | odcDfStart.SetFocus;
|
---|
332 | odcDfStart.SelectAll;
|
---|
333 | exit;
|
---|
334 | end;
|
---|
335 | odcDfStart.Text := DateToStr(FMDateTimeToDateTime(odcDfStart.FMDateTime));
|
---|
336 | fillLabelText;
|
---|
337 | end;
|
---|
338 |
|
---|
339 | procedure TfrmOptionsReportsDefault.odcDfStopExit(Sender: TObject);
|
---|
340 | const
|
---|
341 | TX_BAD_STOP = 'The stop date is not valid.';
|
---|
342 | TX_BAD_ORDER = 'The stop date must not be earlier than start date.';
|
---|
343 | var
|
---|
344 | x, ErrMsg,datestart,datestop: string;
|
---|
345 | begin
|
---|
346 | if odcDfStop.text = '' then
|
---|
347 | begin
|
---|
348 | InfoBox(TX_BAD_STOP, 'Warning', MB_OK or MB_ICONWARNING);
|
---|
349 | odcDfStop.Text := eDate;
|
---|
350 | odcDfStop.Setfocus;
|
---|
351 | odcDfStop.SelectAll;
|
---|
352 | exit;
|
---|
353 | end;
|
---|
354 |
|
---|
355 | ErrMsg := '';
|
---|
356 | odcDfStop.Validate(x);
|
---|
357 | if Length(x) > 0 then
|
---|
358 | begin
|
---|
359 | ErrMsg := TX_BAD_STOP;
|
---|
360 | InfoBox(TX_BAD_STOP, 'Warning', MB_OK or MB_ICONWARNING);
|
---|
361 | odcDfStop.Visible := True;
|
---|
362 | odcDfStop.Text := eDate;
|
---|
363 | odcDfStop.Setfocus;
|
---|
364 | odcDfStop.SelectAll;
|
---|
365 | exit;
|
---|
366 | end;
|
---|
367 | datestart := odcDfStart.RelativeTime;
|
---|
368 | datestop := odcDfStop.RelativeTime;
|
---|
369 | delete(datestart,1,1);
|
---|
370 | delete(datestop,1,1);
|
---|
371 | if StrToIntDef(datestop,0) < StrToIntDef(datestart,0) then
|
---|
372 | begin
|
---|
373 | InfoBox(TX_BAD_ORDER, 'Warning', MB_OK or MB_ICONWARNING);
|
---|
374 | odcDfStop.Text := odcDfStart.Text;
|
---|
375 | odcDfStop.SetFocus;
|
---|
376 | odcDfStop.SelectAll;
|
---|
377 | exit;
|
---|
378 | end;
|
---|
379 | odcDfStop.Text := DateToStr(FMDateTimeToDateTime(odcDfStop.FMDateTime));
|
---|
380 | fillLabelText;
|
---|
381 | end;
|
---|
382 |
|
---|
383 |
|
---|
384 | procedure TfrmOptionsReportsDefault.odcDfStartKeyPress(Sender: TObject;
|
---|
385 | var Key: Char);
|
---|
386 | begin
|
---|
387 | if Key = #13 then
|
---|
388 | begin
|
---|
389 | Perform(WM_NextDlgCtl, 0, 0);
|
---|
390 | exit;
|
---|
391 | end;
|
---|
392 | if Key = #27 then //Escape
|
---|
393 | begin
|
---|
394 | Key := #0;
|
---|
395 | btnCancel.Click;
|
---|
396 | end;
|
---|
397 | end;
|
---|
398 |
|
---|
399 | procedure TfrmOptionsReportsDefault.odcDfStopKeyPress(Sender: TObject;
|
---|
400 | var Key: Char);
|
---|
401 | begin
|
---|
402 | if Key = #13 then
|
---|
403 | begin
|
---|
404 | Perform(WM_NextDlgCtl, 0, 0);
|
---|
405 | exit;
|
---|
406 | end;
|
---|
407 | if Key = #27 then //Escape
|
---|
408 | begin
|
---|
409 | Key := #0;
|
---|
410 | btnCancel.Click;
|
---|
411 | end;
|
---|
412 | end;
|
---|
413 |
|
---|
414 | procedure TfrmOptionsReportsDefault.odcDfStartClick(Sender: TObject);
|
---|
415 | begin
|
---|
416 | odcDfStart.SelectAll;
|
---|
417 | end;
|
---|
418 |
|
---|
419 | procedure TfrmOptionsReportsDefault.odcDfStopClick(Sender: TObject);
|
---|
420 | begin
|
---|
421 | odcDfStop.SelectAll;
|
---|
422 | end;
|
---|
423 |
|
---|
424 | procedure TfrmOptionsReportsDefault.edtDefaultMaxClick(Sender: TObject);
|
---|
425 | begin
|
---|
426 | edtDefaultMax.SelectAll;
|
---|
427 | end;
|
---|
428 |
|
---|
429 | end.
|
---|