关于H3 BPM数据库如何实现排序取数据的问题

问题:

在打印模板中获取子表内容,可从数据库中取数据,而当前项目数据库里面数据按年度录入,但是只需要显示近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();

posted @ 2017-01-18 14:07  小林谈开发  阅读(368)  评论(0编辑  收藏  举报