日期:2014-05-18  浏览次数:20503 次

---------送货安排在DataGrid中的显示问题-----------------
C1         C2         C3           C4         C5       C6         C7               ShouDaoTotal
------------------------------------------------------
0         100         0           20           0         10         200               125

60         50       10             0           0         60         70                 110

--上面是DataTable中的数据,我要在DataGrid中显示成下面的样子---

列1       列2       列3       列4       列5       列6       列7
0           0             0           0           0         5           200
0           0           10           0           0         60         70

说明:这是一个送货安排的东西。我在一个DataTable中得到了
7天内送货的安排情况,同时也得到了已经收到了某种货物的总数ShouDaoTotal
现在要在DataGrid中显示出来   还有哪些没送!!
(请问,数据只有DataTable中的哪些数据,怎么来得到DataGrid中的显示效果呢?)

------解决方案--------------------
没看明白,你这两项数据之间是什么关系?
------解决方案--------------------
请表述清楚点
------解决方案--------------------
可以在绑定之前把数据添加到数据源,如Dataset里,然后再帮定。
如:
DataRow dr = ds.Tables[0].NewRow();
for(int i=0;i <ds.Tables[0].Columns.Count;i++)
{
dr[i] = xxxxxxxx;//你的逻辑算法
}
ds.Tables[0].Rows.InsertAt(dr,ds.Tables[0].Rows.Count-1);
然后绑定。

方法有点土,但是可以用,你可以试验试验。
------解决方案--------------------
看不懂要上面
------解决方案--------------------
还有哪些没送!!

======

根本就搞不懂你的需求,

按你的样本数据,凭什么说 C1 C2 的数据变为 0 了?
------解决方案--------------------
zhe这样的东西如果要绑定只能动态构造table
------解决方案--------------------
try ->

DataTable dt = GetMyDataTable(); // 获取数据

foreach(DataRow row in dt.Rows) {
int total = (int)row[ "ShouDaoTotal "];
for(i=0; i < 7; i++) { // 假设前 7 列为目标列
int val = (int)row[i];
if(val > total) break;
//
row[i] = 0;
total -= val;
}
}

DataGrid1.DataSource = dt;
DataGrid1.Data();
------解决方案--------------------
楼主,用PROCEDURE试试看.
PROCEDURE GetData
as
declare @c1 int
declare @c2 int
declare @c3 int
declare @c4 int
declare @c5 int
declare @c6 int
declare @c7 int
declare @ShouDaoTotal int
declare @t table(c1 int,c2 int,c3 int,c4 int,c5 int,c6 int,c7 int,ShouDaoTotal int)
declare roy cursor for select c1,c2,c3,c4,c5,c6,c7,ShouDaoTotal from count1