| [453] | 1 | //kt -- Modified with SourceScanner on 8/8/2007 | 
|---|
|  | 2 | unit fOtherSchedule; | 
|---|
|  | 3 |  | 
|---|
|  | 4 | interface | 
|---|
|  | 5 |  | 
|---|
|  | 6 | uses | 
|---|
|  | 7 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, | 
|---|
|  | 8 | Dialogs, ComCtrls, StdCtrls, ExtCtrls, Buttons, fAutoSz, rMisc, DKLang; | 
|---|
|  | 9 |  | 
|---|
|  | 10 | //const | 
|---|
|  | 11 | //NSS_TXT = 'This order will not become active until a valid schedule is used.';  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 12 | function NSS_TXT : string;  //kt | 
|---|
|  | 13 |  | 
|---|
|  | 14 | type | 
|---|
|  | 15 | TfrmOtherSchedule = class(TfrmAutoSz) | 
|---|
|  | 16 | Panel1: TPanel; | 
|---|
|  | 17 | Image1: TImage; | 
|---|
|  | 18 | Panel3: TPanel; | 
|---|
|  | 19 | GroupBox1: TGroupBox; | 
|---|
|  | 20 | cbo7: TCheckBox; | 
|---|
|  | 21 | cbo1: TCheckBox; | 
|---|
|  | 22 | cbo2: TCheckBox; | 
|---|
|  | 23 | cbo3: TCheckBox; | 
|---|
|  | 24 | cbo4: TCheckBox; | 
|---|
|  | 25 | cbo5: TCheckBox; | 
|---|
|  | 26 | cbo6: TCheckBox; | 
|---|
|  | 27 | GroupBox2: TGroupBox; | 
|---|
|  | 28 | lstHour: TListBox; | 
|---|
|  | 29 | lstMinute: TListBox; | 
|---|
|  | 30 | Panel4: TPanel; | 
|---|
|  | 31 | btn0k1: TButton; | 
|---|
|  | 32 | btnCancel: TButton; | 
|---|
|  | 33 | txtSchedule: TEdit; | 
|---|
|  | 34 | Label1: TLabel; | 
|---|
|  | 35 | btnReset: TButton; | 
|---|
|  | 36 | btnRemove: TButton; | 
|---|
|  | 37 | memMessage: TMemo; | 
|---|
|  | 38 | Splitter1: TSplitter; | 
|---|
|  | 39 | btnAdd: TButton; | 
|---|
|  | 40 | Button1: TButton; | 
|---|
|  | 41 | DKLanguageController1: TDKLanguageController; | 
|---|
|  | 42 | procedure FormCreate(Sender: TObject); | 
|---|
|  | 43 | procedure btnCancelClick(Sender: TObject); | 
|---|
|  | 44 | procedure btn0k1Click(Sender: TObject); | 
|---|
|  | 45 | procedure cbo7Click(Sender: TObject); | 
|---|
|  | 46 | procedure cbo1Click(Sender: TObject); | 
|---|
|  | 47 | procedure cbo2Click(Sender: TObject); | 
|---|
|  | 48 | procedure cbo3Click(Sender: TObject); | 
|---|
|  | 49 | procedure cbo4Click(Sender: TObject); | 
|---|
|  | 50 | procedure cbo5Click(Sender: TObject); | 
|---|
|  | 51 | procedure cbo6Click(Sender: TObject); | 
|---|
|  | 52 | procedure btnAddClick(Sender: TObject); | 
|---|
|  | 53 | procedure btnResetClick(Sender: TObject); | 
|---|
|  | 54 | procedure btnRemoveClick(Sender: TObject); | 
|---|
|  | 55 | procedure FormClose(Sender: TObject; var Action: TCloseAction); | 
|---|
|  | 56 | procedure lstHourClick(Sender: TObject); | 
|---|
|  | 57 | procedure txtScheduleChange(Sender: TObject); | 
|---|
|  | 58 | procedure lstMinuteMouseUp(Sender: TObject; Button: TMouseButton; | 
|---|
|  | 59 | Shift: TShiftState; X, Y: Integer); | 
|---|
|  | 60 | procedure lstMinuteKeyDown(Sender: TObject; var Key: Word; | 
|---|
|  | 61 | Shift: TShiftState); | 
|---|
|  | 62 | procedure Button1Click(Sender: TObject); | 
|---|
|  | 63 | private | 
|---|
|  | 64 | FDaySchedule: array [1..7] of string; | 
|---|
|  | 65 | FTimeSchedule: TStringList; | 
|---|
|  | 66 | FOtherSchedule: String; | 
|---|
|  | 67 | FFromCheckBox: boolean; | 
|---|
|  | 68 | FFromEditBox: boolean; | 
|---|
|  | 69 | function GetSiteMessage: string; | 
|---|
|  | 70 | procedure SetDaySchedule(Sender: TObject); | 
|---|
|  | 71 | procedure SetTimeSchedule; | 
|---|
|  | 72 | procedure UpdateOnFreeTextInput; | 
|---|
|  | 73 | function CheckDay(ADayStr: string): string; | 
|---|
|  | 74 |  | 
|---|
|  | 75 | public | 
|---|
|  | 76 | end; | 
|---|
|  | 77 |  | 
|---|
|  | 78 | function ShowOtherSchedule(var ASchedule: string): boolean; | 
|---|
|  | 79 |  | 
|---|
|  | 80 | implementation | 
|---|
|  | 81 |  | 
|---|
|  | 82 | uses ORFn, ORNet, rOrders; | 
|---|
|  | 83 | {$R *.dfm} | 
|---|
|  | 84 |  | 
|---|
|  | 85 | function NSS_TXT : string;  //kt added to replace const | 
|---|
|  | 86 | begin Result := DKLangConstW('fOtherSchedule_This_order_will_not_become_active_until_a_valid_schedule_is_usedx'); //kt added 8/8/2007 | 
|---|
|  | 87 | end; | 
|---|
|  | 88 |  | 
|---|
|  | 89 | function ShowOtherSchedule(var ASchedule: string): boolean; | 
|---|
|  | 90 | var | 
|---|
|  | 91 | frmOtherSchedule: TfrmOtherSchedule; | 
|---|
|  | 92 | begin | 
|---|
|  | 93 | Result := False; | 
|---|
|  | 94 | try | 
|---|
|  | 95 | frmOtherSchedule := TfrmOtherSchedule.Create(Application); | 
|---|
|  | 96 | ResizeFormToFont(TForm(frmOtherSchedule)); | 
|---|
|  | 97 | SetFormPosition(frmOtherSchedule); | 
|---|
|  | 98 | if frmOtherSchedule.ShowModal = mrOK then | 
|---|
|  | 99 | begin | 
|---|
|  | 100 | ASchedule := UpperCase(frmOtherSchedule.FOtherSchedule); | 
|---|
|  | 101 | Result := True; | 
|---|
|  | 102 | end; | 
|---|
|  | 103 | except | 
|---|
|  | 104 | // ShowMessage('Error happen when building other schedule');  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 105 | ShowMessage(DKLangConstW('fOtherSchedule_Error_happen_when_building_other_schedule')); //kt added 8/8/2007 | 
|---|
|  | 106 | end; | 
|---|
|  | 107 | end; | 
|---|
|  | 108 |  | 
|---|
|  | 109 |  | 
|---|
|  | 110 | procedure TfrmOtherSchedule.FormCreate(Sender: TObject); | 
|---|
|  | 111 | var | 
|---|
|  | 112 | i: integer; | 
|---|
|  | 113 | nssMsg: string; | 
|---|
|  | 114 | begin | 
|---|
|  | 115 | FFromCheckBox := False; | 
|---|
|  | 116 | FFromEditBox := False; | 
|---|
|  | 117 | image1.Picture.Icon.Handle := LoadIcon(0, IDI_WARNING); | 
|---|
|  | 118 | for i := 1 to 7 do | 
|---|
|  | 119 | FDaySchedule[i] := ''; | 
|---|
|  | 120 | FTimeSchedule := TStringlist.Create; | 
|---|
|  | 121 | FOtherSchedule := ''; | 
|---|
|  | 122 | nssMsg := GetSiteMessage; | 
|---|
|  | 123 | if Length(nssMsg)< 1 then | 
|---|
|  | 124 | nssMsg := NSS_TXT; | 
|---|
|  | 125 | memMessage.Lines.Add(nssMsg); | 
|---|
|  | 126 | end; | 
|---|
|  | 127 |  | 
|---|
|  | 128 | procedure TfrmOtherSchedule.btnCancelClick(Sender: TObject); | 
|---|
|  | 129 | begin | 
|---|
|  | 130 | modalResult := mrCancel; | 
|---|
|  | 131 | end; | 
|---|
|  | 132 |  | 
|---|
|  | 133 | procedure TfrmOtherSchedule.btn0k1Click(Sender: TObject); | 
|---|
|  | 134 | begin | 
|---|
|  | 135 | if (cbo1.Checked = false) and (cbo2.Checked = false) and (cbo3.Checked = false) and (cbo4.Checked = false) and (cbo5.Checked = false) and | 
|---|
|  | 136 | (cbo6.Checked = false) and (cbo7.Checked = false) then | 
|---|
|  | 137 | begin | 
|---|
|  | 138 | //    ShowMessage('A day of week must be selected!');  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 139 | ShowMessage(DKLangConstW('fOtherSchedule_A_day_of_week_must_be_selectedx')); //kt added 8/8/2007 | 
|---|
|  | 140 | Exit; | 
|---|
|  | 141 | end; | 
|---|
|  | 142 | if not IsValidSchStr(FOtherSchedule) then | 
|---|
|  | 143 | begin | 
|---|
|  | 144 | //  ShowMessage('The schedule you entered is invalid!');  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 145 | ShowMessage(DKLangConstW('fOtherSchedule_The_schedule_you_entered_is_invalidx')); //kt added 8/8/2007 | 
|---|
|  | 146 | Exit; | 
|---|
|  | 147 | end; | 
|---|
|  | 148 | modalResult := mrOK; | 
|---|
|  | 149 | end; | 
|---|
|  | 150 |  | 
|---|
|  | 151 | procedure TfrmOtherSchedule.SetDaySchedule(Sender: TObject); | 
|---|
|  | 152 | var | 
|---|
|  | 153 | i : integer; | 
|---|
|  | 154 | TimePart, DayPart: string; | 
|---|
|  | 155 | begin | 
|---|
|  | 156 | with (Sender as TCheckBox) do | 
|---|
|  | 157 | begin | 
|---|
|  | 158 | try | 
|---|
|  | 159 | if TCheckBox(Sender).Checked then | 
|---|
|  | 160 | FDaySchedule[TCheckBox(Sender).Tag] := Copy(TCheckBox(Sender).Caption,0,2) | 
|---|
|  | 161 | else | 
|---|
|  | 162 | FDaySchedule[TCheckBox(Sender).Tag] := ''; | 
|---|
|  | 163 | except | 
|---|
|  | 164 | //    ShowMessage('Error happened when building day schedule.');  <-- original line.  //kt 8/8/2007 | 
|---|
|  | 165 | ShowMessage(DKLangConstW('fOtherSchedule_Error_happened_when_building_day_schedulex')); //kt added 8/8/2007 | 
|---|
|  | 166 | Exit; | 
|---|
|  | 167 | end; | 
|---|
|  | 168 | end; | 
|---|
|  | 169 |  | 
|---|
|  | 170 | TimePart := ''; | 
|---|
|  | 171 | DayPart := ''; | 
|---|
|  | 172 | for i := 0 to FTimeSchedule.Count - 1 do | 
|---|
|  | 173 | begin | 
|---|
|  | 174 | if i = 0 then TimePart := TimePart + FTimeSchedule[i] | 
|---|
|  | 175 | else TimePart := TimePart + '-' + FTimeSchedule[i]; | 
|---|
|  | 176 | end; | 
|---|
|  | 177 | for i := Low(FDaySchedule) to High(FDaySchedule) do | 
|---|
|  | 178 | begin | 
|---|
|  | 179 | if Length(FDaySchedule[i])>0 then | 
|---|
|  | 180 | begin | 
|---|
|  | 181 | if DayPart = '' then DayPart := FDaySchedule[i] | 
|---|
|  | 182 | else DayPart := DayPart + '-' + FDaySchedule[i]; | 
|---|
|  | 183 | end; | 
|---|
|  | 184 | end; | 
|---|
|  | 185 | if Length(TimePart) > 0 then | 
|---|
|  | 186 | begin | 
|---|
|  | 187 | if Length(DayPart) > 0 then | 
|---|
|  | 188 | FOtherSchedule := DayPart + '@' + TimePart | 
|---|
|  | 189 | else if Length(DayPart) = 0 then | 
|---|
|  | 190 | FOtherSchedule := TimePart; | 
|---|
|  | 191 | end | 
|---|
|  | 192 | else FOtherSchedule := DayPart; | 
|---|
|  | 193 | txtSchedule.Text := FOtherSchedule; | 
|---|
|  | 194 | end; | 
|---|
|  | 195 |  | 
|---|
|  | 196 | procedure TfrmOtherSchedule.SetTimeSchedule; | 
|---|
|  | 197 | var | 
|---|
|  | 198 | i : integer; | 
|---|
|  | 199 | TimePart, DayPart,APRN,ASearchTxt: string; | 
|---|
|  | 200 | begin | 
|---|
|  | 201 | TimePart := ''; | 
|---|
|  | 202 | DayPart := ''; | 
|---|
|  | 203 | APRN := ''; | 
|---|
|  | 204 | ASearchTxt := UpperCase(txtSchedule.Text); | 
|---|
|  | 205 | if StrPos(PChar(ASearchTxt),PChar('PRN')) <> nil then APRN := ' PRN'; //hds8326 retain PRN free text if data time entered | 
|---|
|  | 206 | for i := 0 to FTimeSchedule.Count - 1 do | 
|---|
|  | 207 | begin | 
|---|
|  | 208 | if i = 0 then TimePart := TimePart + FTimeSchedule[i] | 
|---|
|  | 209 | else TimePart := TimePart + '-' + FTimeSchedule[i]; | 
|---|
|  | 210 | end; | 
|---|
|  | 211 | for i := Low(FDaySchedule) to High(FDaySchedule) do | 
|---|
|  | 212 | begin | 
|---|
|  | 213 | if Length(FDaySchedule[i])>0 then | 
|---|
|  | 214 | begin | 
|---|
|  | 215 | if DayPart = '' then DayPart := FDaySchedule[i] | 
|---|
|  | 216 | else DayPart := DayPart + '-' + FDaySchedule[i]; | 
|---|
|  | 217 | end; | 
|---|
|  | 218 | end; | 
|---|
|  | 219 | if Length(DayPart) > 0 then | 
|---|
|  | 220 | begin | 
|---|
|  | 221 | if Length(TimePart) > 0 then | 
|---|
|  | 222 | FOtherSchedule := DayPart + '@' + TimePart | 
|---|
|  | 223 | else | 
|---|
|  | 224 | FOtherSchedule := DayPart; | 
|---|
|  | 225 | end | 
|---|
|  | 226 | else FOtherSchedule := TimePart; | 
|---|
|  | 227 | if Length(APRN) > 0 then FOtherSchedule := FOtherSchedule + APRN; //hds8326 retain PRN free text if data time entered | 
|---|
|  | 228 | txtSchedule.Text := FOtherSchedule; | 
|---|
|  | 229 | end; | 
|---|
|  | 230 |  | 
|---|
|  | 231 | procedure TfrmOtherSchedule.cbo7Click(Sender: TObject); | 
|---|
|  | 232 | begin | 
|---|
|  | 233 | FFromCheckBox := True; | 
|---|
|  | 234 | if not FFromEditBox then | 
|---|
|  | 235 | SetDaySchedule(Sender); | 
|---|
|  | 236 | FFromCheckBox := False; | 
|---|
|  | 237 | end; | 
|---|
|  | 238 |  | 
|---|
|  | 239 | procedure TfrmOtherSchedule.cbo1Click(Sender: TObject); | 
|---|
|  | 240 | begin | 
|---|
|  | 241 | FFromCheckBox := True; | 
|---|
|  | 242 | if not FFromEditBox then | 
|---|
|  | 243 | SetDaySchedule(Sender); | 
|---|
|  | 244 | FFromCheckBox := False; | 
|---|
|  | 245 | end; | 
|---|
|  | 246 |  | 
|---|
|  | 247 | procedure TfrmOtherSchedule.cbo2Click(Sender: TObject); | 
|---|
|  | 248 | begin | 
|---|
|  | 249 | FFromCheckBox := True; | 
|---|
|  | 250 | if not FFromEditBox then | 
|---|
|  | 251 | SetDaySchedule(Sender); | 
|---|
|  | 252 | FFromCheckBox := False; | 
|---|
|  | 253 | end; | 
|---|
|  | 254 |  | 
|---|
|  | 255 | procedure TfrmOtherSchedule.cbo3Click(Sender: TObject); | 
|---|
|  | 256 | begin | 
|---|
|  | 257 | FFromCheckBox := True; | 
|---|
|  | 258 | if not FFromEditBox then | 
|---|
|  | 259 | SetDaySchedule(Sender); | 
|---|
|  | 260 | FFromCheckBox := False; | 
|---|
|  | 261 | end; | 
|---|
|  | 262 |  | 
|---|
|  | 263 | procedure TfrmOtherSchedule.cbo4Click(Sender: TObject); | 
|---|
|  | 264 | begin | 
|---|
|  | 265 | FFromCheckBox := True; | 
|---|
|  | 266 | if not FFromEditBox then | 
|---|
|  | 267 | SetDaySchedule(Sender); | 
|---|
|  | 268 | FFromCheckBox := False; | 
|---|
|  | 269 | end; | 
|---|
|  | 270 |  | 
|---|
|  | 271 | procedure TfrmOtherSchedule.cbo5Click(Sender: TObject); | 
|---|
|  | 272 | begin | 
|---|
|  | 273 | FFromCheckBox := True; | 
|---|
|  | 274 | if not FFromEditBox then | 
|---|
|  | 275 | SetDaySchedule(Sender); | 
|---|
|  | 276 | FFromCheckBox := False; | 
|---|
|  | 277 | end; | 
|---|
|  | 278 |  | 
|---|
|  | 279 | procedure TfrmOtherSchedule.cbo6Click(Sender: TObject); | 
|---|
|  | 280 | begin | 
|---|
|  | 281 | FFromCheckBox := True; | 
|---|
|  | 282 | if not FFromEditBox then | 
|---|
|  | 283 | SetDaySchedule(Sender); | 
|---|
|  | 284 | FFromCheckBox := False; | 
|---|
|  | 285 | end; | 
|---|
|  | 286 |  | 
|---|
|  | 287 | procedure TfrmOtherSchedule.btnAddClick(Sender: TObject); | 
|---|
|  | 288 | var | 
|---|
|  | 289 | hour, min: string; | 
|---|
|  | 290 | begin | 
|---|
|  | 291 | if lstHour.ItemIndex < 0 then exit; | 
|---|
|  | 292 | hour := lstHour.Items[lstHour.ItemIndex]; | 
|---|
|  | 293 | hour := Trim(Copy(hour,1,3)); | 
|---|
|  | 294 | if length(Trim(hour)) = 1 then | 
|---|
|  | 295 | hour := '0' + Trim(hour); | 
|---|
|  | 296 | if lstMinute.ItemIndex >= 0 then | 
|---|
|  | 297 | begin | 
|---|
|  | 298 | min := lstMinute.Items[lstMinute.itemIndex]; | 
|---|
|  | 299 | min := Copy(min,2,2); | 
|---|
|  | 300 | end; | 
|---|
|  | 301 | if min = '' then min := '00'; | 
|---|
|  | 302 | if (hour='00') and (min='00') then hour := '24'; | 
|---|
|  | 303 | if FTimeSchedule.IndexOf(hour)>=0 then | 
|---|
|  | 304 | begin | 
|---|
|  | 305 | FTimeSchedule[FTimeSchedule.IndexOf(hour)] := hour + min; | 
|---|
|  | 306 | end; | 
|---|
|  | 307 | if FTimeSchedule.IndexOf(hour+min) < 0 then | 
|---|
|  | 308 | FTimeSchedule.Add(hour+min); | 
|---|
|  | 309 | FTimeSchedule.Sort; | 
|---|
|  | 310 | SetTimeSchedule; | 
|---|
|  | 311 | end; | 
|---|
|  | 312 |  | 
|---|
|  | 313 | procedure TfrmOtherSchedule.btnResetClick(Sender: TObject); | 
|---|
|  | 314 | var | 
|---|
|  | 315 | i : integer; | 
|---|
|  | 316 | begin | 
|---|
|  | 317 | cbo1.Checked := false; | 
|---|
|  | 318 | cbo2.Checked := false; | 
|---|
|  | 319 | cbo3.Checked:= false; | 
|---|
|  | 320 | cbo4.Checked := false; | 
|---|
|  | 321 | cbo5.Checked := false; | 
|---|
|  | 322 | cbo6.Checked := false; | 
|---|
|  | 323 | cbo7.Checked := false; | 
|---|
|  | 324 | lstHour.ItemIndex := -1; | 
|---|
|  | 325 | lstMinute.ItemIndex := -1; | 
|---|
|  | 326 | for i := low(FDaySchedule) to high(FDaySchedule) do | 
|---|
|  | 327 | FDaySchedule[i] := ''; | 
|---|
|  | 328 | FTimeSchedule.Clear; | 
|---|
|  | 329 | FOtherSchedule := ''; | 
|---|
|  | 330 | txtSchedule.Text := ''; | 
|---|
|  | 331 | end; | 
|---|
|  | 332 |  | 
|---|
|  | 333 | procedure TfrmOtherSchedule.btnRemoveClick(Sender: TObject); | 
|---|
|  | 334 | var | 
|---|
|  | 335 | hour, min: string; | 
|---|
|  | 336 | idx : integer; | 
|---|
|  | 337 | begin | 
|---|
|  | 338 | FFromCheckBox := True; | 
|---|
|  | 339 | if lstHour.ItemIndex >= 0 then | 
|---|
|  | 340 | begin | 
|---|
|  | 341 | hour := lstHour.Items[lstHour.ItemIndex]; | 
|---|
|  | 342 | hour := Trim(Copy(hour,1,3)); | 
|---|
|  | 343 | if length(hour) = 1 then | 
|---|
|  | 344 | hour := '0' + Trim(hour); | 
|---|
|  | 345 | end; | 
|---|
|  | 346 | if lstMinute.ItemIndex >= 0 then | 
|---|
|  | 347 | begin | 
|---|
|  | 348 | min := lstMinute.Items[lstMinute.itemIndex]; | 
|---|
|  | 349 | min := Copy(min,2,2); | 
|---|
|  | 350 | end; | 
|---|
|  | 351 | if min = '' then min := '00'; | 
|---|
|  | 352 | if (hour='00') and (min='00') then hour := '24'; | 
|---|
|  | 353 | idx := FTimeSchedule.IndexOf(hour+min); | 
|---|
|  | 354 | if idx > -1 then | 
|---|
|  | 355 | FTimeSchedule.Delete(idx); | 
|---|
|  | 356 | FTimeSchedule.Sort; | 
|---|
|  | 357 | SetTimeSchedule; | 
|---|
|  | 358 | FFromCheckBox := False; | 
|---|
|  | 359 | end; | 
|---|
|  | 360 |  | 
|---|
|  | 361 | function TfrmOtherSchedule.GetSiteMessage: string; | 
|---|
|  | 362 | var | 
|---|
|  | 363 | i: integer; | 
|---|
|  | 364 | rstStr: string; | 
|---|
|  | 365 | begin | 
|---|
|  | 366 | rstStr := ''; | 
|---|
|  | 367 | CallV('ORWNSS NSSMSG',[nil]); | 
|---|
|  | 368 | for i := 0 to RPCBrokerV.Results.Count - 1 do | 
|---|
|  | 369 | rstStr := rstStr + RPCBrokerV.Results[i]; | 
|---|
|  | 370 | Result := rstStr; | 
|---|
|  | 371 | end; | 
|---|
|  | 372 |  | 
|---|
|  | 373 | procedure TfrmOtherSchedule.FormClose(Sender: TObject; | 
|---|
|  | 374 | var Action: TCloseAction); | 
|---|
|  | 375 | begin | 
|---|
|  | 376 | try | 
|---|
|  | 377 | inherited; | 
|---|
|  | 378 | SaveUserBounds(Self); | 
|---|
|  | 379 | Action := caFree; | 
|---|
|  | 380 | except | 
|---|
|  | 381 | Action := caFree; | 
|---|
|  | 382 | end; | 
|---|
|  | 383 | end; | 
|---|
|  | 384 |  | 
|---|
|  | 385 | procedure TfrmOtherSchedule.UpdateOnFreeTextInput; | 
|---|
|  | 386 | var | 
|---|
|  | 387 | dayStr,timeStr: string; | 
|---|
|  | 388 | dayList: TStringList; | 
|---|
|  | 389 | i,Code,cnt : integer; | 
|---|
|  | 390 | OrigSch: string; | 
|---|
|  | 391 |  | 
|---|
|  | 392 | procedure updateCheckbox(aDList: TStringList); | 
|---|
|  | 393 | var | 
|---|
|  | 394 | idx: integer; | 
|---|
|  | 395 | x: string; | 
|---|
|  | 396 | begin | 
|---|
|  | 397 | for idx := aDList.Count - 1 downto 0 do | 
|---|
|  | 398 | begin | 
|---|
|  | 399 | // cq hds8326 PRN entered manually split PRN from DOW to retain last DOW | 
|---|
|  | 400 | x := UpperCase(aDList.Strings[idx]); // added to properly process DOW when followed by a space "PRN". | 
|---|
|  | 401 | if Piece(x,' ',2) = 'PRN' then | 
|---|
|  | 402 | aDLIst.Strings[idx] := Piece(x,' ',1); | 
|---|
|  | 403 | // cq hds8326 | 
|---|
|  | 404 | if ((CheckDay(aDList[idx]) = 'SUN') or (CheckDay(aDList[idx]) = 'SU')) then | 
|---|
|  | 405 | begin | 
|---|
|  | 406 | cbo7.Checked := true; | 
|---|
|  | 407 | aDList[idx] := 'SU'; | 
|---|
|  | 408 | FDaySchedule[cbo7.tag] := 'SU'; | 
|---|
|  | 409 | end | 
|---|
|  | 410 | else if ((CheckDay(aDList[idx]) = 'MON') or (CheckDay(aDList[idx]) = 'MO')) then | 
|---|
|  | 411 | begin | 
|---|
|  | 412 | cbo1.Checked := true; | 
|---|
|  | 413 | aDList[idx] := 'MO'; | 
|---|
|  | 414 | FDaySchedule[cbo1.tag] := 'MO'; | 
|---|
|  | 415 | end | 
|---|
|  | 416 | else if ((CheckDay(aDList[idx]) = 'TUE') or (CheckDay(aDList[idx]) = 'TU')) then | 
|---|
|  | 417 | begin | 
|---|
|  | 418 | cbo2.Checked := true; | 
|---|
|  | 419 | aDList[idx] := 'TU'; | 
|---|
|  | 420 | FDaySchedule[cbo2.tag] := 'TU'; | 
|---|
|  | 421 | end | 
|---|
|  | 422 | else if ((CheckDay(aDList[idx]) = 'WED') or (CheckDay(aDList[idx]) = 'WE')) then | 
|---|
|  | 423 | begin | 
|---|
|  | 424 | cbo3.Checked := true; | 
|---|
|  | 425 | aDList[idx] := 'WE'; | 
|---|
|  | 426 | FDaySchedule[cbo3.tag] := 'WE'; | 
|---|
|  | 427 | end | 
|---|
|  | 428 | else if ((CheckDay(aDList[idx]) = 'THU') or (CheckDay(aDList[idx]) = 'TH')) then | 
|---|
|  | 429 | begin | 
|---|
|  | 430 | cbo4.Checked := true; | 
|---|
|  | 431 | aDList[idx] := 'TH'; | 
|---|
|  | 432 | FDaySchedule[cbo4.tag] := 'TH'; | 
|---|
|  | 433 | end | 
|---|
|  | 434 | else if ((CheckDay(aDList[idx]) = 'FRI') or (CheckDay(aDList[idx]) = 'FR')) then | 
|---|
|  | 435 | begin | 
|---|
|  | 436 | cbo5.Checked := true; | 
|---|
|  | 437 | aDList[idx] := 'FR'; | 
|---|
|  | 438 | FDaySchedule[cbo5.tag] := 'FR'; | 
|---|
|  | 439 | end | 
|---|
|  | 440 | else if ((CheckDay(aDList[idx]) = 'SAT') or (CheckDay(aDList[idx]) = 'SA')) then | 
|---|
|  | 441 | begin | 
|---|
|  | 442 | cbo6.Checked := true; | 
|---|
|  | 443 | aDList[idx] := 'SA'; | 
|---|
|  | 444 | FDaySchedule[cbo6.tag] := 'SA'; | 
|---|
|  | 445 | end | 
|---|
|  | 446 | else aDList.Delete(idx); | 
|---|
|  | 447 | end; | 
|---|
|  | 448 | end; | 
|---|
|  | 449 |  | 
|---|
|  | 450 | begin | 
|---|
|  | 451 | inherited; | 
|---|
|  | 452 | dayStr  := ''; | 
|---|
|  | 453 | timeStr := ''; | 
|---|
|  | 454 | if Length (txtSchedule.Text) = 0 then | 
|---|
|  | 455 | begin | 
|---|
|  | 456 | FOtherSchedule := ''; | 
|---|
|  | 457 | btnReset.Click; | 
|---|
|  | 458 | Exit; | 
|---|
|  | 459 | end; | 
|---|
|  | 460 | OrigSch := txtSchedule.Text; | 
|---|
|  | 461 | dayList  := TStringList.Create; | 
|---|
|  | 462 | if Pos('@',txtSchedule.Text)>0 then | 
|---|
|  | 463 | begin | 
|---|
|  | 464 | dayStr  := Trim(Piece(txtSchedule.Text,'@',1)); | 
|---|
|  | 465 | timeStr := Trim(Piece(txtSchedule.Text,'@',2)); | 
|---|
|  | 466 | end  else | 
|---|
|  | 467 | begin | 
|---|
|  | 468 | Val(Piece(txtSchedule.Text,'-',1), i, Code); | 
|---|
|  | 469 | if i = 0 then begin end;  // just to make compiler not give hint | 
|---|
|  | 470 | if Code <> 0 then dayStr := Trim(txtSchedule.Text) | 
|---|
|  | 471 | else timeStr := Trim(txtSchedule.Text); | 
|---|
|  | 472 | end; | 
|---|
|  | 473 | FTimeSchedule.Clear; | 
|---|
|  | 474 | for cnt := Low(FDaySchedule) to High(FDaySchedule) do | 
|---|
|  | 475 | FDaySchedule[cnt] := ''; | 
|---|
|  | 476 | PiecesToList(timeStr, '-', FTimeSchedule); | 
|---|
|  | 477 | if Length(dayStr)>0 then | 
|---|
|  | 478 | begin | 
|---|
|  | 479 | PiecesToList(dayStr, '-', dayList); | 
|---|
|  | 480 | cbo7.Checked := False; | 
|---|
|  | 481 | cbo1.Checked := False; | 
|---|
|  | 482 | cbo2.Checked := False; | 
|---|
|  | 483 | cbo3.Checked := False; | 
|---|
|  | 484 | cbo4.Checked := False; | 
|---|
|  | 485 | cbo5.Checked := False; | 
|---|
|  | 486 | cbo6.Checked := False; | 
|---|
|  | 487 | updateCheckbox(dayList); | 
|---|
|  | 488 | end; | 
|---|
|  | 489 |  | 
|---|
|  | 490 | FOtherSchedule := txtSchedule.Text; | 
|---|
|  | 491 | end; | 
|---|
|  | 492 |  | 
|---|
|  | 493 | procedure TfrmOtherSchedule.lstHourClick(Sender: TObject); | 
|---|
|  | 494 | begin | 
|---|
|  | 495 | inherited; | 
|---|
|  | 496 | if lstMinute.ItemIndex = -1 then lstMinute.ItemIndex :=0; | 
|---|
|  | 497 | end; | 
|---|
|  | 498 |  | 
|---|
|  | 499 | procedure TfrmOtherSchedule.txtScheduleChange(Sender: TObject); | 
|---|
|  | 500 | begin | 
|---|
|  | 501 | inherited; | 
|---|
|  | 502 | FFromEditBox := True; | 
|---|
|  | 503 | if not FFromCheckBox then | 
|---|
|  | 504 | UpdateOnFreeTextInput; | 
|---|
|  | 505 | FFromEditBox := False; | 
|---|
|  | 506 | end; | 
|---|
|  | 507 |  | 
|---|
|  | 508 | function TfrmOtherSchedule.CheckDay(ADayStr: string): string; | 
|---|
|  | 509 | var | 
|---|
|  | 510 | lng: integer; | 
|---|
|  | 511 | begin | 
|---|
|  | 512 | lng := Length(ADayStr); | 
|---|
|  | 513 | if lng <2 then | 
|---|
|  | 514 | begin | 
|---|
|  | 515 | result := ''; | 
|---|
|  | 516 | Exit; | 
|---|
|  | 517 | end; | 
|---|
|  | 518 | if (lng < 7) and ( UpperCase(aDayStr)= Copy('SUNDAY',1,lng)) then | 
|---|
|  | 519 | result := 'SU' | 
|---|
|  | 520 | else if (lng < 7) and (UpperCase(aDayStr)= Copy('MONDAY',1,lng)) then | 
|---|
|  | 521 | result := 'MO' | 
|---|
|  | 522 | else if (lng < 8) and (UpperCase(aDayStr)= Copy('TUESDAY',1,lng)) then | 
|---|
|  | 523 | result := 'TU' | 
|---|
|  | 524 | else if (lng < 10) and (UpperCase(aDayStr)= Copy('WEDNESDAY',1,lng)) then | 
|---|
|  | 525 | result := 'WE' | 
|---|
|  | 526 | else if (lng < 9) and (UpperCase(aDayStr)= Copy('THURSDAY',1,lng)) then | 
|---|
|  | 527 | result := 'TH' | 
|---|
|  | 528 | else if (lng < 7) and (UpperCase(aDayStr)= Copy('FRIDAY',1,lng)) then | 
|---|
|  | 529 | result := 'FR' | 
|---|
|  | 530 | else if (lng < 9) and (UpperCase(aDayStr)= Copy('SATURDAY',1,lng)) then | 
|---|
|  | 531 | result := 'SA' | 
|---|
|  | 532 | else | 
|---|
|  | 533 | result := ''; | 
|---|
|  | 534 | end; | 
|---|
|  | 535 |  | 
|---|
|  | 536 | procedure TfrmOtherSchedule.lstMinuteMouseUp(Sender: TObject; | 
|---|
|  | 537 | Button: TMouseButton; Shift: TShiftState; X, Y: Integer); | 
|---|
|  | 538 | begin | 
|---|
|  | 539 | inherited; | 
|---|
|  | 540 | FFromCheckBox := True; | 
|---|
|  | 541 | if lstHour.ItemIndex < 0 then Exit; | 
|---|
|  | 542 | //btnAddClick(Self); | 
|---|
|  | 543 | FFromCheckBox := False; | 
|---|
|  | 544 | end; | 
|---|
|  | 545 |  | 
|---|
|  | 546 | procedure TfrmOtherSchedule.lstMinuteKeyDown(Sender: TObject; | 
|---|
|  | 547 | var Key: Word; Shift: TShiftState); | 
|---|
|  | 548 | begin | 
|---|
|  | 549 | inherited; | 
|---|
|  | 550 | if (Key=VK_RETURN) then | 
|---|
|  | 551 | begin | 
|---|
|  | 552 | FFromCheckBox := True; | 
|---|
|  | 553 | if lstHour.ItemIndex < 0 then Exit; | 
|---|
|  | 554 | //btnAddClick(Self); | 
|---|
|  | 555 | FFromCheckBox := False; | 
|---|
|  | 556 | end; | 
|---|
|  | 557 | end; | 
|---|
|  | 558 |  | 
|---|
|  | 559 | procedure TfrmOtherSchedule.Button1Click(Sender: TObject); | 
|---|
|  | 560 | begin | 
|---|
|  | 561 | inherited; | 
|---|
|  | 562 | cbo1.Checked := true; | 
|---|
|  | 563 | cbo2.Checked := true; | 
|---|
|  | 564 | cbo3.Checked := true; | 
|---|
|  | 565 | cbo4.Checked := true; | 
|---|
|  | 566 | cbo5.Checked := true; | 
|---|
|  | 567 | cbo6.Checked := true; | 
|---|
|  | 568 | cbo7.Checked := true; | 
|---|
|  | 569 | end; | 
|---|
|  | 570 |  | 
|---|
|  | 571 | end. | 
|---|
|  | 572 |  | 
|---|