📄 frmtable.~pas
字号:
unit frmTable;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, cxControls, cxContainer, cxListBox, Buttons;
type
TTableForm = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
ListBox_Table: TcxListBox;
GroupBox1: TGroupBox;
Edt_NumStart: TLabeledEdit;
Edt_NumEnd: TLabeledEdit;
Edt_SeatNum: TLabeledEdit;
Btn_Delete: TSpeedButton;
Btn_Generate: TSpeedButton;
procedure FormCreate(Sender: TObject);
procedure Edt_NumStartKeyPress(Sender: TObject; var Key: Char);
procedure Edt_NumEndKeyPress(Sender: TObject; var Key: Char);
procedure Edt_SeatNumKeyPress(Sender: TObject; var Key: Char);
procedure Btn_GenerateClick(Sender: TObject);
procedure Btn_DeleteClick(Sender: TObject);
private
function IntToFormatStr(num:integer;len:integer):string;
procedure ShowTable;
public
end;
var
TableForm: TTableForm;
implementation
uses dataModule;
{$R *.dfm}
function TTableForm.IntToFormatStr(num:integer;len:integer):string;
var
i:integer;
oldLen:integer;
str:string;
begin
str:=inttostr(num);
oldLen:=length(str);
for i:=0 to len-oldLen-1 do str:='0'+str;
result:=str;
end;
procedure TTableForm.ShowTable;
var
i:integer;
strItem:string;
begin
ListBox_Table.Clear;
with DM.queTable do
begin
Open;
First;
while not Eof do
begin
strItem:=FieldByName('ID').AsString+'号台 座位数'+FieldByName('SeatNum').AsString;
ListBox_Table.Items.Add(strItem);
Next;
end;
Close;
end;
end;
procedure TTableForm.FormCreate(Sender: TObject);
begin
ShowTable;
end;
procedure TTableForm.Edt_NumStartKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',#8,#13]) then
Key:=#0
else if key = #13 then
begin
key:=#0;
Edt_NumEnd.SetFocus;
end;
end;
procedure TTableForm.Edt_NumEndKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',#8,#13]) then
Key:=#0
else if key = #13 then
begin
key:=#0;
Edt_SeatNum.SetFocus;
end;
end;
procedure TTableForm.Edt_SeatNumKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',#8,#13]) then
Key:=#0
else if key = #13 then
begin
key:=#0;
Btn_Generate.OnClick(nil);
end;
end;
procedure TTableForm.Btn_GenerateClick(Sender: TObject);
var
i:integer;
NumStart,NumEnd:integer;
str:string;
msg:string;
begin
NumStart:=strtoint(trim(Edt_NumStart.Text));
NumEnd:=strtoint(trim(Edt_NumEnd.Text));
if NumStart > NumEnd then
begin
msg:='起始号码不能大于结束号码!';
MessageBox(Application.Handle,PChar(msg),'系统提示',MB_ICONINFORMATION);
exit;
end;
if trim(Edt_SeatNum.Text)='' then
begin
msg:='必须输入座位数!';
MessageBox(Application.Handle,PChar(msg),'系统提示',MB_ICONINFORMATION);
exit;
end;
for i:=NumStart to NumEnd do str:=str+','''+IntToFormatStr(i,3)+'''';
str:=copy(str,2,length(str)-1);
with DM.Que do
begin
Close;
SQL.Text:='select * from cTable where ID in ('+str+')';
Open;
if RecordCount>0 then
begin
msg:='相同的台号已经存在!';
MessageBox(Application.Handle,PChar(msg),'系统提示',MB_ICONINFORMATION);
exit;
end;
end;
try
for i:= NumStart to NumEnd do
begin
with DM.Que do
begin
Close;
SQL.Text:='insert into cTable(ID,SeatNum) values('''+IntToFormatStr(i,3)+''','+Edt_SeatNum.Text+')';
ExecSQL;
end;
end;
except
msg:='操作失败!';
MessageBox(Application.Handle,PChar(msg),'系统提示',MB_ICONINFORMATION);
end;
ShowTable;
Edt_NumStart.SetFocus;
end;
procedure TTableForm.Btn_DeleteClick(Sender: TObject);
var
i:integer;
strID:string;
msg:string;
begin
for i:=0 to ListBox_Table.Items.Count-1 do
begin
if ListBox_Table.Selected[i] then
begin
strID:=copy(ListBox_Table.Items[i],1,3);
DM.Que.Close;
DM.Que.SQL.Text :='select cTableID from tOrder where cTableID='''+strID+'''';
DM.Que.Open;
if DM.Que.RecordCount>0 then
begin
msg:='该台正在使用,不能删除!';
MessageBox(Application.Handle,PChar(msg),'系统提示',MB_ICONINFORMATION);
exit;
end
else begin
msg:='确定删除吗?';
if MessageBox(Application.Handle,Pchar(msg),Pchar('系统提示'),mb_OKCancel) = ID_OK then
begin
DM.Que.Close;
DM.Que.SQL.Text :='delete from cTable where ID='''+strID+'''';
DM.Que.ExecSQL;
ShowTable;
exit;
end;
end;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -