Name('Výpis zrušených vět')      ; pod tímto názvem bude sestava v menu
FileName('LogDel01.WNS')              ; pod tímto názvem bude sestava uložena na disku
Designed('LogMan')                ; sestava bude dostupná z okna Adrman
Descr('Vypíše zrušené věty z knihoven')  ;popis sestavy, tento text bude v bublince
Author('Winduo Team','EMail: winduo@winduo.cz','http://www.winduo.com','http://www.winduo.cz')

WNSType(1);

NewWNS('LogDel01.WNS');

DeclareRec('Program');

SetDescr(0,0,TA_Left|Descr_Date,'Datum: ');
SetDescr(1,0,TA_Right|Descr_PageNum,'Strana: ');
SetDescr(2,1,TA_Center,'Výpis zrušených vět');
SetDescr(3,3,TA_Center,'');

SetColumn(0,TA_Right,6);
SetColumn(1,TA_Right,10);
SetColumn(2,TA_Left,5);
SetColumn(3,TA_Left,20);
SetColumn(4,TA_Left,10);
SetColumn(5,TA_Right,10);
SetColumn(6,TA_Right,8);
SetColumn(7,TA_Left,35);
SetColumn(8,TA_Right,10);
SetHead('p.č.\tKdy\t\tKdo\tDoklad\tz data\tIČ\tNázev firmy\tČástka');

VypisZrusenych('Pohledavka');
VypisZrusenych('Zavazek');
VypisZrusenych('Pokladna');
VypisZrusenych('Banka');
VypisZrusenych('OstatniUhrady');
if(Program.Sklady)
  begin
    VypisZrusenych('SkupinovaOperace');
    VypisZrusenych('Pohyb');
  end;

Procedure VypisZrusenych(Agenda:String);
  if(not Declared('Log'))
    DeclareRec('Log');
  if(not Declared('KeyLog3'))
    DeclareRec('KeyLog3');
  if(not Declared(Agenda))
    DeclareRec(Agenda);
  if(not Declared('Adresar'))
    DeclareRec('Adresar');
  if(not Declared('KeyAdresar1'))
    DeclareRec('KeyAdresar1');
  if(not ExistVariable('LocBo'))
    LocBo:Boolean;
  if(not ExistVariable('RID'))
    RID:Word;
  if(not ExistVariable('LocL'))
    LocL:LongInt;
  if(not ExistVariable('LocL2'))
    LocL2:LongInt;
  if(not ExistVariable('PC'))
    PC:LongInt;
  if(not ExistVariable('Pozice'))
    Pozice:LongInt;
  if(not ExistVariable('AgendaDoklad'))
    AgendaDoklad:String;
  if(not ExistVariable('AgendaDatum'))
    AgendaDatum:String;
  if(not ExistVariable('AgendaICO'))
    AgendaICO:String;
  if(not ExistVariable('AgendaCastka'))
    AgendaCastka:String;
  if(not ExistVariable('AgendaFirma'))
    AgendaFirma:String;
  if(not ExistVariable('AgendyCount'))
    AgendyCount:LongInt;

  AgendaDoklad=Agenda+'.doklad'
  AgendaDatum=Agenda+'.datum'
  AgendaICO=Agenda+'.ICO'
  AgendaCastka=Agenda+'.Castka'
  AgendaFirma=Agenda+'.Firma'

  Inc(AgendyCount);
  if(AgendyCount>0)
    begin
      NextPageWNS();
    end;

  SetDescr(4,2,TA_Center,Agenda);

  RID=RecordID(@Agenda);
  PC=0
  Pozice=0

  KeyLog3.Length=2
  KeyLog3.Ident=Swap(log_Delete)
  LocBo=SearchKey(KeyLog3,LocL);
  InitStatus(UsedKeys(KeyLog3),'Vytvářím sestavu',Agenda);
  While((LocBo) and (KeyLog3.Ident=Swap(log_Delete)))
    begin
      ReadRec(Log,LocL);
      if(Log.FileID=RID)
        begin
          Inc(PC);
          ReadRecFromLog(@Agenda,Log.OldRec);
          if(RID=agd_Pohledavky)
            begin
              Adresar.Nazev=Agenda.Firma;
              if(Length(Adresar.Nazev)<>0)
                Adresar.ICO=@AgendaICO;
            end;
          if(@AgendaICO<>Adresar.ICO)
            begin
              if(@AgendaICO<>0)
                begin
                  KeyAdresar1.Length=4
                  KeyAdresar1.ICO=SwapL(@AgendaICO)
                  if(FindKey(KeyAdresar1,LocL2))
                    begin
                      ReadRec(Adresar,LocL2);
                    end else
                    begin
                      ClearRec(Adresar);
                    end;
                end;
              else
                begin
                  ClearRec(Adresar);
                end;
            end;
          AddLine(Str(PC),StrDate(High(Log.Kdy)),StrTime(Low(Log.Kdy)),Log.Kdo,@AgendaDoklad,StrDate(@AgendaDatum),Str(@AgendaICO,8,0,True),Adresar.Nazev,StrFinanc(@AgendaCastka,2));
        end;
      LocBo=NextKey(KeyLog3,LocL);
      Inc(Pozice);
      SetStatus(Pozice);
    end;
end;

END