?? checkloselogout.pas
字號:
unit checkloselogout;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, instorelogout, DB, StdCtrls, ComCtrls, Buttons,
Grids, DBGrids, ExtCtrls,ADODB;
type
Tf_checkloselogout = class(Tf_Instorelogout)
procedure QueryClick(Sender: TObject);override;
procedure ConfirmClick(Sender: TObject);override;
private
{ Private declarations }
public
{ Public declarations }
end;
var
f_checkloselogout: Tf_checkloselogout;
implementation
uses Data, main;
{$R *.dfm}
//處理查詢按鈕單擊事件
procedure Tf_checkloselogout.QueryClick(Sender: TObject);
begin
if (Storageid.Checked = True)or(Date.Checked = True) then
begin
if (Storageid.Checked)and(not Date.Checked) then //只按票號查詢
begin
if Trim(InRegid.Text)<>'' then
begin
With t_data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from v_losestorequery where loseid = :loseid');
Parameters.ParamByName('loseid').Value := Trim(inregid.Text);
Open;
end;
end
else
begin
Application.MessageBox('請輸入票號.','提示',64);
Exit;
end;
end
else if (not storageid.Checked)and(date.Checked) then //只按日期查詢
begin
with t_data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from v_losestorequery where');
SQL.Add(' TimeDate >= :FromDate and Timedate < :ToDate');
Parameters.ParamByName('FromDate').Value := Trunc(FromDate.DateTime);
Parameters.ParamByName('ToDate').Value := Trunc(ToDate.DateTime)+1;
Open;
end;
end
else //即按票號又按日期查詢
begin
if Trim(Inregid.Text)<>'' then
begin
With t_data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from v_losestorequery where loseid = :loseid and TimeDate >= :FromDate and Timedate < :ToDate');
Parameters.ParamByName('FromDate').Value := Trunc(FromDate.DateTime);
Parameters.ParamByName('ToDate').Value := Trunc(ToDate.DateTime)+1;
Parameters.ParamByName('loseid').Value := Trim(Inregid.Text);
Open;
end;
end
else
begin
Application.MessageBox('請輸入票號.','提示',64);
Exit;
end;
end;
if t_data.Query1.RecordCount>0 then
begin
master.DataSet := t_data.Query1;
Confirm.Enabled := True;
end
else
begin
t_data.Query1.Close;
Confirm.Enabled := False;
Application.MessageBox('沒有找到符合條件的記錄.','提示',64);
end;
end
else
begin
Application.MessageBox('請設置查詢條件.','提示',64);
end;
end;
//處理確定按鈕單擊事件
procedure Tf_checkloselogout.ConfirmClick(Sender: TObject);
var
Connect1: TADOConnection;
Query1,Query2: TADOQuery;
begin
//提示是否進行沖銷操作
if Application.MessageBox(Pchar('確實要沖銷票號為: '+ t_data.Query1.FieldByName('loseid').AsString+' 的報損信息嗎?'),'提示',mb_yesno)= Id_Yes then
begin
Try
//動態創建TADOConnection組件
Connect1 := TADOConnection.Create(Nil);
Query1 := TADOQuery.Create(Nil);
Query2 := TADOQuery.Create(nil);
Connect1.ConnectionString := t_data.Connection1.ConnectionString;
Connect1.LoginPrompt := False;
Connect1.Open;
Query1.Connection := Connect1;
Query2.Connection := Connect1;
Try
Connect1.BeginTrans;
//修改庫存
With Query2 do
begin
Close;
SQL.Clear;
SQL.Add('select * from v_losestorequery where loseid = :loseid');
Parameters.ParamByName('loseid').Value := Trim(t_data.Query1.FieldByName('loseid').AsString);
Open;
end;
while not Query2.Eof do
begin
With Query1 do
begin
Close;
SQL.Clear;
SQL.Add('update tb_comstorage set storesum = storesum + :num where storagename = :storagename and storename = :storename');
Parameters.ParamByName('num').Value := Query2.FieldByName('num').AsFloat;
Parameters.ParamByName('storagename').Value := Query2.FieldByName('storagename').AsString;
Parameters.ParamByName('storename').Value := Query2.FieldByName('storename').AsString;
ExecSQL;
end;
Query2.Next;
end;
//刪除報損票號歷史記錄
With Query1 do
begin
Close;
SQL.Clear;
SQL.Add('delete from tb_checkloseid where loseid = :loseid'); //會級聯刪除明細表中的數據(tb_storelist)
Parameters.ParamByName('loseid').Value := Trim(t_data.Query1.FieldByName('loseid').AsString);
ExecSQL;
end;
//執行存儲過程保存沖銷信息
With Query1 do
begin
Close;
SQL.Clear;
SQL.Add('Exec Add_IDLogout :Id,:kind,:operator');
Parameters.ParamByName('Id').Value := Trim(t_data.Query1.FieldByName('loseid').AsString);
Parameters.ParamByName('Kind').Value := losestore ;
Parameters.ParamByName('operator').Value := Trim(t_main.Operatorname);
ExecSQL;
end;
Connect1.CommitTrans;
Cancel.Click;
Application.MessageBox('操作成功.','提示',64);
Except
Connect1.RollbackTrans;
Application.MessageBox('系統出錯.','提示',64);
end;
Finally
Connect1.Free;
Query1.Free;
Query2.Free;
end;
end;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -