用友U8存货分类通过DataTable生成EasyUI Tree JSON
<%@ WebHandler Language="C#" Class="InventoryClass" %> using System;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using Newtonsoft.Json; public class InventoryClass : IHttpHandler
{
DataTable dt = new DataTable();
string json = string.Empty;
public void ProcessRequest(HttpContext context)
{
//选取所有成品类别
using (SqlConnection conn = new SqlConnection(DB.ConnectionStrings.U8))
using (SqlCommand cmd = new SqlCommand("SELECT cInvCCode as id ,cInvCCode + ' ' + cInvCName as text,iInvCGrade ,bInvCEnd FROM InventoryClass WHERE cInvCCode LIKE 'A%' order by cInvCCode", conn))
{
SqlDataAdapter da = new SqlDataAdapter(cmd);
conn.Open();
da.Fill(dt);
//第一个成品类别是A开头,级别为1
getJson("A%", 1);
context.Response.Write(json.Substring(11, json.Length - 13));
}
} void getJson(string filter, int iInvCGrade)
{
//筛选下一级的分类
DataView dv = new DataView(dt, @"id like '" + filter + "' and iInvCGrade = " + iInvCGrade.ToString(), "", DataViewRowState.CurrentRows);
if (dv.Count > 0)
{
//添加children
if (!string.IsNullOrEmpty(json))
{
json = json.TrimEnd(',').TrimEnd('}') + ",\"children\":[";
}
else
{
json += "\"children\":[";
}
//循环每一行
for (int i = 0; i < dv.Count; i++)
{
//JsonConvert用DataTable比较方便
DataTable dt2 = dt.Clone();
dt2.ImportRow(dv[i].Row);
string s = JsonConvert.SerializeObject(dt2);
json += s.Remove(0, 1).TrimEnd(']') + ","; //移除前后的[],并加上,
//递归获取下级分类
getJson(dv[i]["id"].ToString() + "%", iInvCGrade + 1);
dt2.Clear();
}
//本层循环完成后去掉后面的,并加上]},
json = json.TrimEnd(',') + "]},";
}
} public bool IsReusable
{
get
{
return false;
}
} }
生成的JSON可以用于JSON树、下拉列表、网格等
生成树效果:
用友U8存货分类通过DataTable生成EasyUI Tree JSON的更多相关文章
- datatable生成easyui的json格式汇总( 转)
转自 http://www.cnblogs.com/WikStone/archive/2012/07/02/2573137.html 目前项目没有使用第三方的json转换库,都是根据json格式进行字 ...
- .Net Mvc 返回Json,动态生成EasyUI Tree
最近做一个项目,开始接触EasyUI,感觉很强大,很适合我这种对前台不是很感冒的人.在学习Tree的过程中,感觉网上的资料挺乱的,很多只是把EasyUI API 抄了一遍.现在把最近这段时间的学到的, ...
- 从数据库读取数据并动态生成easyui tree构结
一. 数据库表结构 二.从后台读取数据库生成easyui tree结构的树 1.TreeNode树结点类(每个结点都包含easyui tree 的基本属性信息) import java.io.Seri ...
- 主管发话:一周搞不定用友U8 ERP跨业务数据分析,明天就可以“毕业”了
随着月末来临,又到了汇报总结的时刻. (图片来自网络) 到了这个特殊时期,你的老板就一定想要查看企业整体的运转情况.销售业绩.客户实况分析.客户活跃度.Top10 sales. 产品情况.订单处理情况 ...
- 用友U8根据客户简称/供应商简称的拼音首字母生成助记码
用友U8+中,客户档案和供应商档案可以设置自动生成助记码,但软件只能自动根据客户全称/供应商全称生成助记码,而无法选择按简称生成助记码,这显然十分不方便,可以通过如下方式解决: 修改步骤 1.往数据库 ...
- 用友U8将存货核算期初单价金额回写到库存管理期初单价金额
在用友U8及相关产品中,库存管理期初要求必须录入数量,但单价和金额并不是必输的.从本人过去实施经验来看,为了保证ERP产品的快速上线,有不少企业只能先提供库存管理期初数量,而单价金额需要后续才能确定. ...
- 用友U8.70安装说明
用友U8.70安装说明 U8.70安装说明一.安装前注意事项:1. 在安装U870之前,我们推荐您确保当前计算机操作系统是“干净”的,即计算机在安装过操作系统和更新过必要的系统补丁后没有安 ...
- 用友u8数据库表结构
用友数据库表名参照表1 Accessaries 成套件表2 AccInformation 帐套参数表3 AdjustPVouch4 AdjustPVouchs5 Ap_AlarmSet 单位报警分类设 ...
- 某企业用友U8+中勒索病毒后数据修复及重新实施过程记录
近期某客户中了勒索病毒,虽然前期多次提醒客户注意异地备份,但始终未执行,导致悲剧. 经过几天的努力,该客户信息系统已基本恢复正常运行,现将相关过程记录如下,作为警示. 方案抉择 交赎金解密:风险过高, ...
随机推荐
- 万网域名查询API接口
域名查询 接口地址:http://panda.www.net.cn/cgi-bin/check.cgi 接口采用HTTP,POST,GET协议 参数名称:area_domain 值为标准域名,例:nm ...
- grid和flex区别
网格容器 VS Flex容器 网格属性 VS Flex属性
- 基于java实现的简单区块链
技术:maven3.0.5 + jdk1.8 概述 区块链是分布式数据存储.点对点传输.共识机制.加密算法等计算机技术的新型应用模式.所谓共识机制是区块链系统中实现不同节点之间建立信任.获取权益的 ...
- 删除 nuget 文件夹内容
vs2017 ->工具->选项->NuGet 包管理器->清除所有NuGet缓存
- c# 基于redis分布式锁
在单进程的系统中,当存在多个线程可以同时改变某个变量(可变共享变量)时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量. 而同步的本质是通过锁来实现的.为了实现多个线程在 ...
- 解决CEF中显示Flash动画弹出安全警告问题
一. 1.Xilium.CefGlue. CefApp (CefApp.cs文件)类on_before_command_line_processing方法内设置flash路径.版本号等. m_comm ...
- 【C语言天天练(三)】typedef具体解释
引言: typedef能够看作type define的缩写,顾名思义就是类型定义,也就是说它仅仅是给已有的类型又一次定义了一个方便使用的别名.并没有产生新的数据类型. typedef与define的不 ...
- Atitit s2018 s3 doc list alldvc.docx .docx s2018 s3f doc compc s2018 s3f doc homepc sum doc dvcCompc dtS312 s2018 s3f doc compc\Atitit PathUtil 工具新特性新版本 v8 s312.docx s2018 s3f doc compc\Atitit 操作日
Atitit s2018 s3 doc list alldvc.docx .docx s2018 s3f doc compc s2018 s3f doc homepc sum doc dvcCompc ...
- grokking deep learning
https://www.manning.com/books/grokking-deep-learning?a_aid=grokkingdl&a_bid=32715258
- Linux基础知识之用户和用户组以及 Linux 权限管理
已经开始接触Linux用户管理,用户组管理,以及权限管理这几个逼格满满的关键字.这几个关键字对于前端程序猿的我来说真的是很高大上有木有,以前尝试学 Linux 的时候看到这些名词总是下意识的跳过不敢看 ...