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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? dbgridehimpexp.pas

?? EHlib CN For Delphi2009
?? PAS
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
                WritePrefix;
                if dgTitles in Options then WriteTitle(VisibleColumns);
                for i := 0 to Selection.Rows.Count - 1 do
                begin
                  Bookmark := Selection.Rows[I];
                  CalcFooterValues;
                  WriteRecord(VisibleColumns);
                end;
                for i := 0 to FooterRowCount - 1 do WriteFooter(VisibleColumns, i);
              end;
            gstRectangle:
              begin
                ColList := TColumnsEhList.Create;
                try
                  for i := Selection.Rect.LeftCol to Selection.Rect.RightCol do
                    if Columns[i].Visible then
                      ColList.Add(Columns[i]);
                  ExpCols := ColList;
//                  FooterValues := AllocMem(SizeOf(Currency) * ExpCols.Count * DBGridEh.FooterRowCount);
                  SetLength(FooterValues, ExpCols.Count * DBGridEh.FooterRowCount);
                  WritePrefix;
                  if dgTitles in Options then WriteTitle(ColList);
                  Bookmark := Selection.Rect.TopRow;
                  while True do
                  begin
                    WriteRecord(ColList);
                    CalcFooterValues;
//                    if CompareBookmarks(Pointer(Selection.Rect.BottomRow), Pointer(Bookmark)) = 0 then Break;
                    if DataSetCompareBookmarks(DBGridEh.DataSource.Dataset, Selection.Rect.BottomRow, Bookmark) = 0 then Break;
                    Next;
                    if Eof then Break;
                  end;
                  for i := 0 to FooterRowCount - 1 do WriteFooter(ColList, i);
                finally
                  ColList.Free;
                end;
              end;
            gstColumns:
              begin
                ExpCols := Selection.Columns;
//                FooterValues := AllocMem(SizeOf(Currency) * ExpCols.Count * DBGridEh.FooterRowCount);
                SetLength(FooterValues, ExpCols.Count * DBGridEh.FooterRowCount);
                WritePrefix;
                if dgTitles in Options then WriteTitle(Selection.Columns);
                First;
                while Eof = False do
                begin
                  WriteRecord(Selection.Columns);
                  CalcFooterValues;
                  Next;
                end;
                for i := 0 to FooterRowCount - 1 do WriteFooter(Selection.Columns, i);
              end;
            gstAll:
              begin
                ExpCols := VisibleColumns;
//                FooterValues := AllocMem(SizeOf(Currency) * ExpCols.Count * DBGridEh.FooterRowCount);
                SetLength(FooterValues, ExpCols.Count * DBGridEh.FooterRowCount);
                WritePrefix;
                if dgTitles in Options then WriteTitle(VisibleColumns);
                First;
                while Eof = False do
                begin
                  WriteRecord(VisibleColumns);
                  CalcFooterValues;
                  Next;
                end;
                for i := 0 to FooterRowCount - 1 do WriteFooter(VisibleColumns, i);
              end;
          end;
        finally
          RestoreBookmark;
          EnableControls;
        end;
      end;
    end;
    WriteSuffix;
  finally
//    FreeMem(FooterValues);
  end;
end;

procedure TDBGridEhExport.WriteTitle(ColumnsList: TColumnsEhList);
begin
end;

//type TColCellParamsEhCr acker = class(TColCellParamsEh) end;

procedure TDBGridEhExport.WriteRecord(ColumnsList: TColumnsEhList);
var i: Integer;
  AFont: TFont;
  NewBackground: TColor;
//    State:TGridDrawState;
begin
  AFont := TFont.Create;
  try
    for i := 0 to ColumnsList.Count - 1 do
    begin
      AFont.Assign(ColumnsList[i].Font);

      with FColCellParamsEh do
      begin
        Row := -1;
        Col := -1;
        State := [];
        Font := AFont;
        Background := ColumnsList[i].Color;
        NewBackground := ColumnsList[i].Color;
        Alignment := ColumnsList[i].Alignment;
        ImageIndex := ColumnsList[i].GetImageIndex;
        Text := ColumnsList[i].DisplayText;
        CheckboxState := ColumnsList[i].CheckboxState;

        if Assigned(DBGridEh.OnGetCellParams) then
          DBGridEh.OnGetCellParams(DBGridEh, ColumnsList[i], Font, NewBackground, State);

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

        Background := NewBackground;

        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
  FreeAndNil(FColCellParamsEh);
  inherited Destroy;
end;

{ TDBGridEhExportAsText }

procedure StreamWriteString(Stream: TStream; S: String);
{$IFDEF CIL}
var
  b: TBytes;
{$ENDIF}
begin
{$IFDEF CIL}
    b := BytesOf(S);
    Stream.Write(b, Length(b));
{$ELSE}
    Stream.Write(PChar(S)^, Length(S));
{$ENDIF}
end;

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;
    StreamWriteString(Stream, 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;
  StreamWriteString(Stream, s);
//  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;
  StreamWriteString(Stream, s);
//  Stream.Write(PChar(s)^, Length(s));
end;

procedure TDBGridEhExportAsText.CheckFirstCell;
var s: String;
begin
  if FirstCell = False then
  begin
    s := #09;
    StreamWriteString(Stream, s);
//    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;
    StreamWriteString(Stream, s);
//    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;
    StreamWriteString(Stream, s);
//    Stream.Write(PChar(s)^, Length(s))
  end else
    FirstCell := False;
end;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩精品综合在线| 国产高清久久久久| 中文字幕亚洲电影| 亚洲私人黄色宅男| 日韩国产精品久久久久久亚洲| 五月天视频一区| 精品在线你懂的| 成人av先锋影音| 欧美日韩国产区一| wwwwxxxxx欧美| 一区二区三区四区乱视频| 亚洲成年人影院| 懂色av一区二区在线播放| 91一区二区三区在线观看| 欧美精品久久99久久在免费线 | 欧美日韩一本到| 欧美成人三级在线| 亚洲欧美国产三级| 狂野欧美性猛交blacked| av一本久道久久综合久久鬼色| 欧美日韩在线播放一区| 久久久777精品电影网影网 | 国产99精品视频| 欧美撒尿777hd撒尿| 国产婷婷一区二区| 亚洲成av人在线观看| 成人黄色国产精品网站大全在线免费观看| 91麻豆6部合集magnet| 欧美电视剧在线观看完整版| 亚洲已满18点击进入久久| 成人在线视频首页| 91精品国产综合久久久久久漫画 | 国产精品电影一区二区| 经典三级视频一区| 91麻豆精品国产自产在线观看一区| 国产精品福利一区| 国产高清在线精品| 欧美精品成人一区二区三区四区| 成人免费在线观看入口| 国产suv精品一区二区6| 欧美不卡视频一区| 免费人成网站在线观看欧美高清| 欧美系列一区二区| 亚洲成人第一页| 在线精品视频免费播放| 一二三四区精品视频| 不卡av在线免费观看| 国产精品嫩草久久久久| 成人在线一区二区三区| 国产精品久久久久久久裸模| www..com久久爱| 成人欧美一区二区三区视频网页| va亚洲va日韩不卡在线观看| 中文字幕中文字幕在线一区| 成人在线视频首页| 亚洲综合在线视频| 7777女厕盗摄久久久| 韩国精品主播一区二区在线观看 | 天堂在线亚洲视频| 91精品欧美一区二区三区综合在| 久久精品国产精品青草| 国产三级久久久| 精品视频在线视频| 激情五月播播久久久精品| 国产午夜精品福利| 欧美日韩激情一区二区三区| 美脚の诱脚舐め脚责91 | 亚洲欧洲精品一区二区三区不卡| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 国产精品久久久久精k8| 欧美日韩aaa| 91在线精品一区二区| 五月天久久比比资源色| 欧美激情在线观看视频免费| 欧美日韩在线不卡| 成人激情午夜影院| 国产综合色精品一区二区三区| 亚洲激情自拍偷拍| 国产精品久久久久久久浪潮网站| 3atv一区二区三区| 色狠狠色狠狠综合| 国产精品亚洲第一| 久久精品国产成人一区二区三区| 一区二区三区在线观看国产| 久久精品一二三| 日韩一级黄色片| 欧美日韩免费在线视频| gogo大胆日本视频一区| 国产成人免费高清| 国产河南妇女毛片精品久久久| 精品一区二区三区在线观看国产 | 色狠狠综合天天综合综合| 成人深夜在线观看| 成人av在线网站| www.久久精品| 色伊人久久综合中文字幕| 91在线云播放| 色综合咪咪久久| 欧美性受xxxx| 欧美高清hd18日本| 日韩欧美一级特黄在线播放| 欧美丰满美乳xxx高潮www| 欧美高清视频不卡网| 制服丝袜成人动漫| 精品国产网站在线观看| 久久久亚洲精华液精华液精华液| 日本一区二区电影| 自拍av一区二区三区| 国产性做久久久久久| 欧美图片一区二区三区| 欧美熟乱第一页| 欧美一区午夜精品| 久久久久久久久久久久电影| 国产视频亚洲色图| 亚洲精品久久久蜜桃| 亚洲精品成人a在线观看| 日韩精品福利网| 国产iv一区二区三区| 91福利社在线观看| 日韩免费高清电影| 亚洲欧美日韩成人高清在线一区| 亚洲一区二区中文在线| 奇米精品一区二区三区在线观看| 国产成人av影院| 欧美午夜电影在线播放| 精品理论电影在线| 一区二区三国产精华液| 国产一区二区免费看| 日韩一区欧美二区| 日本中文一区二区三区| 国产精品 欧美精品| 欧美亚洲动漫制服丝袜| 久久综合九色综合久久久精品综合| 亚洲色图19p| 风流少妇一区二区| 欧美色爱综合网| 18涩涩午夜精品.www| 韩国午夜理伦三级不卡影院| 91成人免费在线| 国产精品毛片高清在线完整版| 亚洲成人一区在线| 91福利在线播放| 国产精品护士白丝一区av| 国产精品亚洲一区二区三区在线| 欧美日韩精品欧美日韩精品一综合| 2023国产精华国产精品| 日韩av在线发布| 欧美精品亚洲一区二区在线播放| 国产精品免费视频网站| 午夜精品免费在线| 成人av网址在线| 久久久777精品电影网影网| 久久精品99久久久| 日韩一级完整毛片| 极品销魂美女一区二区三区| 欧美美女直播网站| 日韩国产在线观看一区| 欧美日本乱大交xxxxx| 亚洲电影中文字幕在线观看| 欧美亚洲一区二区三区四区| 一区二区三区四区中文字幕| 91麻豆国产精品久久| 五月综合激情网| 精品久久久久99| 99这里都是精品| 亚洲国产日韩一级| 日韩视频免费观看高清完整版在线观看 | 欧美做爰猛烈大尺度电影无法无天| 亚洲综合一区二区| 欧美日韩高清一区二区不卡| 日韩成人一级片| 日韩精品一区国产麻豆| 精品一区二区三区视频 | 91偷拍与自偷拍精品| 亚洲一卡二卡三卡四卡无卡久久 | 日韩国产精品久久久久久亚洲| 日韩欧美色综合| 91毛片在线观看| 精品中文字幕一区二区小辣椒| 国产精品国产自产拍高清av| 欧美午夜精品免费| 成人高清视频免费观看| 午夜私人影院久久久久| 国产欧美一区二区精品仙草咪| 欧美午夜在线观看| 风间由美一区二区三区在线观看 | 欧美一三区三区四区免费在线看| 亚洲人快播电影网| 精品国产百合女同互慰| 91在线视频网址| 国产黄色91视频| 日韩高清不卡一区二区三区| 国产精品久久福利| 久久奇米777| 欧美日韩一区中文字幕| 91免费精品国自产拍在线不卡| 奇米一区二区三区av| 午夜国产精品一区| 亚洲精选视频免费看| 国产精品入口麻豆九色|