169 lines
3.9 KiB
ObjectPascal
169 lines
3.9 KiB
ObjectPascal
unit U_ZdyBtnHelp;
|
||
|
||
interface
|
||
|
||
uses
|
||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Data.Win.ADODB, cxGraphics,
|
||
cxControls, cxLookAndFeels, cxLookAndFeelPainters, cxScrollBox, Vcl.ExtCtrls,
|
||
Vcl.Buttons, Vcl.StdCtrls;
|
||
|
||
type
|
||
TfrmZdyBtnHelp = class(TForm)
|
||
ADOConnection1: TADOConnection;
|
||
cxScrollBox1: TcxScrollBox;
|
||
Panel1: TPanel;
|
||
ADOTmp: TADOQuery;
|
||
SpeedButton1: TSpeedButton;
|
||
Button3: TButton;
|
||
Label1: TLabel;
|
||
Label27: TLabel;
|
||
Button1: TButton;
|
||
procedure FormCreate(Sender: TObject);
|
||
procedure FormShow(Sender: TObject);
|
||
procedure Button1Click(Sender: TObject);
|
||
procedure Button3Click(Sender: TObject);
|
||
private
|
||
fPageSize:integer;
|
||
fCurPageIndex:integer;
|
||
procedure InitItemPanel(mPageIndex:integer);
|
||
procedure SpeedButtonClick(Sender: TObject);
|
||
public
|
||
fRowNumber:integer;
|
||
fBadBtnSize:integer;
|
||
fSelName:string;
|
||
fFlag, fFlagName, fMainType: string;
|
||
end;
|
||
|
||
var
|
||
frmZdyBtnHelp: TfrmZdyBtnHelp;
|
||
|
||
implementation
|
||
uses
|
||
U_globalVar,U_DataLink;
|
||
{$R *.dfm}
|
||
|
||
procedure TfrmZdyBtnHelp.Button1Click(Sender: TObject);
|
||
begin
|
||
if fCurPageIndex <= 1 then
|
||
begin
|
||
Label1.Caption := '1';
|
||
InitItemPanel(1);
|
||
end
|
||
else
|
||
begin
|
||
fCurPageIndex := fCurPageIndex - 1;
|
||
|
||
Label1.Caption := IntToStr(fCurPageIndex);
|
||
InitItemPanel(fCurPageIndex);
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmZdyBtnHelp.Button3Click(Sender: TObject);
|
||
begin
|
||
fCurPageIndex := fCurPageIndex + 1;
|
||
Label1.Caption := IntToStr(fCurPageIndex);
|
||
InitItemPanel(fCurPageIndex);
|
||
end;
|
||
|
||
procedure TfrmZdyBtnHelp.FormCreate(Sender: TObject);
|
||
begin
|
||
cxScrollBox1.Align:=alClient;
|
||
with ADOConnection1 do
|
||
begin
|
||
Connected := false;
|
||
ConnectionString := DConString;
|
||
Connected := true;
|
||
end;
|
||
fPageSize:=30;
|
||
fCurPageIndex:=1;
|
||
end;
|
||
//////////////////////////////
|
||
procedure TfrmZdyBtnHelp.FormShow(Sender: TObject);
|
||
begin
|
||
self.Caption:=fflagName;
|
||
InitItemPanel(1);
|
||
end;
|
||
|
||
procedure TfrmZdyBtnHelp.InitItemPanel(mPageIndex:integer);
|
||
var
|
||
speedBtn: TSpeedButton;
|
||
zdyName: string;
|
||
i, k, j: Integer;
|
||
pageStartIndex:integer;
|
||
begin
|
||
with ADOTmp do
|
||
begin
|
||
Close;
|
||
sql.Clear;
|
||
// sql.Add('select AA.*,row_number () over (order by ZdyName) as keyNo from(');
|
||
sql.Add('select A.*,ZJM=dbo.getPinYin(A.ZdyName) from KH_ZDY A where A.Type=''' + fFlag + '''');
|
||
if Trim(fMainType) <> '' then
|
||
begin
|
||
sql.Add(' and A.MainType=''' + Trim(fMainType) + '''');
|
||
end;
|
||
// sql.Add(')AA');
|
||
sql.Add('and valid=''Y''');
|
||
sql.Add('order by ZdyNo offset '+intTostr((mPageIndex-1)*fpageSize) +' rows fetch next '+intTostr(fpageSize)+' rows only' );
|
||
Open;
|
||
end;
|
||
if ADOTmp.IsEmpty then
|
||
begin
|
||
// Application.MessageBox('û<>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>õ㣡', '<27><>ʾ', 0);
|
||
Exit;
|
||
end;
|
||
//if fRowNumber = 0 then
|
||
fRowNumber := 6;
|
||
pageStartIndex:= (StrToInt(Label1.Caption) - 1) * fPageSize + 1;
|
||
j := fRowNumber;
|
||
|
||
fBadBtnSize := 180;
|
||
with ADOTmp do
|
||
begin
|
||
First;
|
||
i := 0;
|
||
while not Eof do
|
||
begin
|
||
k := i div j;
|
||
zdyName := Trim(fieldbyname('ZDYName').AsString);
|
||
speedBtn := TSpeedButton.Create(self);
|
||
speedBtn.OnClick := SpeedButtonClick;
|
||
|
||
speedBtn.Width := fBadBtnSize;
|
||
speedBtn.Height := 100;
|
||
|
||
|
||
speedBtn.Left := 5 + (i mod j) * speedBtn.Width;
|
||
speedBtn.Top := 3 + k * speedBtn.Height;
|
||
|
||
speedBtn.Parent := cxScrollBox1;
|
||
speedBtn.Hint := zdyName;
|
||
if Length(zdyName) > 4 then
|
||
begin
|
||
speedBtn.Caption := Copy(zdyName, 1, 4) + #13 +
|
||
Copy(zdyName, 5, Length(zdyName) - 4);
|
||
end
|
||
else
|
||
speedBtn.Caption := zdyName;
|
||
|
||
i := i + 1;
|
||
//
|
||
if i=20 then break;
|
||
|
||
Next;
|
||
end;
|
||
end;
|
||
|
||
end;
|
||
|
||
|
||
procedure TfrmZdyBtnHelp.SpeedButtonClick(Sender: TObject);
|
||
begin
|
||
fSelName := Trim(TSpeedButton(Sender).Caption);
|
||
ModalResult := 1;
|
||
|
||
// CIFNumber.SetFocus;
|
||
|
||
end;
|
||
end.
|