功能介绍:

根据入库单编号和产品编码,获取该入库单中该产品的颜色尺码值,以二维形式显示出来。即把DataTable数据集

(图1)用以下格式显示出来 (图2)。

实现代码:

前台:

现在页面中拉一个table控件:

<asp:Table ID="Table1" runat="server" CssClass="grid" Width="92%" CellPadding="2" CellSpacing="0" style="text-align:center;" GridLines="Both">

</asp:Table>

后台:

DataTable dt = new DataTable();

DataTable colors = new DataTable();

DataTable sizes = new DataTable();

dt = SQLServerDAL.Report.SqlReportMgt.GetColorSizeByCC(billcode, barcode);//获得图1的数据集

colors = SQLServerDAL.Report.SqlReportMgt.GetColors(billcode, barcode);//获取该订单该产品的颜色集(即【粉红,黑】)

sizes=SQLServerDAL.Report.SqlReportMgt.GetSizes();//获取所有尺码(即【L,M,S,XL】)

 

TableRow tr=new TableRow();//行

TableCell tc=new TableCell();//列

Label lb;

//第一行标题

tc.Text = "入库单:" + billcode + " 中产品" + barcode+ " 的信息";

tc.Attributes.Add("colspan", "6");

tc.Attributes.Add("text-align", "center");

tc.Attributes.Add("background", "RGB(192,192,192)");

tr.Cells.Add(tc);

Table1.Rows.Add(tr);

//第一列颜色列名

tr = new TableRow();

tr.HorizontalAlign = HorizontalAlign.Center;

tc = new TableCell();

tc.Text = "颜?色¦?";

tr.Cells.Add(tc);

//生成表头

for (int i = 0; i <= sizes.Rows.Count; i++)

{

tc = new TableCell();

if (i < sizes.Rows.Count)

{

tc.Text = sizes.Rows[i][0].ToString();

}

else

{

tc.Text = "合计";

}

tr.Cells.Add(tc);

}

Table1.Rows.Add(tr);

for (int i = 0; i < colors.Rows.Count; i++)//颜色

{

tr = new TableRow();

tc = new TableCell();

lb = new Label();//记录第一列的颜色值

lb.Text = colors.Rows[i][0].ToString();

tc.Controls.Add(lb);

tr.Cells.Add(tc);

int total = 0;//记录合计

for (int j = 0; j < sizes.Rows.Count; j++)//尺码

{

tc = new TableCell();

lb = new Label();

//给每一个单元格附一个label控件

lb.ID ="lbl_"+ colors.Rows[i][0].ToString() + sizes.Rows[j][0].ToString();//形如“粉红S”“粉红M”等

for (int t = 0; t < dt.Rows.Count; t++)//遍历数据集

{

if (dt.Rows[t][2].ToString() == colors.Rows[i][0].ToString() &&

dt.Rows[t][3].ToString() == sizes.Rows[j][0].ToString())

{

lb.Text = dt.Rows[t][4].ToString();

total = total + Convert.ToInt32(lb.Text);//合计累加

}

}

tc.Controls.Add(lb);

tc.Attributes.Add("text-align", "center");

tr.Cells.Add(tc);

}

lb = new Label();//定义合计列

tc = new TableCell();

lb.ID = "lbl_" + colors.Rows[i][0].ToString() + "合计";

lb.Text = total.ToString();

tc.Controls.Add(lb);

tr.Cells.Add(tc);

Table1.Rows.Add(tr);

}

说明:

1. 生成时只能一行一行的生成

2. 生成行列时,先给行、列分别一个实例化变量,即tr = new TableRow();                    tc = new TableCell();,再实例化一个label控件:lb = new Label();设置label的文本,然后把label加入到列tc中:tc.Controls.Add(lb);,然后把列加入到行中:tr.Cells.Add(tc);,最后把行加入到table中:Table1.Rows.Add(tr);。

3. 反复第2步,定义每一行内容。

转载于:https://www.cnblogs.com/yinluhui0229/archive/2011/08/01/2124180.html

DataTable数据集动态构造Table表结构相关推荐

  1. mysql frm 恢复_mysql 从 frm 文件恢复 table 表结构的3种方法

    mysql 正常运行的时候,查看 table 的结构并不是困难的事. 但是有时 mysql 发生故障,这种方法便不再可行. 当遇到故障,通常使用新的 mysql 实例来恢复当前的数据. 建表是非常重要 ...

  2. ALTER TABLE 表结构变更

    修改表明 ALTER TABLE 当前表名 RENAME TO 新表名; ALTER TABLE old RENAME TO new 给列改名 ALTER TABLE 表名 RENAME COLUMN ...

  3. python中table表结构_python中的简易表格prettytable

    安装:pip install PrettyTable 普通表格 from prettytable import PrettyTable table = PrettyTable(['编号','云编号', ...

  4. c语言边序列构造邻接表,结构C语言版期末考试考试(有答案).doc

    人生难得几回搏,此时不搏更待何时? "数据结构"期末考试试题 一.单选题(每小题2分 共12分) 1.在一个单链表HL中 若要向表头插入一个由指针p指向的结点 则执行( ) A. ...

  5. 带你实现java根据表结构动态导入导出Excel

    你知道的越多,你不知道的越多 点赞再看,养成习惯 如果您有疑问或者见解,欢迎指教: 企鹅:869192208 前言 最近在甲方爸爸的要(威)求(逼)下,项目经理带来了客户的全新需求,希望能够在原有编辑 ...

  6. 不改表结构如何动态扩展字段

    笔者的动态字段扩展解决方案主要针对 Mysql 5.7.8 以下版本,在 Mysql 5.7.8 已经新增 JSON Data Type,同样适用该方案,而且情况变得更加简单. 痛点 软件行业唯一不变 ...

  7. 多表查询返回多个DataTable,合并到一个Table中.

    本文意在说明一下DataSet.Merge(Table)和多个Table合并到一个里面的操作.因为是新手,代码肯定有很多问题,欢迎大家批评指正.    如果你有更好的解决方案,请告诉我.谢谢. 先说一 ...

  8. 数据源管理 | 动态权限校验,表结构和数据迁移流程

    本文源码:GitHub·点这里 || GitEE·点这里 一.数据同步简介 1.场景描述 如果经常接触数据开发,会有这样一个场景,服务A提供一个数据源,假设称为动态数据源A,需要读取该数据源下的数据: ...

  9. ML之FE:基于BigMartSales数据集利用Featuretools工具(1个dataframe表结构切为2个Entity表结构)实现自动特征工程之详细攻略

    ML之FE:基于BigMartSales数据集利用Featuretools工具(1个dataframe表结构切为2个Entity表结构)实现自动特征工程之详细攻略 目录 基于BigMartSales数 ...

最新文章

  1. 肝了3版才满意:分布式系统之CAP理论,我们对它的理解和误解
  2. 第二十一课.GBDT
  3. linux系统中的日志管理
  4. Android Studio 第六十五期 - Android业务组件库
  5. iOS 播放gif动态图的方式探讨
  6. nginx 配置笔记
  7. python summary writer_tensorflow中summary操作
  8. 牛逼,Java中表达式引擎工具就用它!建议收藏,一定用的到!!
  9. PTA-7-2 统计字符出现次数 (20分)
  10. Spring之IOC容器篇
  11. Windows 平台下基于MinGW和Qt 的OpenCV 之CMake 项目配置
  12. 搭建和测试 Redis 主备和集群
  13. 聊聊flink JobManager的High Availability
  14. html5 语音直播,一种基于HTML5浏览器的音视频直播方法与流程
  15. #今日论文推荐# 中国矿大团队,开发集成多尺度深度学习模型,用于 RNA 甲基化位点预测
  16. 关于glew.h / glut.h引用
  17. Windows10系统中断、系统设置打不开的解决办法
  18. DM368+MT7601U通过wifi可以正常出图
  19. hibernate一对一主键唯一外键关联(一)
  20. 【AD封装】2.54间距排针排母插件贴片(带3D)

热门文章

  1. 唠唠 RDS 那些事 —— RDS on Windows Server 2016 第二篇
  2. 从零开始学习搜索引擎(开篇)---Searcharoo.net
  3. Sql Create Function简单例子
  4. 《An Introduction to Ray Tracing》——2.3 Ray/Polygon Intersection And Mapping
  5. Kettle工具使用及总结
  6. 在html中解决数字四舍五入,JavaScript四舍五入及精度丢失问题
  7. mulitpartfile怎么接收不到值_GNSS接收机设计杂谈(射频前端+捕获)
  8. docker Ubuntu系统中使用 powershell
  9. mysql n叉树_MySQL索引底层:B+树详解
  10. 360浏览器清除缓存_放飞浏览器的反应速度