Name('Adresář s dalšími adresami');

Designed('AdrMan');

WNSType(1);

NewWNS('adrdal01.wns');

DeclareRec('Adresar');
DeclareActiveIndex(Adresar,'AdrKey',1);
DeclareRec('DalsiAdresy');
DeclareRec('KeyDalsiAdresy1');

Veta:LongInt
VetaDA:LongInt
Pozice:LongInt
LocBo:Boolean
OnlyDA:Boolean=GetBoolean(GetDataIni('DDT','OnlyDA'));
PopText:String=GetDataIni('DDT','DASubStr');
Counter:LongInt

DefDialog('Výpis dalších adres',282,152)
DlgShade(-1,'',4,4,272,82)
DlgStatic(-1,'Popis další adresy obsahuje text',16,16,250)
DlgEdit(101,PopText,16,36,250,24);
DlgCheckBox(102,OnlyDA,16,64,250,,'Pouze adresy s dalšími adresami')
DlgButton(id_OK,,132,88);
DlgButton(id_Cancel,,198,88);
if(DlgExecute()<>id_OK)
  Halt;

PopText=Trim(PopText);
SetDataIni('DDT','OnlyDA',OnlyDA);
SetDataIni('DDT','DASubStr',PopText);
PopText=UpCaseNoCS(PopText);

SetHeadColumn(0,ta_Right,10);    {ICO}
SetHeadColumn(1,ta_Left,35);     {Nazev}
SetHeadColumn(2,ta_Left,35);     {Rozsireni}
SetHeadColumn(3,ta_Left,35);     {Ulice}
SetHeadColumn(4,ta_Left,35);     {Mesto}
SetHeadColumn(5,ta_Left,6);      {PSC}
SetHeadColumn(6,ta_Left,25);     {Zastupce}
SetHeadColumn(7,ta_Left,15);     {Telefon1}
SetHeadColumn(8,ta_Left,15);     {Telefon2}
SetHeadOfHead('IČ\tNázev\t\tUlice\tMěsto\tPSČ\tZástupce\tTelefon 1\tTelefon 2');
SetColumn(0,ta_Left,30);         {Popis}
SetColumn(1,ta_Left,35);         {Nazev}
SetColumn(2,ta_Left,35);         {Rozsireni}
SetColumn(3,ta_Left,35);         {Ulice}
SetColumn(4,ta_Left,35);         {Mesto}
SetColumn(5,ta_Left,6);          {PSC}
SetColumn(6,ta_Left,25);         {Zastupce}
SetColumn(7,ta_Left,15);         {Telefon1}
SetColumn(8,ta_Left,15);         {Telefon2}
SetHead('Popis\tNázev\t\tUlice\tMěsto\tPSČ\tZástupce\tTelefon 1\tTelefon 2');

SetDescr(0,0,TA_Right|descr_PageNum,'Strana: ');
SetDescr(1,0,TA_Center,'Adresář s dalšími adresami');
SetDescr(2,0,TA_Left|descr_Date,'Datum: ');
SetDescr(3,1,TA_Left|descr_UserDescr,''); pokud je pouzit descr_UserDescr, tak si program vyzada dodatecny popis

InitStatus(UsedKeys(AdrKey),'Vytvářím sestavu ...');

ClearKey(AdrKey);

while(NextKey(AdrKey,Veta))
  begin
    ReadRec(Adresar,Veta);
    if(InFilter(Adresar))
      begin
        KeyDalsiAdresy1.Length=4
        KeyDalsiAdresy1.ICO=SwapL(Adresar.ICO)
        LocBo=SearchKey(KeyDalsiAdresy1,VetaDA)
        Counter=0
        if((LocBo)or(not OnlyDA))
          begin
            AddHeadLine(Str(Adresar.ICO),Adresar.Nazev,Adresar.Rozsireni,Adresar.Ulice,Adresar.Mesto,Adresar.PSC,Adresar.Zastupce,Adresar.Telefon1,Adresar.Telefon2);
          end;
        while((LocBo)and(KeyDalsiAdresy1.ICO=SwapL(Adresar.ICO)))
          begin
            ReadRec(DalsiAdresy,VetaDA);
            if((Length(PopText)=0)or(StrPos(PopText,UpCaseNoCS(DalsiAdresy.Popis))))
              begin
                AddLine(DalsiAdresy.Popis,DalsiAdresy.Nazev,DalsiAdresy.Rozsireni,DalsiAdresy.Ulice,DalsiAdresy.Mesto,DalsiAdresy.PSC,DalsiAdresy.Zastupce,DalsiAdresy.Telefon1,DalsiAdresy.Telefon2);
                Inc(Counter);
              end;
            if(Counter>0)
              begin
                AddComment('');
              end;
            LocBo=NextKey(KeyDalsiAdresy1,VetaDA)
          end;
      end;
    Inc(Pozice);
    SetStatus(Pozice);
  end;

END