【发布时间】:2011-05-09 05:29:32
【问题描述】:
我有一个ASPxGridview(通常是 21 列,但我只想要处理 4 列)。
每一列都有一个十进制值。
MV_EDDIE 列是空的。
我想要的是,以编程方式计算,MV_EDDIE 列是 RISK_EUR - (IPOTEK + MV_BERND) 仅在 GroupSummary 和 TotalSummary 中。
例如; 如果
RISK_EUR = 100
IPOTEK = 40
MV_BERND = 50
那么MV_EDDIE 列应该是 100 - (40 + 50) = 10
我该怎么做?
注意:我有一个这样的Sql
SELECT A.HESAP_NO, A.TEKLIF_NO1 || '/' || A.TEKLIF_NO2 AS TEKLIF,
A.MUS_K_ISIM, A.RISK,
(CASE WHEN A.DOVIZ_KOD = 21 THEN 'EUR' WHEN A.DOVIZ_KOD = 2 THEN 'USD' WHEN A.DOVIZ_KOD = 1 THEN 'TL' END) AS DOVIZ,
ROUND(KRISK_CV(A.TEKLIF_NO1, A.TEKLIF_NO2,A.DOVIZ_KOD,:TAR),2) AS RISK_EUR,
NVL(IPOTEK(A.HESAP_NO, :TAR),0) AS IPOTEK,
ROUND(SUM(M_V(A.TEKLIF_NO1, A.TEKLIF_NO2,:TAR)),2) AS MV_BERND,
ROUND(SUM(MV_EX(A.TEKLIF_NO1, A.TEKLIF_NO2,:TAR)),2) AS MV_EDDIE,
(CASE WHEN ROUND(SUM(MV_K(A.TEKLIF_NO1, A.TEKLIF_NO2,:TAR)),2) < 0 THEN
ROUND(SUM(MV_EX(A.TEKLIF_NO1, A.TEKLIF_NO2,:TAR)),2) ELSE
ROUND(SUM(MV_K(A.TEKLIF_NO1, A.TEKLIF_NO2,:TAR)),2) END) AS MV_KASKO,
B.TARIH, GGUNK(A.TEKLIF_NO1,A.TEKLIF_NO2,:TAR) AS GUN
FROM S_TEKLIF A, TMP_TAKIP B
WHERE A.HESAP_NO = B.HESAP
--AND A.HESAP_NO = 316
AND A.RISK > 0
GROUP BY B.TARIH, A.HESAP_NO, A.TEKLIF_NO1 || '/' || A.TEKLIF_NO2 ,
A.MUS_K_ISIM, GGUNK(A.TEKLIF_NO1,A.TEKLIF_NO2,:TAR),
A.RISK, A.DOVIZ_KOD,KRISK_CV(A.TEKLIF_NO1, A.TEKLIF_NO2,A.DOVIZ_KOD,:TAR)
ORDER BY 3
注意 2:我可以通过更改我的 sql 查询来解决这个问题,但我不想要它。我的查询已经很复杂了。我不想改变它。因此,我想以编程方式解决它..
编辑:我只想计算GroupSummary 和TotalSummary。不是其他行。
【问题讨论】:
-
你是如何为你的数据源加载数据的,你的数据源是什么类型的?如果它是一个数据表,那么你可以使用列表达式,让我知道,我可以给你一个例子。
-
@TBohnen.jnr 我用 SqlDataSource 加载。 SqlDataSource 中有列表达式吗?
-
DataTable 上有一个列表达式非常适合这个,快速看看你是否可以在 sqlDataSource 上使用它
-
我只使用 ASPxGridView1.DataSource = SqlDataSource1;和 ASPxGridView1.DataBind();...你能举个例子吗?
-
据我所知,您实际上不能直接添加或访问 sql 数据源的数据,如果您不想过多更改代码,我建议您更改为sql,否则让我知道,我会给你一个如何使用数据表的例子
标签: c# .net asp.net devexpress aspxgridview