unit U_SCPersonColor;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, DB, ADODB, StdCtrls;

type
  TfrmSCPersonColor = class(TForm)
    ScrollBox1: TScrollBox;
    btn58: TSpeedButton;
    btn9: TSpeedButton;
    btn10: TSpeedButton;
    btn11: TSpeedButton;
    btn12: TSpeedButton;
    btn59: TSpeedButton;
    btn16: TSpeedButton;
    btn17: TSpeedButton;
    btn18: TSpeedButton;
    btn19: TSpeedButton;
    btn60: TSpeedButton;
    btn23: TSpeedButton;
    btn24: TSpeedButton;
    btn25: TSpeedButton;
    btn26: TSpeedButton;
    btn61: TSpeedButton;
    btn31: TSpeedButton;
    btn32: TSpeedButton;
    btn33: TSpeedButton;
    ADOTmp: TADOQuery;
    Label27: TLabel;
    Label1: TLabel;
    Button3: TButton;
    Button1: TButton;
    procedure FormDestroy(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure btn1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    CPage: Integer;
    procedure InitPerson(page1: Integer);
    { Private declarations }
  public
    FlagStr: string;
    FName, FSJZL, FType: string;
    { Public declarations }
  end;

var
  frmSCPersonColor: TfrmSCPersonColor;

implementation

uses
  U_DataLink;

{$R *.dfm}

procedure TfrmSCPersonColor.FormDestroy(Sender: TObject);
begin
  frmSCPersonColor := nil;
end;

procedure TfrmSCPersonColor.InitPerson(page1: Integer);
type
  FdDy = record
    inc: integer;
    FDdys: string[32];
    FdDysName: string[32];
  end;
var
  BB: array[0..500] of FdDy;
  i, j: Integer;
begin
  with ADOTmp do
  begin
    Close;
    sql.Clear;
    if FTYPE = 'KH' then
    begin
      sql.Add('select AA.*,row_number () over (order by name) as keyNo from(select DISTINCT zdyname as name,note from kh_zdy where type=''CustomerNoName'')AA');
//       sql.Add('select ZDYName from KH_Zdy where Type=''' + flag + ''' order by ZDYNO ');
    end
    else if FTYPE = 'PM' then
    begin
      sql.Add('select AA.*,row_number () over (order by name) as keyNo from(select DISTINCT zdyname as name,note from kh_zdy where type=''PRTCodeName'')AA');
    end
    else if FTYPE = 'YS' then
    begin
      sql.Add('select AA.*,row_number () over (order by name) as keyNo from(select DISTINCT zdyname as name,note from kh_zdy where type=''PRTColor'')AA');
    end
     else if FTYPE = 'HX' then
    begin
      sql.Add('select AA.*,row_number () over (order by name) as keyNo from(select DISTINCT zdyname as name,note from kh_zdy where type=''PRTHX'')AA');
    end
     else if FTYPE = 'SH' then
    begin
      sql.Add('select AA.*,row_number () over (order by name) as keyNo from(select DISTINCT zdyname as name,note from kh_zdy where type=''SOrddefstr1'')AA');
    end;



//    showmessage(sql.text);
    Open;
  end;

  if ADOTmp.IsEmpty then
  begin
    Application.MessageBox('没有定义数据！', '提示', 0);
    Exit;
  end;

  j := (StrToInt(Label1.Caption) - 1) * 20 + 1;
  for i := 0 to 19 do
  begin

    with ScrollBox1 do
    begin
      if ADOTmp.locate('keyNo', j + i, []) then
      begin
//        application.MessageBox(pchar(CDS_Kuang.FieldByName('ZDYName').AsString), '提示信息', 0);
        TSpeedButton(Controls[i]).Visible := True;
        TSpeedButton(Controls[i]).Caption := Trim(ADOTmp.FieldByName('name').AsString);
        if FTYPE = '挡车工' then
        begin
          TSpeedButton(Controls[i]).hint := Trim(ADOTmp.FieldByName('note').AsString);
        end;

      end
      else
      begin
        TSpeedButton(Controls[i]).Visible := False;

//        application.MessageBox(pchar('没找到' + inttostr(i)), '提示信息', 0);

      end;

    end;
  end;


//  with ADOTmp do
//  begin
//    First;
//    i := 0;
//    while not Eof do
//    begin
//      BB[i].inc := i;
//      BB[i].FdDysName := Trim(fieldbyname('name').AsString);
//      i := i + 1;
//      Next;
//    end;
//  end;
//  i := i - 1;
//  if i > 19 then
//  begin
//    i := 19;
//  end;
//  for j := 0 to 19 do
//  begin
//    with ScrollBox1 do
//    begin
//      TSpeedButton(Controls[j]).Visible := false;
//      TSpeedButton(Controls[j]).Caption := '';
//      TSpeedButton(Controls[j]).Hint := '';
//    end;
//  end;
//  for j := 0 to i do
//  begin
//    with ScrollBox1 do
//    begin
//      TSpeedButton(Controls[j]).Visible := True;
//      TSpeedButton(Controls[j]).Caption := BB[j].FdDysName;
//    end;
//  end;
end;

procedure TfrmSCPersonColor.FormShow(Sender: TObject);
begin
  InitPerson(1);
  CPage := 1;
end;

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

procedure TfrmSCPersonColor.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caHide;
end;

procedure TfrmSCPersonColor.Button1Click(Sender: TObject);
begin
  if CPage <= 1 then
  begin
    Label1.Caption := '1';
    InitPerson(1);
  end
  else
  begin
    CPage := CPage - 1;

    Label1.Caption := IntToStr(CPage);
    InitPerson(CPage);
  end;
end;

procedure TfrmSCPersonColor.Button3Click(Sender: TObject);
begin
  CPage := CPage + 1;
  Label1.Caption := IntToStr(CPage);
  InitPerson(CPage);
end;

end.

