📄 ctqt.pas
字号:
unit ctqt;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Grids, Mask, Spin, Menus, DBTables, Db, ExtCtrls,
ComCtrls;
type
Tctqtform = class(TForm)
grid1: TStringGrid;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
Panel6: TPanel;
Query1: TQuery;
Bevel9: TBevel;
Bevel10: TBevel;
Bevel11: TBevel;
Bevel12: TBevel;
Bevel13: TBevel;
Bevel14: TBevel;
Bevel15: TBevel;
Panel19: TPanel;
ydj: TEdit;
Timer1: TTimer;
StoredProc1: TStoredProc;
BitBtn3: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure grid1DrawCell(Sender: TObject; Col, Row: Integer;
Rect: TRect; State: TGridDrawState);
procedure grid1Click(Sender: TObject);
procedure grid1DblClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
ctqtform: Tctqtform;
implementation
uses dataproc, newdj;
var rmtypearr:array[0..5] of string;
num:array[0..5,0..4] of integer;
tabno,status,place,remark:array[0..5,0..4] of string;
welid,zhacc,lc:string;
i,j,k:integer;
{$R *.DFM}
procedure init;
begin
with ctqtform do
begin
for j:=0 to 5 do
for k:=0 to 4 do
begin
grid1.Cells[j,k]:='';
num[j,k]:=0;
place[j,k]:='';
remark[j,k]:='';
tabno[j,k]:='';
status[j,k]:='';
end;
Query1.sql.Clear;
Query1.Active:=false;
Query1.sql.text:='select tabno,num,place,remark,row,col,state from tabledb where lc='+lc;
Query1.open;
while not Query1.Eof do
begin
num[Query1.FieldByName('col').asinteger,Query1.FieldByName('row').asinteger]:=Query1.FieldByName('num').asinteger;
place[Query1.FieldByName('col').asinteger,Query1.FieldByName('row').asinteger]:=Query1.FieldByName('place').asstring;
remark[Query1.FieldByName('col').asinteger,Query1.FieldByName('row').asinteger]:=Query1.FieldByName('remark').asstring;
status[Query1.FieldByName('col').asinteger,Query1.FieldByName('row').asinteger]:=Query1.FieldByName('state').asstring;
tabno[Query1.FieldByName('col').asinteger,Query1.FieldByName('row').asinteger]:=Query1.FieldByName('tabno').asstring;
Query1.Next;
end;
Query1.Close;
Query1.sql.Clear;
Query1.Active:=false;
end;
end;
procedure Tctqtform.FormCreate(Sender: TObject);
var
arr:array[1..50] of integer;
ls:string;
begin
shortdateformat:='yyyy-mm-dd';
lc:=copy(curper.Headship,1,1);
lc:='1';
Query1.DatabaseName:='ctdm';
for j:=1 to 50 do arr[j]:=0;
j:=1;
for i:=0 to ComponentCount-1 do
if (Components[i] is TPanel)and(Components[i].tag=j) then
begin
(Components[i] as Tpanel).Caption:='';
arr[j]:=i;
j:=j+1;
end;
// Components[i].
Query1.sql.text:='select tabsetup.code,Name from tabsetup,tabtype where lc='+lc+' and tabType.code=tabsetup.tabType ';
Query1.open;
while not Query1.Eof do
begin
with (Components[arr[Query1.Fields[0].asinteger]] as TPanel) do
begin
Caption:=Query1.Fields[1].asstring;
rmtypearr[Query1.Fields[0].asinteger-1]:=Query1.Fields[1].asstring;
ls:=Query1.Fields[1].asstring;
Query1.Next;
while (not Query1.Eof) and (ls=trim(Query1.Fields[1].asstring)) do
begin
(Components[arr[Query1.Fields[0].asinteger]] as TPanel).Visible:=false;
Width:=Width+71;
Query1.Next;
end;
end;
end;
Query1.Close;
Query1.sql.Clear;
Query1.Active:=false;
init;
end;
procedure Tctqtform.grid1DrawCell(Sender: TObject; Col, Row: Integer;
Rect: TRect; State: TGridDrawState);
var
lsls:string;
begin
if length(trim(status[col,row]))>0 then
begin
if status[col,row]='0' then
begin
(Sender as Tstringgrid).canvas.font.color:=$0000ff00; //GReen
lsls:='可用';
end;
if status[col,row]='1' then
begin
(Sender as Tstringgrid).canvas.font.color:=$000000ff; //GRed
lsls:='已用';
end;
if status[col,row]='2' then
begin
(Sender as Tstringgrid).canvas.font.color:=$0000ffff; //Yellow
lsls:='脏';
end ;
if status[col,row]='3' then
begin
(Sender as Tstringgrid).canvas.font.color:=$00ffff00; //
lsls:='停用';
end;
if status[col,row]='4' then
begin
(Sender as Tstringgrid).canvas.font.color:=$02aa00aa; //
lsls:='挂帐';
end;
(Sender as Tstringgrid).canvas.textrect((Sender as Tstringgrid).cellrect(col,row),(Sender as Tstringgrid).cellrect(col,row).Left,(Sender as Tstringgrid).cellrect(col,row).top+5,tabno[col,row]+lsls);
end;
end;
procedure Tctqtform.grid1Click(Sender: TObject);
begin
j:=(sender as tstringgrid).Col;
k:=(sender as tstringgrid).row;
if trim(tabno[j,k])<>'' then
begin
Hint:=#13+'可容纳人数:'+inttostr(num[j,k]);
if trim(place[j,k])<>'' then
Hint:=Hint+#13+' 位置:'+place[j,k];
if trim(remark[j,k])<>'' then
Hint:=Hint+#13+' 说明:'+#13+remark[j,k];
if trim(status[j,k])='0' then Hint:=grid1.Cells[j,k]+' 目前状态:可用'+Hint;
if trim(status[j,k])='1' then Hint:=grid1.Cells[j,k]+' 目前状态:已用'+Hint;
if trim(status[j,k])='3' then Hint:=grid1.Cells[j,k]+' 目前状态:停用'+Hint;
if trim(status[j,k])='4' then Hint:=grid1.Cells[j,k]+' 目前状态:挂帐'+Hint;
end
else
(sender as tstringgrid).Hint:='';
end;
procedure Tctqtform.grid1DblClick(Sender: TObject);
begin
j:=(sender as tstringgrid).Col;
k:=(sender as tstringgrid).row;
if (trim(tabno[j,k])<>'') and ((trim(status[j,k])='2') or (trim(status[j,k])='3')) then
begin
Query1.Active:=false;
Query1.sql.Clear;
Query1.SQL.Add('update tabledb set state=''0'' where tabno='''+trim(tabno[j,k])+'''');
Query1.ExecSQL;
init;
end;
if (trim(tabno[j,k])<>'') and (trim(status[j,k])='0') then
begin
Query1.Active:=false;
Query1.sql.Clear;
Query1.SQL.Add('update tabledb set state=''3'' where tabno='''+trim(tabno[j,k])+'''');
Query1.ExecSQL;
init;
end;
end;
procedure Tctqtform.Timer1Timer(Sender: TObject);
begin
init;
end;
procedure Tctqtform.BitBtn3Click(Sender: TObject);
begin
close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -