BusinessView的修改
1) 在模型层新增属性(ViewItem)
在 ..\Wicresoft\BusinessObject\ObjectView\BusinessObjectView.cs 的 ViewItem 中新增了 EndTimeInclude(并提供了对应构造函数),用于标记某个日期查询项是否要“按日期(yyyy-MM-dd)比较”。
---
2) 在查询控件生成阶段把属性下发到 UI 节点
在 ..\SOI\CustomControls\QueryProvider.ascx.cs 的 GenerateQueryItem(ViewItem vi, int rowIndex) 里,增加了:
• queryItem.Attributes["EndTimeInclude"] = vi.EndTimeInclude.ToString().ToLower();
这样每一行查询项(__queryitem_x)都带上了这个标记。
GridView 的作用是通过 ucQueryProvider.InitQueryProvider(this.BusinessObjectView) 把 BusinessObjectView 传给 QueryProvider,因此 vi.EndTimeInclude 能被拿到并写入 queryItem.Attributes。
---
3) 在过滤拼接阶段按该属性走不同 SQL 逻辑
在 QueryProvider.GetBusinessFilter(...) 的 DateTime 分支中,读取:
• queryItem.Attributes["EndTimeInclude"]
并做条件拼接分支:
• 非 true:沿用原逻辑(field <= endTime)。
• true:对字段加 CONVERT(varchar(10), field, 23),确保按 yyyy-MM-dd 比较后再和结束日期拼接。