protected override IList BuildLists(bool isFull)
{
TCompanIEs list = null;
try
{
var objDAL = (ATCompany)DAFactory.CreateDA(typeof(ATCompany));
if (!isFull) objDAL.PageArgs = base.PageArgs; // 分頁參數傳遞
string[] fields = GetInfoFIElds();
var qb = new QueryBuilder();
qb.Append(QueryRelation.And, QueryCompare.Equal, TCompany._BaseType, baseType.ToString("D"));
qb.Append(QueryRelation.And, QueryCompare.Equal, TCompany._IsDelete, 0);
qb.Append(QueryRelation.And, QueryCompare.Equal, TCompany._ParentId, ContextArgs.Instance.CompanyId);
if (QueryArgs.TypeId != 0)
qb.Append(QueryRelation.And, QueryCompare.Equal, TCompany._CompanyTypeId, QueryArgs.TypeId);
qb += QueryArgs.QueryBuilder; // 合併使用者查詢條件
list = objDAL.Select(qb, QueryArgs.Order, fields);
if (!isFull) base.PageArgs = objDAL.PageArgs; // 回寫總筆數等分頁資訊
objDAL.Dispose();
}
catch (Exception e)
{
Utility.ShowErrorMessage(e.Message);
}
return list;
}
關鍵點:
isFull 控制是否分頁(列印/匯出時為 true)。QueryBuilder 串接固定條件與動態查詢條件。objDAL 避免連線洩漏。