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

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

?? qrdatasu.~pas

?? delphi7報表打印控件源碼 可以設計報表
?? ~PAS
字號:
{ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  :: QuickReport 3.5 for Delphi and C++Builder               ::
  ::                                                         ::
  :: QRDATASU.PAS -  QuickReport data setup dialog           ::
  ::                                                         ::
  :: Copyright (c) 2001 A Lochert                            ::
  :: All Rights Reserved                                     ::
  ::                                                         ::
  ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: }

unit QRDatasu;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Buttons, StdCtrls, ExtCtrls, DB, DBTables, FileCtrl, QuickRpt, QREditor,
  QRMDSU;

type
  TQRDataSetup = class(TForm)
    DataType: TRadioGroup;
    AliasGB: TGroupBox;
    BrowseButton: TButton;
    DataBaseName: TComboBox;
    TableGroup: TGroupBox;
    TableName: TComboBox;
    FilterExpression: TEdit;
    Label1: TLabel;
    FilterLabel: TLabel;
    SQLGroup: TGroupBox;
    SQL: TMemo;
    OpenSQL: TButton;
    OKButton: TBitBtn;
    BitBtn2: TBitBtn;
    Label3: TLabel;
    IndexName: TComboBox;
    GroupBox1: TGroupBox;
    MDEnable: TCheckBox;
    MDSetupButton: TButton;
    procedure DataTypeClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BrowseButtonClick(Sender: TObject);
    procedure DataBaseNameChange(Sender: TObject);
    procedure TableNameChange(Sender: TObject);
    procedure SQLChange(Sender: TObject);
    procedure OKButtonClick(Sender: TObject);
    procedure MDEnableClick(Sender: TObject);
    procedure MDSetupButtonClick(Sender: TObject);
  private
    FReport : TQuickRep;
    TableComp : TTable;
    QueryComp : TQuery;
    MasterDS : TDataSource;
    DetailTable : TTable;
    FReportEditor : TQRCustomEditor;
    FSubDetail : TQRSubDetail;
  protected
    procedure GetEditValues;
    procedure SetReport(Value : TQuickRep);
    procedure SetData;
  public
    property QuickRep : TQuickRep read FReport write SetReport;
    property SubDetail : TQRSubDetail read FSubDetail write FSubDetail;
    property ReportEditor : TQRCustomEditor read FReportEditor write FReportEditor;
  end;

var
  QRDataSetup: TQRDataSetup;

implementation

{$R *.DFM}

procedure Enable(Control : TWinControl; Enabled : boolean);
var
  i : integer;
begin
  Control.Enabled:=Enabled;
  for i:=0 to Control.ControlCount-1 do
    Control.Controls[I].Enabled:=Enabled;
end;

procedure TQRDataSetup.GetEditValues;
begin
  case DataType.ItemIndex of
    0 : begin
          TableName.Items.Clear;
          IndexName.Items.Clear;
          TableName.Text := '';
          IndexName.Text := '';
          FilterExpression.Text := '';
          SQL.Lines.Clear;
        end;
    1 : begin
          if TableComp.DatabaseName <> '' then
          begin
            DatabaseNameChange(Self);
            DatabaseName.Text := TableComp.DatabaseName
          end else
            TableComp.DatabaseName := DatabaseName.Text;
          TableName.Text := TableComp.TableName;
          IndexName.Text := TableComp.IndexName;
          FilterExpression.Text := TableComp.Filter;
          SQL.Lines.Clear;
        end;
    2 : begin
          TableName.Items.Clear;
          IndexName.Items.Clear;
          TableName.Text := '';
          IndexName.Text := '';
          FilterExpression.Text := '';
          SQL.Lines.Assign(QueryComp.SQL);
          if QueryComp.DatabaseName <> '' then
          begin
            DatabaseName.Text := QueryComp.DatabaseName;
            DatabaseNameChange(Self)
          end else
            QueryComp.DatabaseName := DatabaseName.Text;
        end;
  end;
end;

procedure TQRDataSetup.SetData;
begin
  case DataType.ItemIndex of
    1 : begin
          TableComp.Active := false;
          TableComp.DatabaseName := DatabaseName.Text;
          TableComp.TableName := TableName.Text;
          TableComp.IndexName := IndexName.Text;
          TableComp.Filter := FilterExpression.Text;
          if FilterExpression.Text <> '' then
            TableComp.Filtered := true;
          if TableComp.TableName <> '' then
            TableComp.Active := true;
        end;
    2: begin
         QueryComp.Active := false;
         QueryComp.SQL.Assign(SQL.Lines);
         QueryComp.DatabaseName := DatabaseName.Text;
         QueryComp.Active := true;
       end;
  end
end;

procedure TQRDataSetup.DataTypeClick(Sender: TObject);
begin
  Enable(TableGroup,DataType.ItemIndex = 1);
  Enable(SQLGroup, DataType.ItemIndex = 2);
  case DataType.ItemIndex of
    0 : begin
          if TableComp <> nil then
          begin
            TableComp.Free;
            TableComp := nil;
          end;
          if assigned(QueryComp) then
          begin
            QueryComp.Free;
            QueryComp := nil;
          end;
          if Assigned(MasterDS) then
          begin
            MasterDS.Free;
            MasterDS := nil;
          end;
        end;
    1 : begin
          if TableComp = nil then
          begin
            TableComp := TTable.Create(FReport);
            TableComp.Name := UniqueName(FReport.Owner, 'MasterTable'); {<-- do not resource}
            FReport.DataSet := TableComp;
          end;
          if assigned(QueryComp) then
          begin
            QueryComp.Free;
            QueryComp := nil;
          end;
          if MasterDS = nil then
            MasterDS := TDataSource.Create(FReport);
          MasterDS.Dataset := TableComp;
        end;
    2 : begin
          if QueryComp = nil then
          begin
            QueryComp := TQuery.Create(FReport);
            QueryComp.Name := UniqueName(FReport.Owner, 'MasterQuery');  {<-- do not resource}
            FReport.DataSet := QueryComp;
          end;
          if assigned(TableComp) then begin
            TableComp.Free;
            TableComp := nil;
          end;
          if MasterDS = nil then
            MasterDS := TDataSource.Create(FReport);
          MasterDS.Dataset := QueryComp;
        end;
    end;
{    for I := 0 to FReport.ComponentCount - 1 do
      if FReport.Components[I] is TDataSource then
      begin
        FReport.Components[I].Free;
        Break;
      end;}
    GetEditValues;
end;

procedure TQRDataSetup.FormCreate(Sender: TObject);
begin
  Session.GetDatabaseNames(DataBaseName.Items);
  FilterExpression.Visible := false;
  FilterLabel.Visible := false;
  MasterDS := nil;
  GetEditValues;
end;

procedure TQRDataSetup.SetReport(Value : TQuickRep);
var
  I : integer;
begin
  SubDetail := nil;
  FReport := Value;
  if FReport.DataSet <> nil then
  begin
    if FReport.DataSet is TTable then
    begin
      TableComp := TTable(FReport.DataSet);
      DataType.ItemIndex := 1;
    end;
    if FReport.DataSet is TQuery then
    begin
      QueryComp := TQuery(FReport.DataSet);
      DataType.ItemIndex := 2;
    end;
  end;
  for I := 0 to FReport.ControlCount - 1 do
    if FReport.Controls[I] is TQRSubDetail then
    begin
      SubDetail := TQRSubDetail(FReport.Controls[I]);
      mdEnable.Checked := true;
    end;
  for I := 0 to FReport.ComponentCount - 1 do
  if FReport.Components[I] is TDataSource then
  begin
    MasterDS := TDataSource(FReport.Components[I]);
  end;
  MDEnable.Checked := SubDetail <> nil;
  MDSetupButton.Enabled := MDEnable.Checked;

  DataTypeClick(Self);
end;

procedure TQRDataSetup.BrowseButtonClick(Sender: TObject);
var
  ADirectory : String;
begin
  ADirectory := '';
  if SelectDirectory(ADirectory,[],0) then
    DatabaseName.Text:=ADirectory;
  DatabaseNameChange(Self);
end;

procedure TQRDataSetup.DataBaseNameChange(Sender: TObject);
begin
  Session.GetTableNames(DatabaseName.Text, '', true, false, TableName.Items);
  case DataType.ItemIndex of
    1 : if TableName.Items.IndexOf(TableName.Text) = -1 then
           TableName.Text := '';
  end;
end;


procedure TQRDataSetup.TableNameChange(Sender: TObject);
begin
  if TableName.Text <> TableComp.TableName then
  begin
    TableComp.Active := false;
    TableComp.IndexName := '';
    TableComp.DatabaseName := DatabaseName.Text;
    TableComp.TableName := TableName.Text;
    if TableName.Text <> '' then
      TableComp.Active := true;
    IndexName.Items.Clear;
    IndexName.Text := '';
    TableComp.GetIndexNames(IndexName.Items);
  end
end;

procedure TQRDataSetup.SQLChange(Sender: TObject);
begin
  OpenSQL.Enabled := true;
end;

procedure TQRDataSetup.OKButtonClick(Sender: TObject);
begin
  SetData;
end;

procedure TQRDataSetup.MDEnableClick(Sender: TObject);
var
  ASubDetail : TQRSubDetail;
begin
  if MDEnable.Checked and (SubDetail = nil) then
  begin
    ASubDetail := TQRSubDetail.Create(nil);
    ASubDetail.Parent := FReport;
    ReportEditor.Add(ASubDetail, FReport);
    ReportEditor.SetEvents(ReportEditor);
    DetailTable := TTable.Create(FReport);
    DetailTable.Name := UniqueName(FReport, 'DetailTable'); {<-- do not resource}
    DetailTable.MasterSource := MasterDS;
    ASubDetail.Dataset := DetailTable;
    SubDetail := ASubDetail;
  end
  else if not MDEnable.Checked then
    begin
      ReportEditor.Select(SubDetail, false);
      ReportEditor.DeleteSelected;
      SubDetail := nil;
      DetailTable.Free;
    end;
  MDSetupButton.Enabled := MDEnable.Checked;
end;

procedure TQRDataSetup.MDSetupButtonClick(Sender: TObject);
begin
  SetupSubDetail(SubDetail, FReport, MasterDS, ReportEditor);
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美在线一区二区三区| 亚洲在线视频网站| 亚洲一区国产视频| 国产一区二区伦理片| 欧美综合一区二区三区| 久久久久久久久久电影| 偷拍一区二区三区| 成人丝袜高跟foot| 2019国产精品| 日本中文字幕一区二区有限公司| 成人97人人超碰人人99| 精品动漫一区二区三区在线观看| 亚洲人成小说网站色在线 | 懂色av一区二区在线播放| 欧美片网站yy| 亚洲一区日韩精品中文字幕| 丁香天五香天堂综合| 久久久青草青青国产亚洲免观| 奇米影视在线99精品| 欧美日本在线一区| 夜夜精品视频一区二区| 91久久精品一区二区三| 亚洲欧美色综合| 色噜噜狠狠色综合欧洲selulu| 国产欧美一区二区三区鸳鸯浴| 精品一区二区久久久| 日韩精品一区二区三区在线 | 亚洲一区二区三区视频在线播放| 成人免费看的视频| 中文字幕一区二区三区蜜月| 成人高清视频免费观看| 中文字幕一区二区视频| 色哟哟一区二区| 亚洲精品国产高清久久伦理二区| 91丨porny丨国产| 一区二区免费视频| 在线播放欧美女士性生活| 亚洲图片一区二区| 日韩限制级电影在线观看| 美女性感视频久久| 久久你懂得1024| 成人h动漫精品| 亚洲六月丁香色婷婷综合久久| 在线看日本不卡| 日韩影院在线观看| 精品噜噜噜噜久久久久久久久试看| 捆绑变态av一区二区三区| 久久久久久免费| 91麻豆国产香蕉久久精品| 亚洲影院免费观看| 精品久久久久久久久久久久久久久| 国产一区视频网站| 亚洲男女毛片无遮挡| 欧美日韩极品在线观看一区| 久久成人久久鬼色| 国产精品美女一区二区| 欧美吻胸吃奶大尺度电影| 老司机午夜精品99久久| 欧美极品少妇xxxxⅹ高跟鞋| 色狠狠色狠狠综合| 久久国产精品99久久人人澡| 国产精品电影一区二区| 欧美日韩在线三级| 国产精品99久久久久久有的能看| 亚洲欧美一区二区三区极速播放| 欧美高清你懂得| 成人美女在线视频| 日韩精品每日更新| 综合欧美亚洲日本| 欧美一区二区免费视频| www.日韩精品| 蜜桃在线一区二区三区| 亚洲乱码国产乱码精品精可以看| 91精品国产综合久久久久久| 成人av免费观看| 麻豆91在线播放免费| 亚洲精品日日夜夜| 久久久精品综合| 欧美日韩国产一区二区三区地区| 国产99久久久精品| 日韩精品高清不卡| 亚洲综合色婷婷| 国产精品入口麻豆九色| 欧美tickling挠脚心丨vk| 日本韩国精品在线| 成人av午夜影院| 国产一区二区三区四区五区入口 | 亚洲综合自拍偷拍| 国产亲近乱来精品视频| 日韩视频一区在线观看| 欧洲一区在线电影| 99久久99久久综合| 国产成人日日夜夜| 国产一区在线不卡| 韩国v欧美v日本v亚洲v| 日韩国产欧美一区二区三区| 一区二区三区高清在线| 日韩一区在线免费观看| 久久久久久久综合| 精品国产sm最大网站免费看| 欧美美女一区二区三区| 91久久人澡人人添人人爽欧美| 成人av网在线| 99v久久综合狠狠综合久久| 国产二区国产一区在线观看| 激情文学综合网| 久久精品国产精品亚洲精品| 日本vs亚洲vs韩国一区三区二区| 亚洲一区二区三区四区的| 亚洲国产裸拍裸体视频在线观看乱了 | 精品日韩欧美一区二区| 欧美一区二区播放| 欧美一级日韩不卡播放免费| 欧美一区二区免费观在线| 欧美日韩大陆一区二区| 欧美日韩午夜在线| 欧美日韩不卡视频| 日韩欧美亚洲一区二区| 日韩欧美亚洲另类制服综合在线 | 欧美日韩精品福利| 欧美日韩高清一区| 日韩精品一区二区三区四区| 欧美一区二区三区在线视频| 欧美一区二区三区四区五区| 精品少妇一区二区三区在线播放| 精品少妇一区二区三区视频免付费 | 蜜臀a∨国产成人精品| 精品伊人久久久久7777人| 国产一区二区三区四区五区入口| 国产精品亚洲人在线观看| 国产mv日韩mv欧美| 在线精品国精品国产尤物884a| 欧美中文字幕一区二区三区| 555夜色666亚洲国产免| 日韩视频在线永久播放| 国产欧美一二三区| 怡红院av一区二区三区| 午夜精品久久久久久久久久久 | 午夜视黄欧洲亚洲| 久久精品av麻豆的观看方式| 国产成人在线视频网址| 91高清视频在线| 欧美www视频| 亚洲视频一区二区免费在线观看| 天堂成人免费av电影一区| 国产一区二区看久久| 在线亚洲高清视频| 欧美va亚洲va香蕉在线| 亚洲免费电影在线| 精品一区二区免费视频| 97se亚洲国产综合自在线| 欧美一级高清片在线观看| 国产精品久久夜| 日韩电影一区二区三区四区| 丁香六月久久综合狠狠色| 欧美精品一二三区| 成人欧美一区二区三区白人| 五月激情六月综合| 不卡区在线中文字幕| 欧美草草影院在线视频| 亚洲一区影音先锋| av毛片久久久久**hd| 日韩欧美一区二区在线视频| 亚洲欧美在线视频观看| 极品美女销魂一区二区三区免费| 在线观看www91| 国产精品久久久久天堂| 精品一区二区三区视频在线观看| 91捆绑美女网站| 欧美高清在线精品一区| 蜜臀99久久精品久久久久久软件| 日本高清免费不卡视频| 久久精品亚洲精品国产欧美kt∨| 日韩专区一卡二卡| 欧美在线不卡视频| 亚洲三级免费观看| 福利91精品一区二区三区| 精品蜜桃在线看| 麻豆成人久久精品二区三区小说| 精品视频一区二区不卡| 亚洲综合在线观看视频| 91香蕉视频mp4| 国产精品免费视频网站| 国产成人精品三级| 久久久久9999亚洲精品| 久久9热精品视频| 日韩精品一区二区三区在线播放 | 色94色欧美sute亚洲线路一久| 国产精品国产三级国产有无不卡| 国产精品综合二区| 久久久亚洲精品一区二区三区| 麻豆久久久久久久| 欧美一级在线视频| 美国精品在线观看| 日韩女优av电影在线观看| 裸体健美xxxx欧美裸体表演| 欧美一区二区私人影院日本| 日韩国产精品91| 日韩免费电影网站| 国产揄拍国内精品对白|