知识大全 Delphi学堂之在Delphi中自己建立交叉表
Posted 知
篇首语:炒沙作縻终不饱,缕冰文章费工巧。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Delphi学堂之在Delphi中自己建立交叉表相关的知识,希望对你有一定的参考价值。
Delphi学堂之在Delphi中自己建立交叉表 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
function CreateTmptab(const AFieldDefs:TFieldDefs):TDataSet; var TempTable:TatClientDataSet; begin TempTable:=nil; Result:=nil; if AFieldDefs<>nil then begin try TempTable:=TatClientDataSet Create(Application); TempTable FieldDefs Assign(AFieldDefs); TempTable CreateDataSet; Result:=(TempTable as TDataSet); Except if TempTable<>nil then TempTable Free; Result:=nil; raise; end end; end; SouDataset源数据集 ColField交叉表动态列字段 RowField交叉表行字段 DataField数据字段 function GenCrossTable(SouDataset:tdataset;ColField RowField DataField:string):tdataset; var Vdataset:tdataset; tmpdataset:tatclientdataset; DataSource:tdatasource; tmpstrs:tstrings; rowval colval dataval:string; i j:integer; datatype:TFieldType; DataSize:integer; begin result:=nil; if (ColField= ) or(RowField= )or(DataField= ) then showmessage( All Field not be NULL! ) else begin if (ColField=RowField) or(ColField=DataField) or(RowField=DataField) then showmessage( All Field not be Equ! ) else if (self SouDataSet FieldByName(ColField) DataType=ftString) or (self SouDataSet FieldByName(ColField) DataType<>ftWideString) or (self SouDataSet FieldByName(ColField) DataType<>ftFixedChar) or (self SouDataSet FieldByName(ColField) DataType<>ftMemo) or (self SouDataSet FieldByName(ColField) DataType<>ftFmtMemo) then begin try tmpstrs:=tstringlist Create; Vdataset:=SouDataSet; Vdataset First; for i:= to Vdataset RecordCount do begin if (varisnull(SouDataSet FieldValues[colfield])=false) and (SouDataSet FieldValues[colfield]<> ) then if tmpstrs IndexOf(SouDataSet FieldValues[colfield])= then begin tmpstrs Add(SouDataSet FieldValues[colfield]); end; Vdataset Next; end; //生成动态列标题 tmpdataset:=TClientDataSet Create(Self); tmpdataset FieldDefs Add(rowfield ftstring False); for i:= to tmpstrs Count do begin with tmpdataset FieldDefs do begin Add(tmpstrs Strings[i] ftInteger False); end; end; tmpdataset FieldDefs Add( Sum ftInteger False); DataSource:=tdatasource Create(self); DataSource DataSet:=tmpdataset; with DataSource do begin dataset:=Createtmptab(tmpdataset FieldDefs); dataset Open; end; //建立临时表 Vdataset First; for i:= to Vdataset RecordCount do begin rowval:=SouDataSet fieldbyname(rowfield) AsString; colval:=SouDataSet fieldbyname(colfield) AsString; dataval:=SouDataSet fieldbyname(datafield) AsString; if dataval= then dataval:= ; if DataSource DataSet Locate(rowfield rowval [loPartialKey]) then begin DataSource DataSet Edit; DataSource DataSet FieldByName(colval) AsString:=dataval; DataSource DataSet FieldByName( Sum ) AsInteger:= DataSource DataSet FieldByName( Sum ) AsInteger+strtoint(dataval); DataSource DataSet Post; end else begin DataSource DataSet Append; DataSource DataSet FieldByName(rowfield) AsString:=rowval; for j:= to DataSource DataSet Fields Count do DataSource DataSet Fields[j] AsCurrency:= ; DataSource DataSet FieldByName(colval) AsString:=dataval; DataSource DataSet FieldByName( Sum ) AsString:=dataval; DataSource DataSet Post; end; Vdataset Next; end; result:=DataSource DataSet; //生成交叉表数据集 tmpstrs Free; except end; end else showmessage( ColField Must be of Type String! ) ; end; end; 以上代码在D 和SQL Server / 测试通过 cha138/Article/program/Delphi/201311/8419相关参考
Delphi学堂之用Delphi制作DLL小结 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一Dl
在Delphi中建立和使用别名[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 建立使用IN
在Delphi中建立和使用别名[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 设置模式的主
在Delphi中建立和使用别名[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 通常我们在D
知识大全 Delphi 中动态链接库(dll)的建立和使用[2]
Delphi中动态链接库(dll)的建立和使用[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 Delphi 中动态链接库(dll)的建立和使用[1]
Delphi中动态链接库(dll)的建立和使用[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
新手学堂:Delphi基础开发技巧浅析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!◇[DELPH
用Delphi开发数据库程序经验三则 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 建立临时表
Delphi数据库的动态建立 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! delphi最吸引人
利用Delphi建立精确计数器[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! proced