怎麽設計這個框架呢
問題:
現在公司要 根據SAP中的數據 篩選 生成多種不同形式的財務報表.(如命名為SOG ,EXE等報表).
每种表篩選的方法是不同. [如 SOG 這種報表時根據 SAP中的一個字段{vkgrp}來進行篩選的.而EXE 這種財務報表時根據 Sap 中的三個字段來進行數據篩選的.]
篩選完數據后 處理數據生成報表.
然後給有報表接收權限人發送郵件.
另: 每种報表都要生成一份縂的報表 發給具有縂報表接收權限的人.
如 SOG 如果 vkgrp 有009 020 ,030 那么就要生成 4份 報表
Sog-all
Sog-009
Sog-020
Sog-030
而對于有多少种vkgrp 我是未知的.
要怎樣設計,使得它有很好的擴展性.因爲後面可能會有其他形式的報表.
以下是我設置的類
public abstract class Report
{
abstract public Email GetEmail();
abstract public ReportStruct GetReportStruct();
abstract public void GenerateExcelReport();
}
public class OstdSOGAll:Report
{
public OstdSOGAll()
{
}
public override Email GetEmail()
{
Email email = new Email();
return email;
}
public override ReportStruct GetReportStruct()
{
ReportStruct reportSt = new ReportStruct();
return reportSt;
}
public override void GenerateExcelReport()
{
Console.WriteLine("My Lover IS your!");
}
}
public class OstdSOGSpe:Report
{
private string sogkey;
public string SOGKEY
{
get
{
return sogkey;
}
set
{
sogkey = value;
}
}
public OstdSOGSpe()
{
}
public override Email GetEmail()
{
Email email = new Email();
return email;
}
public override ReportStruct GetReportStruct()
{
ReportStruct reportSt = new ReportStruct();
return reportSt;
}
public override void GenerateExcelReport()
{
Console.WriteLine("My Lover IS her!");
}
}