Changeset 11 for trunk/Ean.pas


Ignore:
Timestamp:
Apr 15, 2026, 10:17:17 PM (2 weeks ago)
Author:
chronos
Message:
  • Modified: EAN address as separate field.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ean.pas

    r10 r11  
    3636    Number: string;
    3737    Owner: string;
     38    Address: string;
    3839    DistributionTariff: string;
    3940    PriceLow: Double;
     
    5859  TEans = class(TObjectList<TEan>)
    5960    function SearchByNumber(Number: string): TEan;
    60     function SearchByOwner(Owner: string): TEan;
     61    function SearchByOwnerKind(Owner: string; Kind: TEanKind): TEan;
    6162    procedure LoadToStrings(Strings: TStrings; AllowNone: Boolean = False);
    6263    procedure LoadFromXmlNode(Node: TDOMNode);
     
    241242  Number := ReadString(Node, 'Number', Number);
    242243  Owner := ReadString(Node, 'Owner', Owner);
     244  Address := ReadString(Node, 'Address', Address);
    243245  DistributionTariff := ReadString(Node, 'DistributionTariff', DistributionTariff);
    244246  PriceLow := ReadDouble(Node, 'PriceLow', PriceLow);
     
    258260  if Number <> '' then WriteString(Node, 'Number', Number);
    259261  if Owner <> '' then WriteString(Node, 'Owner', Owner);
     262  if Address <> '' then WriteString(Node, 'Address', Address);
    260263  if DistributionTariff <> '' then WriteString(Node, 'DistributionTariff', DistributionTariff);
    261264  if PriceLow <> 0 then WriteDouble(Node, 'PriceLow', PriceLow);
     
    294297end;
    295298
    296 function TEans.SearchByOwner(Owner: string): TEan;
     299function TEans.SearchByOwnerKind(Owner: string; Kind: TEanKind): TEan;
    297300var
    298301  I: Integer;
    299302begin
    300303  I := 0;
    301   while (I < Count) and (Items[I].Owner <> Owner) do Inc(I);
     304  while (I < Count) and ((Items[I].Owner <> Owner) or (Items[I].Kind <> Kind)) do Inc(I);
    302305  if I < Count then Result := Items[I]
    303306    else Result := nil;
     
    308311  I: Integer;
    309312  Shift: Integer;
     313  Text: string;
    310314begin
    311315  if AllowNone then Shift := 1 else Shift := 0;
     
    315319    while Strings.Count < Count + Shift do Strings.Add('');
    316320    for I := 0 to Count - 1 do begin
    317       Strings[I + Shift] := Items[I].Number + ' (' + Items[I].Owner + ')';
     321      Text := EanKindText[Items[I].Kind];
     322      if Items[I].Address <> '' then Text := Items[I].Address + ', ' + Text;
     323      if Items[I].Owner <> '' then Text := Items[I].Owner + ', ' + Text;
     324      Text := Items[I].Number + ' (' + Text + ')';
     325      Strings[I + Shift] := Text;
    318326      Strings.Objects[I + Shift] := Items[I];
    319327    end;
Note: See TracChangeset for help on using the changeset viewer.