| [459] | 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);
 | 
|---|
| [460] | 202 |       if I = 0 then begin end; //added to keep compiler from generating a hint
 | 
|---|
| [459] | 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.
 | 
|---|