Name('Výpis upravovaných vět')      ; pod tímto názvem bude sestava v menu
FileName('LogMod01.WNS')              ; pod tímto názvem bude sestava uložena na disku
Designed('LogMan')                ; sestava bude dostupná z okna Adrman
Descr('Vypíše podstatně upravované věty z knihoven (částka a IČ)')  ;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 upravovaných vět');
SetDescr(3,3,TA_Center,'');

SetColumn(0,TA_Right,6);     {p.č}
SetColumn(1,TA_Right,10);    {Kdy datum}
SetColumn(2,TA_Left,5);      {Kdy čas}
SetColumn(3,TA_Left,20);     {Kdo}
SetColumn(4,TA_Center,3);    {x}
SetColumn(5,TA_Left,16);     {původně Doklad}
SetColumn(6,TA_Right,10);    {původně Datum}
SetColumn(7,TA_Left,16);     {nově Doklad}
SetColumn(8,TA_Right,10);    {nově Datum}
SetColumn(9,TA_Center,3);    {x}
SetColumn(10,TA_Right,16);    {původně IČ}
SetColumn(11,TA_Right,16);   {nově IČ}
SetColumn(12,TA_Center,3);   {x}
SetColumn(13,TA_Right,16);   {původně Částka}
SetColumn(14,TA_Right,16);   {nově Částka}
SetHead('p.č.\tKdy\t\tKdo\t\tpůvodně Doklad\tz data\tnově Doklad\tz data\t\tpůvodně IČ\tnově IČ\t\tpůvodně Částka\tnově Částka');

VypisModifikovanych('Pohledavka');
VypisModifikovanych('Zavazek');
VypisModifikovanych('Pokladna');
VypisModifikovanych('Banka');
VypisModifikovanych('OstatniUhrady');
if(Program.Sklady)
  begin
    VypisModifikovanych('SkupinovaOperace');
  end;

Procedure VypisModifikovanych(Agenda:String);
  if(not Declared('Log'))
    DeclareRec('Log');
  if(not Declared('KeyLog3'))
    DeclareRec('KeyLog3');
  if(not Declared(Agenda))
    DeclareRec(Agenda);
  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;

  NewRec:@Agenda

  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_Modify)
  LocBo=SearchKey(KeyLog3,LocL);
  InitStatus(UsedKeys(KeyLog3),'Vytvářím sestavu',Agenda);
  While((LocBo) and (KeyLog3.Ident=Swap(log_Modify)))
    begin
      ReadRec(Log,LocL);
      if(Log.FileID=RID)
        begin
          ReadRecFromLog(@Agenda,Log.OldRec);
          ReadRecFromLog(NewRec,Log.NewRec);
          if(((@AgendaICO<>NewRec.ICO)and(@AgendaICO<>0))or((@AgendaCastka<>NewRec.Castka)and(@AgendaCastka<>0))or((@AgendaDoklad<>NewRec.Doklad)and(Length(@AgendaDoklad)<>0)))
            begin
              Inc(PC);
              AddText(Str(PC),StrDate(High(Log.Kdy)),StrTime(Low(Log.Kdy)),Log.Kdo);
              if((@AgendaDoklad<>NewRec.Doklad)and(Length(@AgendaDoklad)<>0))
                begin
                  AddText(,'!',@AgendaDoklad,StrDate(@AgendaDatum),NewRec.Doklad,StrDate(NewRec.Datum));
                end else
                begin
                  AddText(,'',@AgendaDoklad,StrDate(@AgendaDatum),NewRec.Doklad,StrDate(NewRec.Datum));
                end;
              if((@AgendaICO<>NewRec.ICO)and(@AgendaICO<>0))
                begin
                  AddText(,'!',Str(@AgendaICO,8,,True),Str(NewRec.ICO,8,,True));
                end else
                begin
                  AddText(,'',Str(@AgendaICO,8,,True),Str(NewRec.ICO,8,,True));
                end;
              if((@AgendaCastka<>NewRec.Castka)and(@AgendaCastka<>0))
                begin
                  AddText(,'!',StrFinanc(@AgendaCastka,2),StrFinanc(NewRec.Castka,2));
                end else
                begin
                  AddText(,'',StrFinanc(@AgendaCastka,2),StrFinanc(NewRec.Castka,2));
                end;
              NextLine;
            end;
        end;
      LocBo=NextKey(KeyLog3,LocL);
      Inc(Pozice);
      SetStatus(Pozice);
    end;
end;

END