Module

fOptionsReportsDefault

Path

C:\CPRS\CPRS30\Options\fOptionsReportsDefault.pas

Last Modified

7/15/2014 3:26:40 PM

Units Used in Interface

Name Comments
fBase508Form -
fOptions -
rCore -

Units Used in Implementation

Name Comments
fReports -
rOptions -
uCore -
uOptions -

Classes

Name Comments
TfrmOptionsReportsDefault -

Procedures

Name Owner Declaration Scope Comments
btnCancelClick TfrmOptionsReportsDefault procedure btnCancelClick(Sender: TObject); Public/Published -
btnOKClick TfrmOptionsReportsDefault procedure btnOKClick(Sender: TObject); Public/Published -
btnResetClick TfrmOptionsReportsDefault procedure btnResetClick(Sender: TObject); Public/Published -
DialogOptionsHSDefault - procedure DialogOptionsHSDefault(topvalue, leftvalue, fontsize: integer; var actiontype: Integer); Interfaced -
edtDefaultEndKeyPress TfrmOptionsReportsDefault procedure edtDefaultEndKeyPress(Sender: TObject; var Key: Char); Public/Published -
edtDefaultMaxClick TfrmOptionsReportsDefault procedure edtDefaultMaxClick(Sender: TObject); Public/Published -
edtDefaultMaxExit TfrmOptionsReportsDefault procedure edtDefaultMaxExit(Sender: TObject); Public/Published -
edtDefaultMaxKeyPress TfrmOptionsReportsDefault procedure edtDefaultMaxKeyPress(Sender: TObject; var Key: Char); Public/Published -
edtDefaultStartKeyPress TfrmOptionsReportsDefault procedure edtDefaultStartKeyPress(Sender: TObject; var Key: Char); Public/Published -
fillLabelText TfrmOptionsReportsDefault procedure fillLabelText; Public Public declarations
FormCreate TfrmOptionsReportsDefault procedure FormCreate(Sender: TObject); Public/Published -
odcDfStartClick TfrmOptionsReportsDefault procedure odcDfStartClick(Sender: TObject); Public/Published -
odcDfStartExit TfrmOptionsReportsDefault procedure odcDfStartExit(Sender: TObject); Public/Published -
odcDfStartKeyPress TfrmOptionsReportsDefault procedure odcDfStartKeyPress(Sender: TObject; var Key: Char); Public/Published -
odcDfStopClick TfrmOptionsReportsDefault procedure odcDfStopClick(Sender: TObject); Public/Published -
odcDfStopExit TfrmOptionsReportsDefault procedure odcDfStopExit(Sender: TObject); Public/Published -
odcDfStopKeyPress TfrmOptionsReportsDefault procedure odcDfStopKeyPress(Sender: TObject; var Key: Char); Public/Published -

Global Variables

Name Type Declaration Comments
frmOptionsReportsDefault TfrmOptionsReportsDefault frmOptionsReportsDefault: TfrmOptionsReportsDefault; -


Module Source

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, fBase508Form, VA508AccessibilityManager;
9     
10    type
11      TfrmOptionsReportsDefault = class(TfrmBase508Form)
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.

Module Calls (2 levels)


fOptionsReportsDefault
 ├rCore
 │ └uCore
 ├fBase508Form
 │ ├uConst
 │ └uHelpManager
 ├rOptions
 │ └rCore...
 ├fReports
 │ ├fHSplit
 │ ├uConst
 │ ├rECS
 │ ├fBase508Form...
 │ ├rCore...
 │ ├rReports
 │ ├fFrame
 │ ├uCore...
 │ ├uReports
 │ ├fReportsPrint
 │ ├fReportsAdhocComponent1
 │ ├dShared
 │ ├fGraphs
 │ └fGraphData
 └uCore...

Module Called-By (2 levels)


fOptionsReportsDefault
            fOptions┘ 
            fFrame┘