unit U_SCPerson1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, DB, ADODB, cxGraphics, cxControls, cxLookAndFeels,
  cxLookAndFeelPainters, cxStyles, cxCustomData, cxFilter, cxData, cxDataStorage,
  cxEdit, cxNavigator, cxDBData, cxClasses, cxGridCustomTableView,
  cxGridTableView, cxGridDBTableView, cxGridLevel, cxGridCustomView, cxGrid,
  DBClient;

type
  TfrmSCPerson1 = class(TForm)
    ScrollBox1: TScrollBox;
    btn1: TSpeedButton;
    btn2: TSpeedButton;
    btn3: TSpeedButton;
    btn4: TSpeedButton;
    btn5: TSpeedButton;
    btn6: TSpeedButton;
    btn7: TSpeedButton;
    btn8: TSpeedButton;
    btn58: TSpeedButton;
    btn9: TSpeedButton;
    btn10: TSpeedButton;
    btn11: TSpeedButton;
    btn12: TSpeedButton;
    btn13: TSpeedButton;
    btn14: TSpeedButton;
    btn15: TSpeedButton;
    btn59: TSpeedButton;
    btn16: TSpeedButton;
    btn17: TSpeedButton;
    btn18: TSpeedButton;
    ADOTmp: TADOQuery;
    cxGrid2: TcxGrid;
    Tv2: TcxGridDBTableView;
    cxGridLevel1: TcxGridLevel;
    Tv2Column1: TcxGridDBColumn;
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    cxStyleRepository2: TcxStyleRepository;
    cxStyle2: TcxStyle;
    DS_ZB: TDataSource;
    CDS_ZB: TClientDataSet;
    CDS_YG: TClientDataSet;
    procedure FormDestroy(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure btn1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Tv2CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
  private
    procedure InitPerson(MZB: string);
    { Private declarations }
  public
    FlagStr: string;
    FSDPerson: string;
    { Public declarations }
  end;

var
  frmSCPerson1: TfrmSCPerson1;

implementation

uses
  U_DataLink, U_Fun;

{$R *.dfm}

procedure TfrmSCPerson1.FormDestroy(Sender: TObject);
begin
  frmSCPerson1 := nil;
end;

procedure TfrmSCPerson1.InitPerson(MZB: string);
type
  FdDy = record
    inc: integer;
    FDdys: string[32];
    FdDysName: string[32];
  end;
var
  BB: array[0..100] of FdDy;
  i, j: Integer;
begin

  with ADOTmp do
  begin
    Close;
    sql.Clear;
    sql.Add('select cast((ROW_NUMBER() over(order by Note,ZDYName)) as int)  as keyNo,');
    sql.Add('  Note,ZDYName from KH_Zdy where Type=''' + Trim(FlagStr) + ''' and note=' + quotedstr(Trim(MZB)) + ' order by Note,ZDYName ');
    Open;
  end;
  if ADOTmp.IsEmpty then
  begin
    Application.MessageBox('没有定义数据！', '提示', 0);
    Exit;
  end;
  SCreateCDS20(ADOTmp, CDS_YG);
  SInitCDSData20(ADOTmp, CDS_YG);

  for j := 0 to 19 do
  begin
    with ScrollBox1 do
    begin
      if CDS_YG.Locate('keyno', j + 1, []) then
      begin
        TSpeedButton(Controls[j]).Visible := True;
        TSpeedButton(Controls[j]).Caption := Trim(CDS_YG.fieldbyname('ZDYName').AsString);
      end
      else
      begin
        TSpeedButton(Controls[j]).Visible := False;
        TSpeedButton(Controls[j]).Caption := '';
      end;
    end;
  end;

end;

procedure TfrmSCPerson1.FormShow(Sender: TObject);
begin

  with ADOTmp do
  begin
    Close;
    sql.Clear;
    sql.Add('select distinct A.note from KH_ZDY A where A.Type=''SCPerson'' and isnull(A.note,'''')<>'''' order by note ');
    Open;
  end;
  SCreateCDS20(ADOTmp, CDS_ZB);
  SInitCDSData20(ADOTmp, CDS_ZB);

  InitPerson(Trim(CDS_ZB.FieldByName('note').AsString));
end;

procedure TfrmSCPerson1.btn1Click(Sender: TObject);
begin
  FSDPerson := Trim(TSpeedButton(Sender).Caption);
  ModalResult := 1;
end;

procedure TfrmSCPerson1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 // Action:=caHide;

end;

procedure TfrmSCPerson1.Tv2CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
  InitPerson(Trim(CDS_ZB.FieldByName('note').AsString));
end;

end.

