• EhLib 的 DbgridEh 影响 其他数据集的Open方法


    DbgridEh 对应数据集ADOTable1,其中有个字段 部门编码,另外增加查找字段比如 部门名称

    ADOTable2对应查找数据集,包含 部门编码和 部门名称字段。

    ADOTable1 打开后,再运行

    ADOTable2.Close;

    ADOTable2.Open;

    后记录不是在第一个,需要再

    ADOTable2.First;

    否则 ADOTable2.Eof 为 true

    如果ADOTable1对应的是普通的DBGRID,则不需要 ADOTable2.First;

    奇怪了。

    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DBGridEhGrouping, ToolCtrlsEh, DBGridEhToolCtrls, DynVarsEh, DB,
      ADODB, EhLibVCL, GridsEh, DBAxisGridsEh, DBGridEh, StdCtrls, Grids, DBGrids;
    
    type
      TForm1 = class(TForm)
        DBGridEh1: TDBGridEh;
        ADOConnection1: TADOConnection;
        ADOTable1: TADOTable;
        ADOTable2: TADOTable;
        DataSource1: TDataSource;
        DataSource2: TDataSource;
        ADOTable1name: TWideStringField;
        ADOTable1bmid: TIntegerField;
        ADOTable1bmname: TStringField;
        Button1: TButton;
        DBGrid1: TDBGrid;
        DBGrid2: TDBGrid;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ADOTable2.Close;
      ADOTable2.Open;
      if ADOTable2.Eof then
        ShowMessage('Eof')
      else
        ShowMessage('Not Eof')
    end;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      ADOTable1.Open;
    end;
    
    end.
    object Form1: TForm1
      Left = 0
      Top = 0
      Caption = 'Form1'
      ClientHeight = 281
      ClientWidth = 713
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'Tahoma'
      Font.Style = []
      OldCreateOrder = False
      OnCreate = FormCreate
      PixelsPerInch = 96
      TextHeight = 13
      object DBGridEh1: TDBGridEh
        Left = 8
        Top = 8
        Width = 297
        Height = 105
        DataSource = DataSource1
        DynProps = <>
        IndicatorOptions = [gioShowRowIndicatorEh]
        TabOrder = 0
        object RowDetailData: TRowDetailPanelControlEh
        end
      end
      object Button1: TButton
        Left = 432
        Top = 248
        Width = 75
        Height = 25
        Caption = 'Button1'
        TabOrder = 1
        OnClick = Button1Click
      end
      object DBGrid1: TDBGrid
        Left = 8
        Top = 152
        Width = 320
        Height = 120
        DataSource = DataSource2
        TabOrder = 2
        TitleFont.Charset = DEFAULT_CHARSET
        TitleFont.Color = clWindowText
        TitleFont.Height = -11
        TitleFont.Name = 'Tahoma'
        TitleFont.Style = []
      end
      object DBGrid2: TDBGrid
        Left = 344
        Top = 8
        Width = 361
        Height = 105
        DataSource = DataSource1
        TabOrder = 3
        TitleFont.Charset = DEFAULT_CHARSET
        TitleFont.Color = clWindowText
        TitleFont.Height = -11
        TitleFont.Name = 'Tahoma'
        TitleFont.Style = []
      end
      object ADOConnection1: TADOConnection
        Connected = True
        ConnectionString = 
          'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:XE ProjectsEhli' +
          'bDebugWin32db1.mdb;Persist Security Info=False'
        LoginPrompt = False
        Mode = cmShareDenyNone
        Provider = 'Microsoft.Jet.OLEDB.4.0'
        Left = 456
        Top = 24
      end
      object ADOTable1: TADOTable
        Connection = ADOConnection1
        CursorType = ctStatic
        TableName = 'person'
        Left = 432
        Top = 80
        object ADOTable1name: TWideStringField
          FieldName = 'name'
          Size = 50
        end
        object ADOTable1bmid: TIntegerField
          FieldName = 'bmid'
        end
        object ADOTable1bmname: TStringField
          FieldKind = fkLookup
          FieldName = 'bmname'
          LookupDataSet = ADOTable2
          LookupKeyFields = 'bmid'
          LookupResultField = 'bmname'
          KeyFields = 'bmid'
          Lookup = True
        end
      end
      object ADOTable2: TADOTable
        Connection = ADOConnection1
        CursorType = ctStatic
        TableName = 'bm'
        Left = 424
        Top = 176
      end
      object DataSource1: TDataSource
        DataSet = ADOTable1
        Left = 496
        Top = 80
      end
      object DataSource2: TDataSource
        DataSet = ADOTable2
        Left = 496
        Top = 176
      end
    end
  • 相关阅读:
    delphi算法
    delphi 弹出选择目录窗口
    delphi 导出xml文件
    play 源码分析
    oracle指令
    delphi 环境问题
    如何启动redis
    关于整理和工作小结
    如何强制关闭服务
    delphi之事件
  • 原文地址:https://www.cnblogs.com/CodeGear/p/4308192.html
Copyright © 2020-2023  润新知