Ignore:
Timestamp:
Jul 7, 2010, 4:31:10 PM (14 years ago)
Author:
Kevin Toppenberg
Message:

Upgrade to version 27

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cprs/trunk/CPRS-Chart/Orders/fOtherSchedule.pas

    r456 r829  
    55uses
    66  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    7   Dialogs, ComCtrls, StdCtrls, ExtCtrls, Buttons, fAutoSz, rMisc;
     7  Dialogs, ComCtrls, StdCtrls, ExtCtrls, Buttons, fAutoSz, rMisc, ORCtrls, rODMeds,
     8  VA508AccessibilityManager, VAUtils;
    89
    910const
     
    2930    btn0k1: TButton;
    3031    btnCancel: TButton;
    31     txtSchedule: TEdit;
    3232    Label1: TLabel;
    3333    btnReset: TButton;
     
    3737    btnAdd: TButton;
    3838    Button1: TButton;
     39    GroupBox3: TGroupBox;
     40    NSScboSchedule: TORComboBox;
     41    btnSchAdd: TButton;
     42    btnSchRemove: TButton;
     43    txtSchedule: TEdit;
    3944    procedure FormCreate(Sender: TObject);
    4045    procedure btnCancelClick(Sender: TObject);
     
    5863      Shift: TShiftState);
    5964    procedure Button1Click(Sender: TObject);
     65    procedure btnSchAddClick(Sender: TObject);
     66    procedure btnSchRemoveClick(Sender: TObject);
     67    procedure FormDestroy(Sender: TObject);
    6068  private
    6169    FDaySchedule: array [1..7] of string;
    6270    FTimeSchedule: TStringList;
     71    FSchedule: String;
    6372    FOtherSchedule: String;
    6473    FFromCheckBox: boolean;
     
    6776    procedure SetDaySchedule(Sender: TObject);
    6877    procedure SetTimeSchedule;
     78    procedure SetScheduleSelection;
    6979    procedure UpdateOnFreeTextInput;
     80    procedure EnabledTime(TF: boolean);
     81    procedure EnabledSch(TF: boolean);
    7082    function CheckDay(ADayStr: string): string;
    7183   
     
    7587function ShowOtherSchedule(var ASchedule: string): boolean;
    7688
     89var
     90   frmOtherSchedule: TfrmOtherSchedule;
     91
    7792implementation
    7893
     
    8095{$R *.dfm}
    8196
    82 function ShowOtherSchedule(var ASchedule: string): boolean;
    83 var
    84   frmOtherSchedule: TfrmOtherSchedule;
     97function ShowOtherSchedule(var ASchedule: string):
     98
     99boolean;
     100var
     101
     102  AdminTime, SchType: string;
    85103begin
    86104  Result := False;
    87105  try
     106   ASchedule := '';
    88107   frmOtherSchedule := TfrmOtherSchedule.Create(Application);
    89108   ResizeFormToFont(TForm(frmOtherSchedule));
     
    92111   begin
    93112     ASchedule := UpperCase(frmOtherSchedule.FOtherSchedule);
     113     if frmOtherSchedule.GroupBox3.Enabled = True then
     114       begin
     115         AdminTime := Piece(frmOtherSchedule.NSScboSchedule.Items.Strings[frmOtherSchedule.NSScboSchedule.itemindex],U,4);
     116         schType := Piece(frmOtherSchedule.NSScboSchedule.Items.Strings[frmOtherSchedule.NSScboSchedule.itemindex],U,3);
     117         ASchedule := ASchedule + U + AdminTime + U + schType;
     118         //if (schType = 'P') or (schType = 'OC') then ASchedule := ASchedule + U + '1'
     119         //else ASchedule := ASchedule + U + '0';
     120       end
     121     else if frmOtherSchedule.GroupBox2.Enabled = true then
     122       begin
     123         AdminTime := Piece(ASchedule,'@',2);
     124         ASchedule := ASchedule + U + AdminTime + U + 'C';
     125       end;
    94126     Result := True;
    95127   end;
    96128  except
    97    ShowMessage('Error happen when building other schedule');
     129   ShowMsg('Error happen when building other schedule');
    98130  end;
    99131end;
     
    105137  nssMsg: string;
    106138begin
     139  frmOtherSchedule := nil;
    107140  FFromCheckBox := False;
    108141  FFromEditBox := False;
     
    111144   FDaySchedule[i] := '';
    112145  FTimeSchedule := TStringlist.Create;
     146  FSchedule := '';
    113147  FOtherSchedule := '';
    114148  nssMsg := GetSiteMessage;
     
    116150    nssMsg := NSS_TXT;
    117151  memMessage.Lines.Add(nssMsg);
     152  LoadDOWSchedules(NSScboSchedule.Items);
     153  if ScreenReaderActive = false then txtSchedule.TabStop := false;
     154
     155end;
     156
     157procedure TfrmOtherSchedule.FormDestroy(Sender: TObject);
     158begin
     159  inherited;
     160    //FDaySchedule
     161    FTimeSchedule.Free;
     162    frmOtherSchedule := nil;
     163    //FSchedule: String;
     164    //FOtherSchedule: String;
    118165end;
    119166
    120167procedure TfrmOtherSchedule.btnCancelClick(Sender: TObject);
    121168begin
    122   modalResult := mrCancel;
     169  frmOtherSchedule.Release;
    123170end;
    124171
     
    128175    (cbo6.Checked = false) and (cbo7.Checked = false) then
    129176    begin
    130       ShowMessage('A day of week must be selected!');
     177      ShowMsg('A day of week must be selected!');
    131178      Exit;
    132179    end;
    133   if not IsValidSchStr(FOtherSchedule) then
    134   begin
    135     ShowMessage('The schedule you entered is invalid!');
     180  if Pos('@', self.txtSchedule.Text) = 0 then
     181    begin
     182      ShowMsg('An Administation Time or a schedule needs to be selected');
     183      exit;
     184    end;
     185(*  if not IsValidSchStr(FOtherSchedule) then
     186  begin
     187    Show508Message('The schedule you entered is invalid!');
    136188    Exit;
    137   end;
     189  end;  *)
    138190  modalResult := mrOK;
    139191end;
     
    142194var
    143195  i : integer;
    144   TimePart, DayPart: string;
     196  TimePart, DayPart, Schedule: string;
    145197begin
    146198  with (Sender as TCheckBox) do
     
    152204        FDaySchedule[TCheckBox(Sender).Tag] := '';
    153205    except
    154       ShowMessage('Error happened when building day schedule.');
     206      ShowMsg('Error happened when building day schedule.');
    155207      Exit;
    156208    end;
     
    159211  TimePart := '';
    160212  DayPart := '';
    161   for i := 0 to FTimeSchedule.Count - 1 do
    162   begin
    163     if i = 0 then TimePart := TimePart + FTimeSchedule[i]
    164     else TimePart := TimePart + '-' + FTimeSchedule[i];
    165   end;
     213  schedule := '';
     214  if Self.GroupBox2.Enabled = True then
     215    begin
     216        for i := 0 to FTimeSchedule.Count - 1 do
     217          begin
     218            if i = 0 then TimePart := TimePart + FTimeSchedule[i]
     219            else TimePart := TimePart + '-' + FTimeSchedule[i];
     220          end;
     221    end;
     222  if (self.GroupBox3.Enabled = True) and (FSchedule <> '') then schedule := FSchedule;
    166223  for i := Low(FDaySchedule) to High(FDaySchedule) do
    167224  begin
     
    179236      FOtherSchedule := TimePart;
    180237  end
     238  else if Length(schedule) > 0 then
     239    begin
     240      if length(DayPart) > 0 then
     241      FOtherSchedule := DayPart + '@' + Schedule
     242    else if Length(DayPart) = 0 then
     243      FOtherSchedule := Schedule;
     244    end
    181245  else FOtherSchedule := DayPart;
     246  txtSchedule.Text := FOtherSchedule;
     247end;
     248
     249
     250procedure TfrmOtherSchedule.SetScheduleSelection;
     251var
     252  i: integer;
     253  DayPart: string;
     254begin
     255  DayPart := '';
     256  for i := Low(FDaySchedule) to High(FDaySchedule) do
     257  begin
     258    if Length(FDaySchedule[i])>0 then
     259    begin
     260      if DayPart = '' then DayPart := FDaySchedule[i]
     261      else DayPart := DayPart + '-' + FDaySchedule[i];
     262    end;
     263  end;
     264  if Length(DayPart) > 0 then
     265  begin
     266    if FSchedule <> '' then
     267      FOtherSchedule := DayPart + '@' + FSchedule
     268    else
     269      FOtherSchedule := DayPart;
     270  end
     271  else FOtherSchedule := FSchedule;
     272  //if Length(APRN) > 0 then FOtherSchedule := FOtherSchedule;
    182273  txtSchedule.Text := FOtherSchedule;
    183274end;
     
    278369  hour, min: string;
    279370begin
     371  if FSchedule <> '' then Exit;
    280372  if lstHour.ItemIndex < 0 then exit;
    281373  hour := lstHour.Items[lstHour.ItemIndex];
     
    298390  FTimeSchedule.Sort;
    299391  SetTimeSchedule;
     392  if FTimeSchedule.Count > 0 then EnabledSch(False);
    300393end;
    301394
     
    313406  lstHour.ItemIndex := -1;
    314407  lstMinute.ItemIndex := -1;
     408  NSScboSchedule.ItemIndex := -1;
    315409  for i := low(FDaySchedule) to high(FDaySchedule) do
    316410    FDaySchedule[i] := '';
     
    318412  FOtherSchedule := '';
    319413  txtSchedule.Text := '';
     414  FSchedule := '';
     415  EnabledTime(True);
     416  EnabledSch(True);
     417end;
     418
     419procedure TfrmOtherSchedule.btnSchAddClick(Sender: TObject);
     420begin
     421  inherited;
     422  if self.NSScboSchedule.ItemIndex < 0 then Exit;
     423  if FSchedule <> '' then
     424    begin
     425      infoBox('A Day-of-week schedule can only contain one schedule','Warning',MB_OK);
     426      Exit;
     427    end;
     428  FSchedule := self.NSScboSchedule.Text;
     429  SetScheduleSelection;
     430  Self.NSScboSchedule.Enabled := False;
     431  EnabledTime(False);
     432end;
     433
     434procedure TfrmOtherSchedule.btnSchRemoveClick(Sender: TObject);
     435begin
     436  inherited;
     437  if (FSchedule = '') or (self.NSScboSchedule.ItemIndex < 0) then exit;
     438  if self.NSScboSchedule.Text <> FSchedule then exit;
     439  Fschedule := '';
     440  SetScheduleSelection;
     441  self.NSScboSchedule.Enabled := True;
     442  EnabledTime(True);
    320443end;
    321444
     
    346469  SetTimeSchedule;
    347470  FFromCheckBox := False;
     471  if FTimeSchedule.Count = 0 then EnabledSch(True);
    348472end;
    349473
     
    370494    Action := caFree;
    371495  end;
     496  //frmOtherSchedule := nil;
    372497end;
    373498
     
    523648end;
    524649
     650procedure TfrmOtherSchedule.EnabledSch(TF: boolean);
     651begin
     652   self.GroupBox3.Enabled := TF;
     653   self.NSScboSchedule.Enabled := TF;
     654   self.btnSchAdd.Enabled := TF;
     655   self.btnSchRemove.Enabled := TF;
     656//   if TF = False then self.NSScboSchedule.Color := cl3DLight
     657//   else self.NSScboSchedule.Color := clWindow;
     658   if TF = False then self.NSScboSchedule.ItemIndex := -1;
     659end;
     660
     661procedure TfrmOtherSchedule.EnabledTime(TF: boolean);
     662begin
     663  self.GroupBox2.Enabled := TF;
     664  self.lstHour.Enabled := TF;
     665  self.lstMinute.Enabled := TF;
     666  self.btnAdd.Enabled := TF;
     667  self.btnRemove.Enabled := TF;
     668  if TF = False then
     669    begin
     670      self.lstHour.ItemIndex := -1;
     671      self.lstMinute.ItemIndex := -1;
     672    end;
     673end;
     674
    525675procedure TfrmOtherSchedule.lstMinuteMouseUp(Sender: TObject;
    526676  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
Note: See TracChangeset for help on using the changeset viewer.