您好,登錄后才能下訂單哦!
問題:
在打印模板中獲取子表內容,可從數據庫中取數據,而當前項目數據庫里面數據按年度錄入,但是只需要顯示近3年的數據,插件如何實現排序取數據?
解決方法:
1、先直接寫一個SQL語句,把近3年排序后的數據讀取出來
2、在調用子表接口加載數據
3、示例:
var monthly = 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
WHERE t1.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 = new List<BizObject>();
var monthlist = new List<string> { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "December" };
if (dt.Rows.Count > 0)
{
//DeptCostBudgetInfo 為子表名稱
BizObjectSchema childSchema = this.ActionContext.Schema.GetProperty("DeptCostBudgetInfo").ChildSchema;
var bizObject = 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();
var bizObject2 = 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();
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。