using System;
using System.Data;
using System.Data.SqlClient;
using WebSqlHelper;
namespace DSWeb.EntityDA
{
public class ReportDA
{
private const string SQL_SELECT_OP_SEAE_TOTAL = " SELECT * FROM "
+ " (SELECT TOP 100 PERCENT newid() as GID,YEARINT,MONTHINT,SUM(TEU) AS TOTALTEU,COUNT(BSNO) AS TOTALOFFER,SUM(TTLPROFIT) AS TOTALPROFIT FROM "
+ " ( "
+ " SELECT A.BSNO,DATEPART(year,BSDATE) AS YEARINT,DATEPART(month,BSDATE) AS MONTHINT,TEU,TTLPROFIT FROM op_seae AS A INNER JOIN "
+ " fee_gain as B ON A.BSNO = B.BSNO LEFT JOIN company AS C ON A.CORPID = C.GID "
+ " WHERE 1 > 0 {0} "
+ " ) AS D GROUP BY YEARINT,MONTHINT ORDER BY YEARINT,MONTHINT ASC) AS E {1}";
private const string SQL_SELECT_MULTIPLE_BUSINESS_TOTAL = " SELECT newid(),'海运出口'AS TYPENAME,COUNT(A.BSNO) AS COUNTTOTAL,"
+ " SUM(ISNULL(B.USDDR,0)) AS SUSDDR,SUM(ISNULL(B.STLDRUSD,0)) AS SSTLDRUSD,SUM(ISNULL(B.USDDR,0) - ISNULL(B.STLDRUSD,0)) AS SUNSTLDRUSD,"
+ " SUM(ISNULL(B.RMBDR,0)) AS SRMBDR,SUM(ISNULL(B.STLDRRMB,0)) AS SSTLDRRMB,SUM(ISNULL(B.RMBDR,0) - ISNULL(B.STLDRRMB,0)) AS SUNSTLDRRMB,"
+ " SUM(ISNULL(B.DRTTL,0)) AS SDRTTL,SUM(ISNULL(B.STLDRTTL,0)) AS SSTLDRTTL,SUM(ISNULL(B.DRTTL,0) - ISNULL(B.STLDRTTL,0)) AS SUNSTLDRTTL,"
+ " SUM(ISNULL(B.USDCR,0)) AS SUSDCR,SUM(ISNULL(B.STLCRUSD,0)) AS SSTLCRUSD,SUM(ISNULL(B.USDCR,0) - ISNULL(B.STLCRUSD,0)) AS SUNSTLCRUSD,"
+ " SUM(ISNULL(B.RMBCR,0)) AS SRMBCR,SUM(ISNULL(B.STLCRRMB,0)) AS SSTLCRRMB,SUM(ISNULL(B.RMBCR,0) - ISNULL(B.STLCRRMB,0)) AS SUNSTLCRRMB,"
+ " SUM(ISNULL(B.CRTTL,0)) AS SCRTTL,SUM(ISNULL(B.STLCRTTL,0)) AS SSTLCRTTL,SUM(ISNULL(B.CRTTL,0) - ISNULL(B.STLCRTTL,0)) AS SUNSTLCRTTL,"
+ " SUM(ISNULL(B.USDPROFIT,0)) AS SUSDPROFIT,SUM(ISNULL(B.RMBPROFIT,0)) AS SRMBPROFIT,SUM(ISNULL(B.TTLPROFIT,0)) AS STTLPROFIT "
+ " FROM op_seae AS A LEFT JOIN fee_gain AS B ON A.BSNO = B.BSNO "
+ " WHERE 1 > 0 {0} ";
///
/// 根据SQL语句获取数据集
///
///
///
public DataSet GetDataSetBySql(string strSql)
{
DataSet userSet = new DataSet();
userSet = SqlHelper.ExecuteDataset(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, strSql);
return userSet;
}
///
/// 通过查询条件获取数据集
///
///
///
public DataTable GetDataTableSourceByCondtion(ReportType tempReportType,string tempCondition,string tempSortCondition)
{
string tempSql = "";
switch (tempReportType)
{
case ReportType.OPSEAETOTAL:
tempSql = String.Format(SQL_SELECT_OP_SEAE_TOTAL, tempCondition, tempSortCondition);
break;
case ReportType.MULTIPLEBUSINESSTOTAL:
tempSql = String.Format(SQL_SELECT_MULTIPLE_BUSINESS_TOTAL, tempCondition);
break;
}
return GetDataSetBySql(tempSql).Tables[0];
}
}
public enum ReportType
{
OPSEAETOTAL = 1,
MULTIPLEBUSINESSTOTAL = 2
}
}