二开辅助属性和仓位数据库id查询匹配格式化封装方法

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

二开辅助属性和仓位数据库id查询匹配格式化封装方法

在数据库中维度关联字段是由多个字段拼接进行关联的,多个关联的数据为1个id,在其他数据库表进行引用辅助属性和仓位时需要使用id进行匹配,下面方法为格式化Fcalcol字段的方法。 ## 仓位 ```c# //参数仓位匹配的两个字段的map集合,其中包含number('FF100001')字段和id('100001')字段 private string GetPositionsCalCol(Dictionary<string,string> dict) { string fCalCol = ""; //获取仓位的属性,然后根据属性进行拼接 var sql = string.Format("select * from T_BAS_FLEXVALUES"); var valList = DBServiceHelper.ExecuteDynamicObject(_context.Session.AppContext, sql); for (int i = 0; i < valList.Count; i++) { //判断是否存在‘FF100001’字段 if (valList[i] != null && dict.ContainsKey(valList[i]["FFLEXNUMBER"].ToString())) { fCalCol += dict[valList[i]["FFLEXNUMBER"].ToString()] ; //这里存在转移字段,可根据数据库查询的fcalcol字段进行修改,最后以为不需要添加分隔符 if (i< valList.Count-1) { fCalCol += "<]"; } } else { fCalCol += "0"; if (i < valList.Count - 1) { fCalCol += "<]"; } } } return fCalCol; } ``` ## 辅助属性 辅助属性比仓位多查询的步骤就是,你需要在查询完成后对非基础资料,辅助资料字段进行拼接查询。 最后根据fcalcol和最后拼接好的数据库语句查询到id ```c# private Dictionary<string, string> GetAuxAttributeCalCol(Dictionary<string, string> dict) { Dictionary<string,string> keyValuePairs = new Dictionary<string,string>(); string fCalCol = ""; var filterStringByType = new List<string>(); var sql = string.Format("select * from T_BD_FLEXAUXPROPERTY"); var valList = DBServiceHelper.ExecuteDynamicObject(_context.Session.AppContext, sql); for (int i = 0; i < valList.Count; i++) { if (valList[i] != null && valList[i]["FVALUETYPE"]!=null && valList[i]["FVALUETYPE"].ToString()== "0") { if (dict.ContainsKey(valList[i]["FFLEXNUMBER"].ToString())) { fCalCol += dict[valList[i]["FFLEXNUMBER"].ToString()]; if (i < valList.Count - 1) { fCalCol += "<]"; } } else { fCalCol += "0"; if (i < valList.Count - 1) { fCalCol += "<]"; } } } else if (valList[i] != null && valList[i]["FVALUETYPE"] != null && valList[i]["FVALUETYPE"].ToString() == "1") { if (dict.ContainsKey(valList[i]["FFLEXNUMBER"].ToString())) { fCalCol += dict[valList[i]["FFLEXNUMBER"].ToString()]; if (i < valList.Count - 1) { fCalCol += "<]"; } } else { if (i < valList.Count - 1) { fCalCol += "<]"; } } } else if(valList[i] != null && valList[i]["FVALUETYPE"] != null && valList[i]["FVALUETYPE"].ToString() == "2") { //拼接筛选语句 if (dict.ContainsKey(valList[i]["FFLEXNUMBER"].ToString())) { filterStringByType.Add(string.Format("{0} = '{1}'", valList[i]["FFLEXNUMBER"].ToString(), dict[valList[i]["FFLEXNUMBER"].ToString()])); } } } keyValuePairs.Add("FCalCol", fCalCol); keyValuePairs.Add("filterStringByType",string.Join(" and ", filterStringByType.ToArray())); return keyValuePairs; } ```

二开辅助属性和仓位数据库id查询匹配格式化封装方法

在数据库中维度关联字段是由多个字段拼接进行关联的,多个关联的数据为1个id,在其他数据库表进行引用辅助属性和仓位时需要使用id进行匹配...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息