关于H3 BPM数据库如何实现排序取数据的问题
2017-01-18 10:18
316 查看
问题:
在打印模板中获取子表内容,可从数据库中取数据,而当前项目数据库里面数据按年度录入,但是只需要显示近3年的数据,插件如何实现排序取数据?
解决方法:
1、先直接写一个SQL语句,把近3年排序后的数据读取出来
2、在调用子表接口加载数据
3、示例:
varmonthly = DateTime.Now.Month;
var selectsql =string.Format(@"SELECT
t1.Yearly,
t1.Monthly,
t1.BudgetUnitName,
t1.BudgetUnitCode,
t1.BudgetItemName,
t1.BudgetItemCode,
t1.Budget
FROM XL_YS_BudgetPay t1
WHEREt1.Yearly = {0}
--AND Monthly > {1}
AND t1.BudgetUnitCode = '{2}'
AND BudgetItemCode = '{3}'
ORDER BY Monthly", yearly, monthly, budgetunitcode,budgetitemcode);
var dt =OThinker.H3.WorkSheet.AppUtility.Engine.Query.QueryTable(selectsql);
var list = newList<BizObject>();
var monthlist = newList<string> { "Jan", "Feb", "Mar","Apr", "May", "Jun", "Jul","Aug", "Sep", "Oct", "Nov","December" };
if (dt.Rows.Count > 0)
{
//DeptCostBudgetInfo 为子表名称
BizObjectSchemachildSchema = this.ActionContext.Schema.GetProperty("DeptCostBudgetInfo").ChildSchema;
varbizObject = new BizObject(this.ActionContext.Engine, childSchema,this.ActionContext.User.UserID);
bizObject["DataType"]= "原始";
bizObject["BudgetItemName"]= dt.Rows[0]["BudgetItemName"].ToString();
bizObject["BudgetItemCode"]= dt.Rows[0]["BudgetItemCode"].ToString();
varbizObject2 = new BizObject(this.ActionContext.Engine, childSchema,this.ActionContext.User.UserID);
bizObject2["DataType"]= "修改";
bizObject2["BudgetItemName"]= dt.Rows[0]["BudgetItemName"].ToString();
bizObject2["BudgetItemCode"]= dt.Rows[0]["BudgetItemCode"].ToString();
for(int i = 0; i < monthlist.Count; i++)
{
bizObject[monthlist]= dt.Rows["Budget"].ToString();
bizObject2[monthlist]= dt.Rows["Budget"].ToString();
}
list.Add(bizObject);
list.Add(bizObject2);
}
if (bos != null)
{
if (bos.Length > 1)
{
list.AddRange(bos);
}
}
this.ActionContext.InstanceData["DeptCostBudgetInfo"].Value =list.ToArray();
ActionContext.InstanceData.Submit();
在打印模板中获取子表内容,可从数据库中取数据,而当前项目数据库里面数据按年度录入,但是只需要显示近3年的数据,插件如何实现排序取数据?
解决方法:
1、先直接写一个SQL语句,把近3年排序后的数据读取出来
2、在调用子表接口加载数据
3、示例:
varmonthly = DateTime.Now.Month;
var selectsql =string.Format(@"SELECT
t1.Yearly,
t1.Monthly,
t1.BudgetUnitName,
t1.BudgetUnitCode,
t1.BudgetItemName,
t1.BudgetItemCode,
t1.Budget
FROM XL_YS_BudgetPay t1
WHEREt1.Yearly = {0}
--AND Monthly > {1}
AND t1.BudgetUnitCode = '{2}'
AND BudgetItemCode = '{3}'
ORDER BY Monthly", yearly, monthly, budgetunitcode,budgetitemcode);
var dt =OThinker.H3.WorkSheet.AppUtility.Engine.Query.QueryTable(selectsql);
var list = newList<BizObject>();
var monthlist = newList<string> { "Jan", "Feb", "Mar","Apr", "May", "Jun", "Jul","Aug", "Sep", "Oct", "Nov","December" };
if (dt.Rows.Count > 0)
{
//DeptCostBudgetInfo 为子表名称
BizObjectSchemachildSchema = this.ActionContext.Schema.GetProperty("DeptCostBudgetInfo").ChildSchema;
varbizObject = new BizObject(this.ActionContext.Engine, childSchema,this.ActionContext.User.UserID);
bizObject["DataType"]= "原始";
bizObject["BudgetItemName"]= dt.Rows[0]["BudgetItemName"].ToString();
bizObject["BudgetItemCode"]= dt.Rows[0]["BudgetItemCode"].ToString();
varbizObject2 = new BizObject(this.ActionContext.Engine, childSchema,this.ActionContext.User.UserID);
bizObject2["DataType"]= "修改";
bizObject2["BudgetItemName"]= dt.Rows[0]["BudgetItemName"].ToString();
bizObject2["BudgetItemCode"]= dt.Rows[0]["BudgetItemCode"].ToString();
for(int i = 0; i < monthlist.Count; i++)
{
bizObject[monthlist]= dt.Rows["Budget"].ToString();
bizObject2[monthlist]= dt.Rows["Budget"].ToString();
}
list.Add(bizObject);
list.Add(bizObject2);
}
if (bos != null)
{
if (bos.Length > 1)
{
list.AddRange(bos);
}
}
this.ActionContext.InstanceData["DeptCostBudgetInfo"].Value =list.ToArray();
ActionContext.InstanceData.Submit();
相关文章推荐
- [置顶] 关于C++、C#实现EXCEL数据库批量导入数据库万行以上数据效率问题
- 关于如何在java中实现中文首字母索引排序的问题
- 关于如何在java中实现中文首字母索引排序的问题 2016-08-25 15:14 86人阅读 评论(0) 收藏 举报 分类: Java(19) 版权声明:本文为博主原创文章,未经博主允许不得转载
- 关于UEditor插件的使用以及UEditor数据回显问题,数据库存储标签代码前台页面如何解析问题小结
- 数据库包含数字的String类型数据的排序问题
- 关于多个数据库间进行数据操作的问题
- EDB 数据库实现多字段排序的问题。
- Excel问题处理,如何实现数据表的单元格数值的动态变化。
- 关于数据库取数据并显示到html:select的很难描述的问题
- JavaScript 在客户端如何实现对表格数据的升降排序
- 最近遇到一个非常棘手的需求是关于邮件转发的问题,请大家来帮忙给出出主意如何实现。
- 关于备份由 Mapinfo EasyLoader 上传到数据库的空间数据的问题
- 如何实现快速地从超大数据库中提取数据并进行相关的操作
- 向大家请教一个关于sharepoint2003的问题,如何使一个Custom List in Datasheet View中某个field从其他list抽取数据当显示时?
- Mysql:关于数据库数据读写的乱码问题
- 问题征解1:SPS数据如何实现分散存储(多台计算机和多个磁盘)
- 关于CLR中堆排序若干问题的代码实现
- 如何实现将vsflexgrid中修改的数据反馈到数据库中
- 如何实现在客户端,使CheckBox按照选择的顺序进行排序--来自博问的问题
- 一个关于如何学习大型数据库问题的问题