国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > Delphi > 正文

在Delphi中自己建立交叉表

2019-11-18 18:32:32
字體:
供稿:網(wǎng)友
 經(jīng)常在CSDN上查閱名位大俠的文章,得益不少,近期因做一個項目,需要用到交叉表,報表上倒是有,但客戶要求在Grid上能操作,沒有辦法,只好自己寫了一段代碼用于普通查詢到交叉表的實現(xiàn),不敢獨享,故上傳,望能拋磚引玉,請名位大俠不吝指教。


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源數(shù)據(jù)集
ColField交叉表動態(tài)列字段
RowField交叉表行字段
DataField數(shù)據(jù)字段
}
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:=0 to Vdataset.RecordCount-1 do
    begin
      if (varisnull(SouDataSet.FieldValues[colfield])=false) and (SouDataSet.FieldValues[colfield]<>'') then
        if tmpstrs.IndexOf(SouDataSet.FieldValues[colfield])=-1 then
        begin
          tmpstrs.Add(SouDataSet.FieldValues[colfield]);
        end;
      Vdataset.Next;
    end;
    //生成動態(tài)列標題
    tmpdataset:=TClientDataSet.Create(Self);
    tmpdataset.FieldDefs.Add(rowfield,ftstring,50,False);
    for i:=0 to tmpstrs.Count-1 do
    begin
      with tmpdataset.FieldDefs do
      begin
        Add(tmpstrs.Strings[i],ftInteger,0,False);
      end;
    end;
    tmpdataset.FieldDefs.Add('Sum',ftInteger,0,False);
    DataSource:=tdatasource.Create(self);
    DataSource.DataSet:=tmpdataset;
    with DataSource do
    begin
      dataset:=Createtmptab(tmpdataset.FieldDefs);
      dataset.Open;
    end;
    //建立臨時表
    Vdataset.First;
    for i:=0 to Vdataset.RecordCount-1 do
    begin
      rowval:=SouDataSet.fieldbyname(rowfield).AsString;
      colval:=SouDataSet.fieldbyname(colfield).AsString;
      dataval:=SouDataSet.fieldbyname(datafield).AsString;
      if dataval='' then dataval:='0';
      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:=1 to DataSource.DataSet.Fields.Count-1 do
          DataSource.DataSet.Fields[j].AsCurrency:=0;
        DataSource.DataSet.FieldByName(colval).AsString:=dataval;
        DataSource.DataSet.FieldByName('Sum').AsString:=dataval;
        DataSource.DataSet.Post;
      end;
      Vdataset.Next;
    end;
    result:=DataSource.DataSet;
    //生成交叉表數(shù)據(jù)集
    tmpstrs.Free;
  except
  end;
  end
  else
    showmessage('ColField Must be of Type String!') ;
end;
end;

以上代碼在D7和SQL Server 7.0/2000測試通過


上一篇:代碼重構(gòu)——之獲得封裝性DELPHI編碼實例

下一篇:NeHe的opengl教程delphi版(6)----紋理映射(貼圖)

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網(wǎng)友關(guān)注

国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
日韩中文字幕久久久经典网| 91国内精品在线视频| 精品女厕厕露p撒尿| 亚洲第一成人在线视频| 在线天堂av| 久久精品视频免费看| 中文字幕在线免费观看| 中文字幕高清av| 国产一区精品| 在线观看中文字幕| 久久久久久久久久久久网站 | 国产视频第一区| 国产无遮挡又黄又爽免费网站 | 天天插天天操| 国产男女无套在线播放| 国产黄色免费网站| 青青草中文字幕| 国产亚洲精品午夜高清影院| 在线成人一区| 91超碰在线免费| 免费在线黄色网址| 影音先锋在线中文字幕| 午夜av电影| 永久免费在线观看| 国产亚洲依依| 九九热在线视频观看| 在线看黄网站| 国产精品美女视频免费观看软件| av免费在线观| 91久久精品国产性色| 国产美女被草| 六月天色婷婷| av在线1区2区| 91av福利| 国产区视频在线观看| 日本中文字幕高清视频| 黄色在线视频观看网站| eeuss影院www在线播放| 亚洲最新永久观看在线| 精品电影在线| 国产黄在线播放| 国产精品99999| 天天操天天射天天色| 女人色在线免费视频| wwww亚洲| 日本国产在线| 四虎a级欧美在线观看| av在线不卡播放| 热99re久久精品精品免费| 天天插天天色| 超碰免费在线播放| 国产在线高潮| 国产视频青青| 999国产在线视频| 在线中文字幕第一页| 在线视频99| 蜜桃av网站| 国产乱子伦三级在线播放| 日本视频在线| 蜜桃av网站| 国产精品久久在线| 在线播放一区二区精品产| 日本动漫理论片在线观看网站| www.99色.com| 国产亚洲精品久久久久久青梅 | 国产www网站| 在线观看免费观看在线91| 亚洲欧美综合乱码精品成人网| 亚洲va国产日韩欧美精品色婷婷| sese在线视频| 国产青青草在线| 精品福利影院| 午夜av在线免费观看| 9999在线视频| 国产精品偷乱一区二区三区| 精品视频一二三| 免费男女羞羞的视频网站中文字幕| 黄色一级视频网站| av免费在线观| 中文字幕在线影视资源| 精品日韩av| 国产人成精品| 国产鲁鲁视频在线观看免费 | 国产一级片在线播放| 国产寡妇树林野战在线播放| 不卡av免费观看| 精品国语对白精品自拍视 | 四虎精品视频| 国产精品186在线观看在线播放| 日本成人在线播放| 在线天堂av| 国产日产一区二区| 中文字幕av中文字幕| 国产在线高潮| 成人精品一区二区三区免费| 免费日本黄色| 一二三四区在线观看| 国产夫妻视频| 精品卡1卡2卡三卡免费网站| 国产h色视频在线观看| 国产欧美一区二区三区小说| 最近中文字幕大全中文字幕免费| 欧美在线中文| 黄网在线免费| 中文字幕在线观看日本| 中文字幕毛片| 18激情网站| eeuss影院网站免费观看| 欧美卡一卡二| 国产亚洲精品午夜高清影院 | 国产原创精品视频| 九九热免费在线视频| 成网站在线观看人免费| 国产小视频免费在线观看| 国产黄色免费电影| 在线国产中文字幕| 白浆爆出在线观看| 国产在线第一页| 国产无套粉嫩白浆在线2022年| 国产视频资源| 天天操夜夜添| 天天av综合网| 伊人222成人综合网| 青青草观看免费视频在线| 四虎影院成人| 天堂在线免费av| 四虎成人免费观看在线网址| 最近中文字幕mv免费高清在线| 中文天堂av| 国产一区二区三区不卡免费观看| 国产成人亚洲欧美电影| 免费国产阿v视频在线观看| 国产一二三区在线视频| 精品国产免费第一区二区| 丁香婷婷激情| 天天插天天色| 99久久99热久久精品免费看| 国产在线播放av| 日本一本久久| 国产成人亚洲综合小说区| 久草在线视频网| 午夜影院免费| 国产国产人免费人成免费视频 | 欧美性猛交p30| 国产videos| 国产九色在线| 狠狠综合久久久综合| 99精品老司机免费视频| 天堂中文资源在线| 久久国产精品久久久久久小说| 精品成人免费自拍视频| 国产网站av| 国产免费av在线| 国产麻豆精品一区二区三区v视界| 在线观看中文字幕| 依依成人在线| 精灵使的剑舞无删减版在线观看| 国产黄色网页| 2021av在线| 一区二区免费播放| 伊人222成人综合网| 2019中文字幕在线电影免费| 国产经典自拍视频在线观看 | 黄色毛片在线观看| 超碰国产在线观看| 狠狠操视频网| 国产网站在线免费观看| 国产女主播在线观看| 国产wwww| 香蕉视频免费在线播放| wwww亚洲| 中文字幕亚洲免费| 91www在线观看| 亚洲xxxxxx| 尤物视频在线看| 中文在线视频| 九九热视频在线观看| 最近中文字幕av免费高清| 中文字幕网站视频在线| 国产精品入口麻豆高清| 亚洲最新永久观看在线| 九九热免费视频| 69视频在线| 国产在线观看a视频| 2018中文字幕在线| 亚洲日本久久久午夜精品| 国产在线黄色片| 2018狠狠干| 国产免费黄网站| 中文字幕4区| 激情五月色综合亚洲小说| 尤物网址在线观看| 在线观看电影av| 国内精品一区视频| 一本大道久久精品| 中文字幕在线免费看| 日本调教视频在线观看| 国产污视频在线| 国产男女av| 久热免费视频|