D10DJkaimengwenshang/项目代码/wenshangkm/G04复核布匹检验/U_ZdyBtnHelp.pas

169 lines
3.9 KiB
ObjectPascal
Raw Normal View History

2025-09-27 14:24:10 +08:00
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.