Function ReadSQL(W: String): String;
Var
  S: String;
Begin
  S:= REPLACESTRING(W, 'ANAGRUP', 'ETKENMADDE');

  Result:= 
    'Select ' +
	'   S.KARTNO, STOKKODU, CINSI, S.ETKENMADDE AS ANAGRUP, S.GRUPADI AS ALTGRUP, B.BIRIMADI, ' +
  	'   KOD1, KOD2, KOD3, KOD4, KOD5,' + // AND ISLEMTIPI IN(2, 3, 4, 5)
	'  (SELECT SUM(ISNULL(GIREN, 0) - ISNULL(CIKAN, 0)) FROM STOKDURUMU WHERE STOKKARTNO = S.KARTNO) / ISNULL(B.CARPAN, 1.00) AS DEPO ' +
	' from TBLSTOKLAR S ' +
	' LEFT OUTER JOIN TBLBIRIMLEREX B WITH(INDEX=TBLBIRIMLEREX_KARTNO) ON B.KARTNO = S.ANABIRIM ' +
	' WHERE S.DELETED = 0';
  if S <> '' Then
    Result:= Result + ' AND ' + S;
End;

procedure RaporLoad;
Begin
  SetViewCaption('BASLIK', 'PARADOX ENVANTER RAPORU');

// Select Kullanılırsa  
//  AddQueryToSQL('KullaniciQ', 'WHERE KARTNO IN (' + FFilter + ')');

// Filtre Kullanılırsa 
  if FFilter <> '' Then
    AddQueryToSQL('KullaniciQ', ' AND ' + FFilter);
  AddQueryToSQL('KullaniciQ', 'ORDER BY STOKKODU');
End;

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

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

procedure Start;
Begin
End;

Procedure Finish;
Begin
End;

Function ReadFilter(Var F: String): Boolean;
Var
  B: Boolean;
  IDS: String;
Begin
// TableName, SQL, SearchFilter, Fields, Captions, SelectListFields, FilteredFields, FilteredCaptions, OrderBy, IndexField, var Filter
  Result:= ReadSQLFilter('TBLSTOKLAR', 
        'Select ' +  
		'  STOKKODU, CINSI, S.ETKENMADDE AS ANAGRUP, S.GRUPADI AS ALTGRUP, B.BIRIMADI, B.BARKOD, ' +  
		'  KOD1, KOD2, KOD3, KOD4, KOD5, ISNULL(SD.SEMBOL, ''TL'') AS PB1, S.KDV ' + 
		' from TBLSTOKLAR S ' +  
		' LEFT OUTER JOIN TBLBIRIMLEREX B WITH(INDEX=TBLBIRIMLEREX_KARTNO) ON B.KARTNO = S.ANABIRIM ' +  
		' LEFT OUTER JOIN TBLDOVIZLER SD ON SD.KARTNO = B.SATISFIYATIPB1 ' +  
		' WHERE S.DELETED = 0', 
		'DELETED = 0', 
		'STOKKODU;CINSI;ANAGRUP;GRUPADI;BIRIMADI;KOD1;KOD2;KOD3;KOD4;KOD5;PB1;KDV', 
		'Stok Kodu;Cinsi;Ana Grup;Alt Grup;Birim Adı;Özel Kod 1;Özel Kod 2;Özel Kod 3;Özel Kod 4;Özel Kod 5;Para Birimi;KDV',
        'STOKKODU;CINSI;ANAGRUP;ALTGRUP;KOD1;KOD2;KOD3;KOD4;KOD5', 
		'STOKKODU;CINSI;ANAGRUP;ALTGRUP;BIRIMADI;KOD1;KOD2;KOD3;KOD4;KOD5',
		'Stok Kodu;Cinsi;Ana Grup;Alt Grup;Birim Adı;Özel Kod 1;Özel Kod 2;Özel Kod 3;Özel Kod 4;Özel Kod 5',
        'STOKKODU', 'KARTNO', F); 
End;

procedure Execute;
Var
  IDS: String;
Begin
  if ReadFilter(IDS) Then
  Begin
    CreateReport(IDS, ReadSQL(IDS), 
     'STOKKODU;CINSI;ANAGRUP;ALTGRUP;BIRIMADI;KDV;KOD1;KOD2;KOD3:0;KOD4:0;KOD5:0;DEPO',
	 'Stok Kodu;Cinsi;Ana Grup;Alt Grup;Birim Adı;KDV;Özel Kod 1;Özel Kod 2;Özel Kod 3;Özel Kod 4;Özel Kod 5;Depo',
	  0);
	  
	CreateSummary('STOKKODU', skCount);
  End;
End;

Begin
End.