Function ReadSQL(W: String): String;
Var
  S: String;
Begin
  S:= REPLACESTRING(W, 'GRUPADI', 'S.GRUPADI');
  S:= REPLACESTRING(S, 'STOKKODU', 'S.STOKKODU');
  S:= REPLACESTRING(S, 'CINSI', 'S.CINSI');
  
  Result:= 'Select ' +
     ' H.ISLEM, TARIH, BELGENO, C.FIRMAKODU, C.FIRMAADI, S.STOKKODU, S.CINSI, H.GIREN, FIYATI, FIYATI * H.GIREN AS TUTAR, ' +
     ' S.KOD1, S.KOD2, S.KOD3, S.KOD4, S.KOD5, S.ETKENMADDE AS ANAGRUP, S.GRUPADI AS ALTGRUP ' +
     ' from STOKHAREKET H ' +
     ' LEFT OUTER JOIN TBLSTOKLAR S WITH(INDEX=TBLSTOKLAR_KARTNO) ON S.KARTNO = H.STOKID ' +
     ' LEFT OUTER JOIN TBLCARI C WITH(INDEX=TBLCARI_KARTNO) ON C.KARTNO = H.CARIID ' +
     ' WHERE ISLEMTIPI IN(3, 4)';
 
  if S <> '' Then
    Result:= Result + ' AND ' + S;
  Result:= Result + ' ORDER BY TARIH, STOKKODU'; 
End;

procedure RaporLoad;
Var
  S: String;
Begin
  S:= REPLACESTRING(FFilter, 'GRUPADI', 'S.GRUPADI');
  SetViewCaption('BASLIK', 'PARADOX STOK GİRİŞ RAPORU');

  if S <> '' Then
    AddQueryToSQL('KullaniciQ', ' AND ' + S);
  AddQueryToSQL('KullaniciQ', ' ORDER BY TARIH, STOKKODU');	
End;

Function RaporFileName: String;
Begin
  Result:= ParsDir + 'Stok Raporları\Stok Hareketleri\Stok Giriş Raporu.fr3';
End;

procedure Start;
Begin
End;

Procedure Finish;
Begin
End;

Function ReadFilter(Var F: String): Boolean;
Begin
  Result:= ReadSQLFilter('TBLSTOKLAR', 'Select GETDATE() AS TARIH, STOKKODU, CINSI, ' + 
      ' KOD1, KOD2, KOD3,KOD4, KOD5, ETKENMADDE, GRUPADI FROM TBLSTOKLAR', 
	  'DELETED = 0', 
	  'STOKKODU; CINSI; TARIH;TARIH;ETKENMADDE;GRUPADI;KOD1;KOD2;KOd3;KOD4;KOD5', 
	  'Stok Kodu;Cinsi;1. Tarih;2. Tarih;Ana Grup;Grup Adı;1. Özel Kod;2. Özel Kod;3. Özel Kod;4. Özel Kod;5. Özel Kod', 
      'STOKKODU; CINSI; TARIH;KOD1;KOD2;KOD3;KOD4;KOD5', 
	  'STOKKODU; CINSI; TARIH;TARIH;ETKENMADDE;GRUPADI;KOD1;KOD2;KOD3;KOD4;KOD5',
	  'Stok Kodu;Cinsi;1. Tarih;2. Tarih;Ana Grup;Grup Adı;1. Özel Kod;2. Özel Kod;3. Özel Kod;4. Özel Kod;5. Özel Kod',
      'STOKKODU', 'KARTNO', F);	
End;

Function RaporDefaultSQL: String;
Begin
  Result:= ReadSQL('');
End;

procedure Execute;
Var
  IDS: String;
Begin
  if ReadFilter(IDS) Then
  Begin
    CreateReport(IDS, ReadSQL(IDS), 
     'ISLEM;STOKKODU:0;CINSI;FIRMAKODU:0;FIRMAADI;TARIH;BELGENO;GIREN;FIYATI;TUTAR;KOD1:0;KOD2:0;KOD3:0;KOD4:0;KOD5:0;ANAGRUP:0;ALTGRUP:0', 
	 'İşlem;Stok Kodu;Cinsi;Firma Kodu;Firma Adı;Tarih;Belge No;Giren;Fiyatı;Tutar;1. Özel Kod;2. Özel Kod;3. Özel Kod;4. Özel Kod;5. Özel Kod;Ana Grup;Alt Grup', 
	  0);
	 
	CreateSummary('GIREN', skSum); 
	CreateSummary('TUTAR', skSum);
	CreateSummary('STOKKODU', skCount); 
  End;
End;

Begin
End.