RTFormwork/项目代码/RTBasicsV1/T04贸易明细仓库/U_PositionSel.pas
2024-08-02 12:25:53 +08:00

238 lines
5.3 KiB
ObjectPascal
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

unit U_PositionSel;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, DB, ADODB, U_BaseHelp, System.ImageList, Vcl.ImgList,
Datasnap.DBClient, Vcl.StdCtrls, math;
type
TfrmPositionSel = class(TfrmBaseHelp)
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;
btn19: TSpeedButton;
btn20: TSpeedButton;
btn21: TSpeedButton;
btn22: TSpeedButton;
btn60: TSpeedButton;
btn23: TSpeedButton;
btn24: TSpeedButton;
btn25: TSpeedButton;
btn26: TSpeedButton;
btn27: TSpeedButton;
btn28: TSpeedButton;
btn29: TSpeedButton;
btn61: TSpeedButton;
btn30: TSpeedButton;
btn31: TSpeedButton;
btn32: TSpeedButton;
btn33: TSpeedButton;
btn34: TSpeedButton;
btn35: TSpeedButton;
btn36: TSpeedButton;
btn62: TSpeedButton;
btn37: TSpeedButton;
btn38: TSpeedButton;
btn39: TSpeedButton;
btn40: TSpeedButton;
btn41: TSpeedButton;
btn42: TSpeedButton;
btn43: TSpeedButton;
btn63: TSpeedButton;
btn44: TSpeedButton;
btn45: TSpeedButton;
btn46: TSpeedButton;
btn47: TSpeedButton;
btn48: TSpeedButton;
btn49: TSpeedButton;
btn50: TSpeedButton;
btn64: TSpeedButton;
btn51: TSpeedButton;
btn52: TSpeedButton;
btn53: TSpeedButton;
btn54: TSpeedButton;
btn55: TSpeedButton;
btn56: TSpeedButton;
btn57: TSpeedButton;
ADOTmp: TADOQuery;
ADOConnection1: TADOConnection;
CDS_All: TClientDataSet;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure btn1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
procedure InitGrid();
{ Private declarations }
public
FPOSNO: string;
FPage: Integer;
{ Public declarations }
end;
var
frmPositionSel: TfrmPositionSel;
implementation
uses
U_DataLink, U_RTFun;
{$R *.dfm}
procedure TfrmPositionSel.FormDestroy(Sender: TObject);
begin
inherited;
frmPositionSel := nil;
end;
procedure TfrmPositionSel.InitGrid();
var
i: Integer;
str: string;
begin
with ADOTmp do
begin
Close;
sql.Clear;
sql.Add('select POSNO,POSName ');
sql.Add(',ROW_NUMBER() over(order by A.POSNO) as keyNo ');
sql.Add('from Bs_Position A ');
SQL.Add('order by POSNO,POSName ');
Open;
end;
if ADOTmp.IsEmpty then
begin
Application.MessageBox(<>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
SCreateCDS(ADOTmp, CDS_All);
SInitCDSData(ADOTmp, CDS_All);
if CDS_All.RecordCount < FPage * 64 then
begin
FPage := FPage - 1;
end;
if FPage <= 0 then
begin
FPage := 1;
end;
if CDS_All.RecordCount mod 64 > 0 then
Label1.Caption := IntToStr(FPage) + '/' + IntToStr(Floor(CDS_All.RecordCount / 64 + 1))
else
Label1.Caption := IntToStr(FPage) + '/' + IntToStr(Floor(CDS_All.RecordCount / 64));
for i := 0 to 63 do
begin
if CDS_All.Locate('keyNo', (FPage - 1) * 64 + i + 1, []) then
begin
with ScrollBox1 do
begin
TSpeedButton(Controls[i]).Visible := True;
TSpeedButton(Controls[i]).Hint := CDS_All.fieldbyname('POSNO').AsString;
TSpeedButton(Controls[i]).Caption := CDS_All.fieldbyname('POSNO').AsString;
end;
end
else
begin
with ScrollBox1 do
begin
TSpeedButton(Controls[i]).Visible := False;
TSpeedButton(Controls[i]).Hint := '';
TSpeedButton(Controls[i]).Caption := '';
end;
end;
end;
end;
procedure TfrmPositionSel.FormShow(Sender: TObject);
begin
inherited;
FPage := 1;
InitGrid();
end;
procedure TfrmPositionSel.btn1Click(Sender: TObject);
begin
FPOSNO := Trim(TSpeedButton(Sender).Hint);
ModalResult := 1;
end;
procedure TfrmPositionSel.Button1Click(Sender: TObject);
begin
FPage := FPage - 1;
InitGrid();
end;
procedure TfrmPositionSel.Button2Click(Sender: TObject);
begin
FPage := FPage + 1;
InitGrid();
end;
procedure TfrmPositionSel.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
// Action:=caHide;
end;
procedure TfrmPositionSel.FormCreate(Sender: TObject);
begin
inherited;
try
with ADOConnection1 do
begin
Connected := false;
ConnectionString := DConString;
Connected := true;
end;
ADOQueryBaseCmd.Connection := ADOConnection1;
ADOQueryBaseTemp.Connection := ADOConnection1;
except
{if Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>,<2C>Ƿ<EFBFBD>Ҫ<EFBFBD>ٴ<EFBFBD><D9B4><EFBFBD><EFBFBD><EFBFBD>?','<27><>ʾ',32+4)=IDYES then
begin
try
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=DConString;
//ConnectionString:='23242';
Connected:=true;
end;
except
end;
end; }
end;
end;
end.