⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gridmasterdetail.pas

📁 培训管理系统
💻 PAS
字号:
unit gridmasterdetail;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  DB, DBTables, Wwquery, ImgList, Wwdatsrc, StdCtrls, Buttons, Wwkeycb,
  ExtCtrls, wwcheckbox, Wwdbigrd, Grids, Wwdbgrid;

type
  TMasterDetailGrid = class(TForm)
    MasterGrid: TwwDBGrid;
    DetailGrid: TwwDBGrid;
    Dts_Master: TwwDataSource;
    Dts_Detail: TwwDataSource;
    wwExpandButton1: TwwExpandButton;
    SpeedButton1: TSpeedButton;
    ImageList1: TImageList;
    Qu_master: TwwQuery;
    Qu_Detail: TwwQuery;
    pantop: TPanel;
    findkey: TwwIncrementalSearch;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Label2: TLabel;
    MasterGridIButton: TwwIButton;
    procedure DetailGridBeforePaint(Sender: TObject);
    procedure MasterGridCalcTitleImage(Sender: TObject; Field: TField;
      var TitleImageAttributes: TwwTitleImageAttributes);
    procedure FormCreate(Sender: TObject);
    procedure MasterGridDblClick(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure MasterGridKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure findkeyKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
      detail_title:array of string;
      detail_wid : array of integer;
  end;

var
  MasterDetailGrid: TMasterDetailGrid;
  flength,maxtaborder :integer;

implementation
  uses pdatabse;
{$R *.DFM}

procedure TMasterDetailGrid.DetailGridBeforePaint(Sender: TObject);
begin
  // Paint to my grid the
   if MasterGrid.IsActiveRowAlternatingColor then
   begin
      with TwwDBGrid(Sender) do
        Canvas.CopyRect(ClientRect,
           MasterGrid.PaintOptions.AlternatingColorBitmap.Canvas, ClientRect);
   end
   else
      with TwwDBGrid(Sender) do
        Canvas.CopyRect(ClientRect,
           MasterGrid.PaintOptions.OrigBitmap.Canvas, ClientRect);
   Detailgrid.LoadFromIniFile;
   Screen.Cursor:=crDefault;
end;

procedure TMasterDetailGrid.MasterGridCalcTitleImage(Sender: TObject; Field: TField;
  var TitleImageAttributes: TwwTitleImageAttributes);
begin
   //qu_detail.sql.text<>'' 表示只有主表;
   if (Field.FieldName='xh') and (qu_detail.SQL.text<>'') then
   begin
      TitleImageAttributes.ImageIndex:=2;
   end;
end;

procedure TMasterDetailGrid.FormCreate(Sender: TObject);
begin
  maxtaborder:=10;
end;

procedure TMasterDetailGrid.MasterGridDblClick(Sender: TObject);
begin
 if wwexpandbutton1.Enabled then wwExpandButton1.Expanded:=false;
   with MasterGrid do
   SelectRecord;
   modalresult:=mrok;
end;

procedure TMasterDetailGrid.BitBtn1Click(Sender: TObject);
begin
 if wwexpandbutton1.Enabled then wwExpandButton1.Expanded:=false;
 if not mastergrid.IsSelected then
   mastergrid.SelectRecord;
  modalresult:=mrok;
end;

procedure TMasterDetailGrid.BitBtn2Click(Sender: TObject);
begin
  ModalResult := mrCANCEL;
end;

procedure TMasterDetailGrid.MasterGridKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if key=13 then   modalresult:=mrok;
end;

procedure TMasterDetailGrid.findkeyKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=13 then
   begin
   mastergrid.SelectRecord;
   modalresult:=mrok;
   end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -