亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dbgridehimpexp.pas

?? delphi控件類
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
        if Assigned(DBGridEh.OnGetCellParams) then
          DBGridEh.OnGetCellParams(DBGridEh,ColumnsList[i],FFont,FBackground,FState);

        ColumnsList[i].GetColCellParams(False,FColCellParamsEh);

        WriteDataCell(ColumnsList[i],FColCellParamsEh);

      end;
    end;
  finally
    AFont.Free;
  end;
end;

procedure TDBGridEhExport.WriteFooter(ColumnsList:TColumnsEhList; FooterNo:Integer);
var i:Integer;
    Font:TFont;
    Background: TColor;
    State:TGridDrawState;
    Alignment:TAlignment;
    Value:String;
begin
  Font := TFont.Create;
  try
    for i := 0 to ColumnsList.Count-1 do
    begin
      Font.Assign(ColumnsList[i].UsedFooter(FooterNo).Font);
      Background := ColumnsList[i].UsedFooter(FooterNo).Color;
      Alignment := ColumnsList[i].UsedFooter(FooterNo).Alignment;
      if ColumnsList[i].UsedFooter(FooterNo).ValueType in [fvtSum,fvtCount] then
        Value := GetFooterValue(FooterNo,i)
      else
        Value := DBGridEh.GetFooterValue(FooterNo,ColumnsList[i]);
      State := [];
      if Assigned(DBGridEh.OnGetFooterParams) then
        DBGridEh.OnGetFooterParams(DBGridEh, ColumnsList[i].Index, FooterNo,
            ColumnsList[i], Font, Background, Alignment, State, Value);
      WriteFooterCell(i{ColumnsList[i].Index}, FooterNo, ColumnsList[i], Font, Background,
        Alignment, Value);
    end;
  finally
    Font.Free;
  end;
end;

procedure TDBGridEhExport.WritePrefix;
begin
end;

procedure TDBGridEhExport.WriteSuffix;
begin
end;

procedure TDBGridEhExport.WriteDataCell(Column: TColumnEh; FColCellParamsEh: TColCellParamsEh);
begin
end;

procedure TDBGridEhExport.WriteFooterCell(DataCol, Row: Integer; Column: TColumnEh;
            AFont: TFont; Background: TColor; Alignment: TAlignment; Text: String);
begin
end;

procedure TDBGridEhExport.CalcFooterValues;
var i,j:Integer;
    Field:TField;
    Footer:TColumnFooterEh;
begin
  for i := 0 to DBGridEh.FooterRowCount - 1 do
    for j := 0 to ExpCols.Count - 1 do
    begin
      Footer := ExpCols[j].UsedFooter(i);
      if Footer.FieldName <> '' then
        Field := DBGridEh.DataSource.DataSet.FindField(Footer.FieldName)
      else
        Field := DBGridEh.DataSource.DataSet.FindField(ExpCols[j].FieldName);
      if Field = nil then Continue;
      case Footer.ValueType of
        fvtSum:
          if (Field.IsNull = False) then
            FooterValues[i*ExpCols.Count+j] := FooterValues[i*ExpCols.Count+j] + Field.AsFloat;
        fvtCount:
          FooterValues[i*ExpCols.Count+j] := FooterValues[i*ExpCols.Count+j] + 1;
      end;
    end;
end;

function TDBGridEhExport.GetFooterValue(Row, Col: Integer): String;
var
  FmtStr: string;
  Format: TFloatFormat;
  Digits: Integer;
  v:Variant;
  Field:TField;
begin
  Result := '';
  case ExpCols[Col].UsedFooter(Row).ValueType of
    fvtSum:
    begin
      if ExpCols[Col].UsedFooter(Row).FieldName <> '' then
        Field := DBGridEh.DataSource.DataSet.FindField(ExpCols[Col].UsedFooter(Row).FieldName)
      else
        Field := DBGridEh.DataSource.DataSet.FindField(ExpCols[Col].FieldName);
      if Field = nil then Exit;
      with Field do begin
        v := FooterValues[Row*ExpCols.Count+Col];
        case DataType of
          ftSmallint, ftInteger, ftAutoInc, ftWord:
             with Field as TIntegerField do
             begin
               FmtStr := DisplayFormat;
               if FmtStr = '' then Str(Integer(v), Result) else Result := FormatFloat(FmtStr, v);
             end;
          ftBCD:
            with Field as TBCDField do
            begin
              //if EditFormat = '' then FmtStr := DisplayFormat else FmtStr := EditFormat;
              FmtStr := DisplayFormat;
              if FmtStr = '' then
              begin
                if Currency then
                begin
                  Format := ffCurrency;
                  Digits := CurrencyDecimals;
                end else
                begin
                  Format := ffGeneral;
                  Digits := 0;
                end;
                Result := CurrToStrF(v, Format, Digits);
              end else
                Result := FormatCurr(FmtStr, v);
            end;
          {$IFDEF EH_LIB_6}
          ftFMTBcd:
            with Field as TFMTBCDField do
            begin
              //if EditFormat = '' then FmtStr := DisplayFormat else FmtStr := EditFormat;
              FmtStr := DisplayFormat;
              if FmtStr = '' then
              begin
                if Currency then
                begin
                  Format := ffCurrency;
                  Digits := CurrencyDecimals;
                end else
                begin
                  Format := ffGeneral;
                  Digits := 0;
                end;
                Result := CurrToStrF(v, Format, Digits);
              end else
                Result := FormatCurr(FmtStr, v);
            end;
           {$ENDIF}
          ftFloat,ftCurrency:
            with Field as TFloatField do
            begin
             //if EditFormat = '' then FmtStr := DisplayFormat else FmtStr := EditFormat;
             FmtStr := DisplayFormat;
             if FmtStr = '' then
             begin
                if Currency then
                begin
                  Format := ffCurrency;
                  Digits := CurrencyDecimals;
                end else
                begin
                  Format := ffGeneral;
                  Digits := 0;
                end;
                 Result := FloatToStrF(v, Format, Precision, Digits);
              end else
                Result := FormatFloat(FmtStr, v);
            end;
          end;
        end;
    end;
    fvtCount: Result := FloatToStr(FooterValues[Row*ExpCols.Count+Col]);
  end;
end;


constructor TDBGridEhExport.Create;
begin
  inherited Create;
  FColCellParamsEh := TColCellParamsEh.Create;
end;

destructor TDBGridEhExport.Destroy;
begin
  FColCellParamsEh.Free;
  inherited Destroy;
end;

{ TDBGridEhExportAsText }

procedure TDBGridEhExportAsText.WriteTitle(ColumnsList:TColumnsEhList);
var i:Integer;
    s:String;
begin
  CheckFirstRec;
  for i := 0 to ColumnsList.Count-1 do
  begin
    s := ColumnsList[i].Title.Caption;
    if i <> ColumnsList.Count-1 then
      s := s + #09;
    Stream.Write(PChar(s)^, Length(s));
  end;
end;

procedure TDBGridEhExportAsText.WriteRecord(ColumnsList:TColumnsEhList);
begin
  CheckFirstRec;
  FirstCell := True;
  inherited WriteRecord(ColumnsList);
end;

procedure TDBGridEhExportAsText.WriteFooter(ColumnsList:TColumnsEhList; FooterNo:Integer);
begin
  CheckFirstRec;
  FirstCell := True;
  inherited WriteFooter(ColumnsList,FooterNo);
end;

procedure TDBGridEhExportAsText.WritePrefix;
begin
end;

procedure TDBGridEhExportAsText.WriteSuffix;
begin
end;

procedure TDBGridEhExportAsText.ExportToStream(Stream: TStream;
  IsExportAll: Boolean);
begin
  FirstRec := True;
  inherited ExportToStream(Stream,IsExportAll);
end;

procedure TDBGridEhExportAsText.WriteDataCell(Column: TColumnEh; FColCellParamsEh: TColCellParamsEh);
var s:String;
begin
  CheckFirstCell;
  s := FColCellParamsEh.Text;
  Stream.Write(PChar(s)^, Length(s));
end;

procedure TDBGridEhExportAsText.WriteFooterCell(DataCol, Row: Integer;
  Column: TColumnEh; AFont: TFont; Background: TColor;
  Alignment: TAlignment; Text: String);
var s:String;
begin
  CheckFirstCell;
  s := Text;
  Stream.Write(PChar(s)^, Length(s));
end;

procedure TDBGridEhExportAsText.CheckFirstCell;
var s:String;
begin
  if FirstCell = False then
  begin
    s := #09;
    Stream.Write(PChar(s)^, Length(s))
  end else
    FirstCell := False;
end;

procedure TDBGridEhExportAsText.CheckFirstRec;
var s:String;
begin
  if FirstRec = False then
  begin
    s := #13#10;
    Stream.Write(PChar(s)^, Length(s))
  end else
    FirstRec := False;
end;

{ TDBGridEhExportAsCVS }

procedure TDBGridEhExportAsCSV.CheckFirstCell;
var s:String;
begin
  if FirstCell = False then
  begin
    s := Separator;
    Stream.Write(PChar(s)^, Length(s))
  end else
    FirstCell := False;
end;

constructor TDBGridEhExportAsCSV.Create;
begin
  Separator := DBGridEhImpExpCsvSeparator;
  inherited Create;
end;

procedure TDBGridEhExportAsCSV.WriteDataCell(Column: TColumnEh; FColCellParamsEh: TColCellParamsEh);
var s:String;
begin
  CheckFirstCell;
  s := AnsiQuotedStr(FColCellParamsEh.Text,'"');
  Stream.Write(PChar(s)^, Length(s));
end;

procedure TDBGridEhExportAsCSV.WriteFooterCell(DataCol, Row: Integer;
  Column: TColumnEh; AFont: TFont; Background: TColor;
  Alignment: TAlignment; Text: String);
var s:String;
begin
  CheckFirstCell;
  s := AnsiQuotedStr(Text,'"');
  Stream.Write(PChar(s)^, Length(s));
end;

procedure TDBGridEhExportAsCSV.WriteTitle(ColumnsList: TColumnsEhList);
var i:Integer;
    s:String;
begin
  CheckFirstRec;
  for i := 0 to ColumnsList.Count-1 do
  begin
    s := AnsiQuotedStr(ColumnsList[i].Title.Caption,'"');
    if i <> ColumnsList.Count-1 then
      s := s + Separator;
    Stream.Write(PChar(s)^, Length(s));
  end;
end;

{ Routines to convert MultiTitle in matrix (List of Lists) }

type
  TTitleExpRec = record
    Height:Integer;
    PTLeafCol:THeadTreeNode;
  end;

  PTitleExpRec = ^TTitleExpRec;
  TTitleExpArr = array[0..MaxListSize - 1] of TTitleExpRec;
  PTitleExpArr = ^TTitleExpArr;

procedure CalcSpan(
    ColumnsList:TColumnsEhList; ListOfHeadTreeNodeList:TList;
    Row,Col: Integer;
    var AColSpan:Integer; var ARowSpan:Integer
                  );
var Node:THeadTreeNode;
    i,k:Integer;
begin
  AColSpan := 1; ARowSpan := 1;
  Node := THeadTreeNode(TList(ListOfHeadTreeNodeList.Items[Row]).Items[Col]);
  if Node <> nil then
  begin
    for k := Row-1 downto 0 do
      if THeadTreeNode(TList(ListOfHeadTreeNodeList.Items[k]).Items[Col]) = Node
      then
      begin
        Inc(ARowSpan);
        TList(ListOfHeadTreeNodeList.Items[k]).Items[Col] := nil;
      end else
        Break;

    for i := Col+1 to ColumnsList.Count-1 do
      if THeadTreeNode(TList(ListOfHeadTreeNodeList.Items[Row]).Items[i]) = Node
      then
      begin
        Inc(AColSpan);
        TList(ListOfHeadTreeNodeList.Items[Row]).Items[i] := nil;
      end else
        Break;

    for k := Row-1 downto Row-ARowSpan+1 do
      for i := Col+1 to Col+AColSpan-1 do
        TList(ListOfHeadTreeNodeList.Items[k]).Items[i] := nil;
  end;
end;

procedure CreateMultiTitleMatrix(DBGridEh:TCustomDBGridEh;
                                 ColumnsList:TColumnsEhList;
                                 var FPTitleExpArr:PTitleExpArr;
                                 var ListOfHeadTreeNodeList:TList);
var i:Integer;
    NeedNextStep:Boolean;
    MinHeight:Integer;
    FHeadTreeNodeList:TList;
begin
  ListOfHeadTreeNodeList := nil;
  FPTitleExpArr := AllocMem(SizeOf(TTitleExpRec)*ColumnsList.Count);
  for i := 0 to ColumnsList.Count-1 do
  begin
    FPTitleExpArr[i].Height := DBGridEh.LeafFieldArr[ColumnsList[i].Index].FLeaf.Height;
    FPTitleExpArr[i].PTLeafCol := DBGridEh.LeafFieldArr[ColumnsList[i].Index].FLeaf;
  end;
  ListOfHeadTreeNodeList := TList.Create;
  NeedNextStep := True;
  while True do
  begin
    //search min height
    MinHeight := FPTitleExpArr[0].Height;
    for i := 1 to ColumnsList.Count-1 do
      if FPTitleExpArr[i].Height < MinHeight then
        MinHeight := FPTitleExpArr[i].Height;
    //add NodeList
    FHeadTreeNodeList := TList.Create;
    for i := 0 to ColumnsList.Count-1 do
    begin
      FHeadTreeNodeList.Add(FPTitleExpArr[i].PTLeafCol);
      if FPTitleExpArr[i].Height = MinHeight then
      begin
        if FPTitleExpArr[i].PTLeafCol.Host <> nil then
        begin
          FPTitleExpArr[i].PTLeafCol := FPTitleExpArr[i].PTLeafCol.Host;
          Inc(FPTitleExpArr[i].Height,FPTitleExpArr[i].PTLeafCol.Height);
          NeedNextStep := True;
        end;
      end;
    end;
    if not NeedNextStep then Break;
    ListOfHeadTreeNodeList.Add(FHeadTreeNodeList);
    NeedNextStep := False;
  end;
end;

{ TDBGridEhExportAsHTML }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合咪咪久久| 国产黄色成人av| 蜜桃av噜噜一区| av亚洲产国偷v产偷v自拍| 国产东北露脸精品视频| 欧美丝袜第三区| 欧美日韩五月天| 国产欧美一区二区三区沐欲| 国产精品妹子av| 国产精品不卡在线观看| 国产精品美女久久久久久久| 日韩二区三区四区| 免费成人在线观看视频| 在线国产亚洲欧美| 国产精品成人免费精品自在线观看| 蜜臀91精品一区二区三区| 欧美怡红院视频| 67194成人在线观看| 日韩一区二区电影网| 一区二区三区视频在线看| 丁香婷婷综合激情五月色| 99久久国产综合精品色伊| 精品福利一二区| 亚洲国产精品成人综合 | 欧美日韩在线播放一区| 久久久久久久综合色一本| 国产日产精品1区| 亚洲欧美日本韩国| 日韩中文字幕av电影| 在线亚洲人成电影网站色www| 欧美在线|欧美| 欧美sm美女调教| 国产精品毛片久久久久久| 国产一区二区三区四| 波多野结衣一区二区三区| 日本高清视频一区二区| 亚洲精品日日夜夜| 久久66热偷产精品| 欧美mv日韩mv国产网站app| 精品夜夜嗨av一区二区三区| 91首页免费视频| 欧美一级欧美三级在线观看| 蜜臂av日日欢夜夜爽一区| 91小视频在线| 一区二区三区在线观看动漫 | 亚洲三级电影网站| 亚洲一二三区视频在线观看| 欧美日韩小视频| 免费人成精品欧美精品 | 久久99国产精品久久99果冻传媒| 日韩区在线观看| 亚洲欧美一区二区三区国产精品| 色综合久久综合中文综合网| 久久精品夜夜夜夜久久| 亚洲与欧洲av电影| 欧美精品久久久久久久多人混战| 久久99精品久久久久| 国产精品网站在线观看| 在线免费观看视频一区| 欧美国产精品久久| 91成人在线观看喷潮| 国产精品久久精品日日| 欧美性色黄大片手机版| 美国一区二区三区在线播放| 欧美日韩一区二区三区不卡 | 亚洲午夜精品网| 成人福利视频在线看| 一区二区视频在线看| 日韩一区二区三区视频| 国产99精品视频| 亚洲午夜影视影院在线观看| 色婷婷综合在线| 欧美激情一区二区三区全黄| 欧洲精品视频在线观看| 亚洲欧美偷拍另类a∨色屁股| 欧美视频一区二| 成人午夜免费av| 国产欧美一区二区精品性色| 色综合激情久久| 国产精品久久久久久久蜜臀 | 亚洲二区在线视频| 国产午夜亚洲精品不卡| 在线不卡的av| 色综合久久99| 亚洲国产精品久久艾草纯爱| 欧美日韩一区精品| 成人三级伦理片| 美女www一区二区| 亚洲国产综合色| 制服丝袜一区二区三区| 99在线热播精品免费| 国产精品乱码一区二三区小蝌蚪| 欧美一区二区成人6969| 91福利精品视频| 蜜桃视频第一区免费观看| 亚洲最大成人综合| 国产精品免费看片| 久久精品一区二区三区四区| 国产很黄免费观看久久| 日本美女一区二区| 石原莉奈在线亚洲二区| 日韩精品中文字幕在线一区| 欧美视频一区二| 欧美艳星brazzers| 97精品视频在线观看自产线路二| 国产成人av电影免费在线观看| 麻豆91在线播放免费| 国产欧美一二三区| 久久婷婷成人综合色| 日韩欧美国产小视频| 成人短视频下载| 丁香另类激情小说| 亚洲一区二区精品视频| 精品久久久影院| 日韩欧美视频一区| a亚洲天堂av| 亚洲二区在线视频| 国产视频在线观看一区二区三区| 欧美哺乳videos| hitomi一区二区三区精品| 国产成人精品影视| 国产成人aaa| 色综合天天狠狠| 国产在线国偷精品免费看| 国内精品国产成人国产三级粉色| 亚洲男人的天堂av| 一个色在线综合| 日本怡春院一区二区| 国产精品天天摸av网| 欧美一级片在线观看| 色婷婷国产精品| 欧美日韩在线三级| 成人a级免费电影| 91麻豆自制传媒国产之光| 看片网站欧美日韩| 国产精品一区二区久激情瑜伽| 亚洲一区二区视频在线观看| 久久久噜噜噜久久中文字幕色伊伊| 精品88久久久久88久久久| 欧美午夜片在线看| 欧美一区二区播放| 精品福利一区二区三区| 中文字幕中文在线不卡住| 一区二区三区在线观看动漫 | 日韩免费一区二区| 国产日韩影视精品| 夜夜精品视频一区二区| 狠狠久久亚洲欧美| 91女人视频在线观看| 在线不卡一区二区| 中文字幕乱码日本亚洲一区二区| 亚洲综合一区二区精品导航| 国产精品欧美综合在线| 亚洲图片欧美综合| 粉嫩一区二区三区性色av| 欧美在线看片a免费观看| 91小宝寻花一区二区三区| 成人小视频在线观看| 欧美日本在线看| 国产精品人人做人人爽人人添| 性久久久久久久久久久久| 一区二区久久久久| 亚洲欧美日韩中文播放| 久久精品国产久精国产爱| 免费高清成人在线| 色综合天天综合在线视频| 精品国产乱码久久久久久免费 | 最新日韩在线视频| 毛片av中文字幕一区二区| 91小视频免费观看| 日本一二三不卡| 国产一区二区三区在线观看免费| 欧美群妇大交群中文字幕| 欧美精品一级二级三级| 3d动漫精品啪啪一区二区竹菊| 欧美日韩国产综合一区二区三区 | 亚洲成a天堂v人片| 99热99精品| 国产欧美精品一区二区色综合 | 国产宾馆实践打屁股91| 91精品国产91综合久久蜜臀| 亚洲欧洲制服丝袜| 亚洲444eee在线观看| 婷婷成人综合网| 欧亚洲嫩模精品一区三区| 欧美吞精做爰啪啪高潮| 国产精品高潮呻吟| 国产精品中文字幕日韩精品 | 日韩理论片在线| 懂色av一区二区三区蜜臀| 久久久夜色精品亚洲| 韩国欧美国产1区| 日韩精品在线网站| 国产精品色一区二区三区| 国产一区二区在线影院| 欧美一区二区在线不卡| 午夜电影网一区| 在线不卡a资源高清| 日本美女一区二区| 欧美r级在线观看|