unitsupdetails.pas
来自「自己做过的工程」· PAS 代码 · 共 203 行
PAS
203 行
unit unitsupdetails;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, ComCtrls, ExtCtrls, StdCtrls, DB;
type
Tformsupdetails = class(TForm)
Panel1: TPanel;
page_sup: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
DBGrid1: TDBGrid;
DataSourcedetail: TDataSource;
DataSourceconsumedetail: TDataSource;
but_add: TButton;
but_modify: TButton;
but_exit: TButton;
DBGrid2: TDBGrid;
Label1: TLabel;
lab_supuserid: TLabel;
procedure but_exitClick(Sender: TObject);
procedure but_addClick(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure DBGrid2CellClick(Column: TColumn);
procedure TabSheet2Show(Sender: TObject);
procedure but_modifyClick(Sender: TObject);
procedure TabSheet1Show(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
formsupdetails: Tformsupdetails;
SQL:string;
G_sdid,G_scdid:string; //存储就餐客人明细记录号和用餐消费明细记录号
pageindex:integer;//0-就餐客人明细 1-就餐消费明细
statuscolor:Tcolor; //状态颜色
implementation
uses unitDMHotel,unitsupmanage,unitsupdetail_data,unitsupconsumedetail_data;
{$R *.dfm}
procedure Tformsupdetails.but_exitClick(Sender: TObject);
begin
close;
end;
procedure Tformsupdetails.but_addClick(Sender: TObject);
begin
pageindex:=page_sup.ActivePageIndex;
//就餐客人明细
if pageindex=0 then
//打开录入窗口
formsupdetail_data.ShowModal
//就餐消费明细
else
begin
//如果没有选定客人就餐记录,不能添加就餐消费记录
if G_sdid='' then
begin
showmessage('请选选择客人就餐记录!');
exit;
end;
//打开录入窗口
formsupconsumedetail_data.ShowModal;
end;
end;
//记录作废
procedure Tformsupdetails.but_modifyClick(Sender: TObject);
var
ls_sroomno:string;
begin
pageindex:=page_sup.ActivePageIndex;
//就餐客人明细
if pageindex=0 then
begin
DMHotel.ds_sup_detail.Open;
G_sdid:=DMHotel.ds_sup_detail.FieldByName('sdid').AsString;
if G_sdid='' then
begin
showmessage('请先选择要作废的记录!');
exit;
end;
//作废警告提示
if MessageBox(handle,'作废就餐客人记录将使所有该条记录相关的就餐消费明细记录作废,确定作废吗?','警告',MB_OKCANCEL or MB_ICONERROR)=2 then
exit;
//定义一个事务,同时执行改变包间状态和修改iscancellation标志位
DMHotel.ADOConnection1.BeginTrans;
//如果是包间,改变包间状态
if DMHotel.ds_sup_detail.FieldValues['sroomno']<>null then
begin
ls_sroomno:=DMHotel.ds_sup_detail.FieldValues['sroomno'];
//showmessage(ls_sroomno); ////
//空闲的颜色
statuscolor:=color1;
//改变被使用包间状态为空闲
formsupmanage.sroomstatus_change(statuscolor,strtoint(ls_sroomno),'空闲');
end;
//修改sup_detail表的iscancellation标志位
SQL:='update sup_detail '+'set iscancellation='+''''+'1'+''''
+' '+'where sdid='+''''+G_sdid+'''';
DMHotel.ADOQuery1.SQL.Text:=SQL;
try
DMHotel.ADOQuery1.ExecSQL;
except
showmessage('操作失败!');
DMHotel.ADOConnection1.RollbackTrans; //失败回滚
exit;
end;
//修改dup_consume表的iscancellation标志位
SQL:='update sup_consume_detail '+'set iscancellation='+''''+'1'+''''
+' '+'where supuserid='+''''+G_sdid+'''';
DMHotel.ADOQuery1.SQL.Text:=SQL;
try
DMHotel.ADOQuery1.ExecSQL;
except
showmessage('操作失败!');
DMHotel.ADOConnection1.RollbackTrans; //失败回滚
exit;
end;
DMHotel.ADOConnection1.CommitTrans; //成功提交
DMHotel.ds_sup_detail.Requery;
DMHotel.SetSupConsumeDetailView(G_sdid);
end
//就餐消费明细
else
begin
DMHotel.ds_sup_consume_detail.Open;
G_scdid:=DMHotel.ds_sup_consume_detail.FieldByName('scdid').AsString;
if G_scdid='' then
begin
showmessage('请先选择要作废的记录!');
exit;
end;
//作废警告提示
if MessageBox(handle,'确定要作废该条记录吗?','警告',MB_OKCANCEL or MB_ICONERROR)=2 then
exit;
//修改dup_consume表的iscancellation标志位
SQL:='update sup_consume_detail '+'set iscancellation='+''''+'1'+''''
+' '+'where scdid='+''''+G_scdid+'''';
DMHotel.ADOQuery1.SQL.Text:=SQL;
DMHotel.ADOQuery1.ExecSQL;
DMHotel.SetSupConsumeDetailView(G_sdid);
end;
end;
procedure Tformsupdetails.DBGrid1CellClick(Column: TColumn);
begin
DBGrid1.SetFocus;
end;
procedure Tformsupdetails.DBGrid2CellClick(Column: TColumn);
begin
DBGrid2.SetFocus;
end;
procedure Tformsupdetails.TabSheet2Show(Sender: TObject);
begin
DMHotel.ds_sup_detail.Open;
G_sdid:=DMHotel.ds_sup_detail.FieldByName('sdid').AsString;
if G_sdid='' then
lab_supuserid.Caption:='没有记录'
else
lab_supuserid.Caption:=G_sdid;
if G_sdid<>'' then
DMHotel.SetSupConsumeDetailView(G_sdid);
end;
procedure Tformsupdetails.TabSheet1Show(Sender: TObject);
begin
DMHotel.ds_sup_consume_detail.Open;
G_scdid:=DMHotel.ds_sup_consume_detail.FieldByName('scdid').AsString;
end;
procedure Tformsupdetails.FormShow(Sender: TObject);
begin
DMHotel.ds_sup_detail.Open;
DMHotel.ds_sup_detail.Requery;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?