//基础SQL,过滤排序串
string sBaseSql=GetBaseSql();
string sFilter=MakeFilter();
string sSort="FDwNo,FYear,FMonth";
//计算行数、页数、当前页
string sSql="select count(*) from ("+sBaseSql+") t1"+" where "+sFilter;
int iRowCount=CFunc.DbGetRowCountBySelectCount(sDsn,sSql);
int iPageSize=CFunc.ToInt(Session["PageSize"]);
int iPageCount=CFunc.CalcuPageCount(iRowCount,iPageSize);
int iCurPage=1;
if(FCurPage.Items.Count>0)
iCurPage=CFunc.ToInt(FCurPage.SelectedItem.Text);
this.FPages.Text=CFunc.ToString(iPageCount);
this.FRecords.Text=CFunc.ToString(iRowCount);
FCurPage.Items.Clear();
for(int i=0;i<iPageCount;i++)
{
this.FCurPage.Items.Add(CFunc.ToString(i+1));
}
CFunc.CboSelItemByText(FCurPage,CFunc.ToString(iCurPage));
//返回结果集
sSql=@"
SELECT TOP 页大小 * FROM (表) t1
WHERE (过滤) and (FID NOT IN
(
SELECT TOP 页大小*(页号-1) FID FROM (表) t1
WHERE 过滤
ORDER BY 排序)
)
ORDER BY 排序
";
sSql=sSql.Replace("页大小*(页号-1)",CFunc.ToString(iPageSize*(iCurPage-1)));
sSql=sSql.Replace("页大小",CFunc.ToString(Session["PageSize"]));
sSql=sSql.Replace("表",sBaseSql);
sSql=sSql.Replace("过滤",sFilter);
sSql=sSql.Replace("排序",sSort);
DataSet ds=CFunc.DbExeQry(sDsn,sSql);
return ds;