Changeset 12 for trunk/Ean.pas


Ignore:
Timestamp:
Apr 17, 2026, 2:31:42 PM (13 days ago)
Author:
chronos
Message:
  • Added: Min/max interval position navigation buttons.
  • Modified: Remember last interval position.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ean.pas

    r11 r12  
    5858
    5959  TEans = class(TObjectList<TEan>)
     60    function GetMaxTime: TDateTime;
     61    function GetMinTime: TDateTime;
    6062    function SearchByNumber(Number: string): TEan;
    6163    function SearchByOwnerKind(Owner: string; Kind: TEanKind): TEan;
     
    7577  EanValueName = 'EanValue';
    7678  EanValuesName = 'EanValues';
     79  FifteenMinute = 15 * OneMinute;
    7780
    7881
     
    180183  TotalIn := GetTotalIn(TimeFrom, TimeTo);
    181184  TotalOut := GetTotalOut(TimeFrom, TimeTo);
    182   if TotalIn <> 0 then Result := TotalIn - TotalOut
    183     else Result := 0;
     185  Result := TotalIn - TotalOut;
    184186end;
    185187
     
    187189var
    188190  TotalIn: Double;
     191  TotalOut: Double;
    189192begin
    190193  TotalIn := GetTotalIn(TimeFrom, TimeTo);
    191   if TotalIn <> 0 then Result := (1 - GetTotalOut(TimeFrom, TimeTo) / TotalIn) * 100
    192     else Result := 0;
     194  TotalOut := GetTotalOut(TimeFrom, TimeTo);
     195  Result := (1 - TotalOut / TotalIn) * 100;
    193196end;
    194197
     
    286289
    287290{ TEans }
     291
     292function TEans.GetMaxTime: TDateTime;
     293var
     294  I: Integer;
     295  Found: Boolean;
     296begin
     297  Found := False;
     298  for I := 0 to Count - 1 do
     299  with Items[I] do
     300    if Values.Count > 0 then begin
     301      if not Found then begin
     302        Result := Values[Values.Count - 1].Time;
     303        Found := True;
     304      end
     305      else if Values[Values.Count - 1].Time > Result then begin
     306        Result := Values[Values.Count - 1].Time;
     307      end;
     308    end;
     309  if not Found then Result := Now;
     310end;
     311
     312function TEans.GetMinTime: TDateTime;
     313var
     314  I: Integer;
     315  Found: Boolean;
     316begin
     317  Found := False;
     318  for I := 0 to Count - 1 do
     319  with Items[I] do
     320    if Values.Count > 0 then begin
     321      if not Found then begin
     322        Result := Values[0].Time;
     323        Found := True;
     324      end
     325      else if Values[0].Time < Result then begin
     326        Result := Values[0].Time;
     327      end;
     328    end;
     329  if not Found then Result := Now;
     330end;
    288331
    289332function TEans.SearchByNumber(Number: string): TEan;
Note: See TracChangeset for help on using the changeset viewer.