(原文)http://www.cnblogs.com/chinafine/archive/2008/08/23/1274700.html
这个是我的问题解决的源代码
-
Imports?System.Linq
-
Imports?System.Data
-
Public?Class?Form1
-
????Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load
-
????????Dim?sql?=?New?SqlHelper.DataBaseHelper
-
????????Dim?ds?=?sql.ExecQuery("SELECT?P_DPRES_TYPE?AS?处方类型,?P_DPRES_ITEM_CODE?AS?项目代码,"?&?_
-
???????????????????????????????"?P_DPRES_ITEM_NAME?AS?项目名称,?P_DPRES_SPEC?AS?规格,"?&?_
-
???????????????????????????????"?P_DPRES_DOSAGE?AS?计量,?P_DPRES_UNIT?AS?单位,?P_DPRES_USAGE?AS?用法?"?&?_
-
???????????????????????????????"?FROM?ORD_PACKAGE_PRES_DTL?")
-
????????Dim?colum?As?New?DataColumn
-
????????colum.ColumnName?=?"处方类型2"
- ????????colum.Caption?=?colum.ColumnName
-
????????colum.Expression?=?"iif(处方类型=1,'西成药',(iif(处方类型=2,'中草药',iif(处方类型=3,'项目',iif(处方类型=4,'材料','其他')))))"
- ????????ds.Tables(0).Columns.Add(colum)
- ????????OutlookGrid1.Dock?=?DockStyle.Fill
-
????????Me.OutlookGrid1.BindData(ds,?ds.Tables(0).TableName)
-
????????Dim?out?=?New?OutlookStyleControls.OutlookgGridDefaultGroup
-
????????Me.OutlookGrid1.GroupTemplate?=?out
-
????????Me.OutlookGrid1.GroupTemplate.Column?=?OutlookGrid1.Columns("处方类型2")
-
????????Me.OutlookGrid1.Sort(New?OutlookGridControl.OutlookGrid.DataRowComparer(Me.OutlookGrid1.GroupTemplate.Column.Index,?0))
-
????End?Sub
-
End?Class
以下是显示结果
http://p.blog.csdn.net/images/p_blog_csdn_net/maxjove/EntryImages/20081221/EUK%BJ(%R1DO2KJC_PG1XTN.jpg ?
以下是作者的源代码
-
using?System;
-
using?System.Collections.Generic;
-
using?System.Linq;
-
using?System.Text;
-
using?System.Data;
-
namespace?Console11
- {
-
????class?Program
- ????{
-
????????static?void?Main(string[]?args)
- ????????{
-
????????????System.Data.DataTable?table?=?new?DataTable();
-
????????????
-
????????????object?test?=?table.Compute("1+1",?"");
- ????????????Console.WriteLine(test);
-
????????????string?a?=?"123";
- ????????????System.Double?b=123;
-
????????????decimal?c=123m;
-
????????????Console.WriteLine((float)a);
-
????????????
-
????????????test?=?table.Compute("1+1",?"false");
- ????????????Console.WriteLine(test);
-
????????????
-
????????????test?=?table.Compute("abs(1)",?"");
- ????????????Console.WriteLine(test);
-
????????????
-
????????????test?=?table.Compute("2%2",?"");
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????
-
????????????table.Columns.Add("id",?typeof(string));
-
????????????table.Columns.Add("value",?typeof(int));
-
????????????for?(int?i?=?1;?i?<=?10;?i++)
- ????????????{
- ????????????????System.Data.DataRow?dRow?=?table.NewRow();
-
????????????????dRow["id"]?=?"id"?+?i.ToString();
-
????????????????dRow["value"]?=?i;
- ????????????????table.Rows.Add(dRow);
- ????????????}
-
????????????
-
????????????
-
????????????
-
????????????
-
????????????
-
????????????test?=?table.Compute("count(id)",?"false");
- ????????????Console.WriteLine(test);
-
????????????
-
????????????test?=?table.Compute("count(id)",?"true");
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????test?=?table.Compute("sum(value)",?"");
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????
-
????????????
-
????????????
-
????????????test?=?table.Compute("avg(value)",?"");
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????test?=?table.Compute("min(value)",?"");
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????test?=?table.Compute("max(value)",?"");
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????test?=?table.Compute("StDev(value)",?"");
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????test?=?table.Compute("Var(value)",?"");
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????test?=?table.Compute("max(value)/sum(value)",?"");
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????
-
????????????System.Data.DataColumn?column?=?new?DataColumn("exp1",?typeof(float));
- ????????????table.Columns.Add(column);
-
????????????
-
????????????column.Expression?=?"value*2";
-
????????????test?=?table.Select("id='id1'")[0]["exp1"];
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????column.Expression?=?"len(id)";
-
????????????test?=?table.Select("id='id1'")[0]["exp1"];
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????column.Expression?=?"len('?'+id+'?')";
-
????????????test?=?table.Select("id='id1'")[0]["exp1"];
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????column.Expression?=?"len(trim('?'+id+'?'))";
-
????????????test?=?table.Select("id='id1'")[0]["exp1"];
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????column.Expression?=?"substring(id,3,len(id)-2)";
-
????????????test?=?table.Select("id='id1'")[0]["exp1"];
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????column.Expression?=?"convert(substring(id,len(id)-2),'System.Int32')*1.6";
-
????????????test?=?table.Select("id='id1'")[0]["exp1"];
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????column.Expression?=?"isnull(value,10)";
-
????????????test?=?table.Select("id='id1'")[0]["exp1"];
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????column.Expression?=?"iif(value>5,1000,2000)";
-
????????????test?=?table.Select("id='id1'")[0]["exp1"];
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????column.Expression?=?"iif(id?like?'%1',2000)";
-
????????????test?=?table.Select("id='id1'")[0]["exp1"];
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????column.Expression?=?"iif(id?not?in('id1'),2000)";
-
????????????test?=?table.Select("id='id1'")[0]["exp1"];
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????column.Expression?=?"iif(value>5,iif(id?like?'%1',4000,2000))";
-
????????????test?=?table.Select("id='id1'")[0]["exp1"];
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????column.Expression?=?"value/sum(value)";
-
????????????test?=?table.Select("id='id1'")[0]["exp1"];
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????column.Expression?=?"max(value)-value";
-
????????????test?=?table.Select("id='id1'")[0]["exp1"];
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????
-
????????????DataTable?tableChild?=?new?DataTable();
-
????????????tableChild.Columns.Add("id",?typeof(string));
-
????????????tableChild.Columns.Add("value",?typeof(int));
-
????????????System.Data.DataSet?ds?=?new?DataSet();
- ????????????ds.Tables.Add(tableChild);
- ????????????ds.Tables.Add(table);
-
????????????DataRelation?relation?=?new?DataRelation("relation",?table.Columns["id"],?tableChild.Columns["id"]);
- ????????????ds.Relations.Add(relation);
-
????????????for?(int?i?=?1;?i?<=?10;?i++)
- ????????????{
- ????????????????System.Data.DataRow?dRow?=?tableChild.NewRow();
-
????????????????dRow["id"]?=?"id1";
-
????????????????dRow["value"]?=?i;
- ????????????????tableChild.Rows.Add(dRow);
- ????????????}
-
????????????
-
????????????column.Expression?=?"count(child(relation).value)";
-
????????????test?=?table.Select("id='id1'")[0]["exp1"];
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????column.Expression?=?"value/sum(child(relation).value)";
-
????????????test?=?table.Select("id='id1'")[0]["exp1"];
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????column.Expression?=?"iif(value-sum(child(relation).value)>0,value-sum(child(relation).value))";
-
????????????test?=?table.Select("id='id1'")[0]["exp1"];
- ????????????Console.WriteLine(test);
-
????????????
-
????????????
-
????????????
- ????????}
- ????}
- }
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|