📄 unttransfernotydispose.pas
字号:
unit UntTransferNotyDispose;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ExtCtrls, DB, DBTables, DBCtrls, StdCtrls, Grids,
DBGrids, Buttons;
type
TFrmTransferNotyDispose = class(TForm)
Panel1: TPanel;
Splitter1: TSplitter;
PnlLeft: TPanel;
Panel3: TPanel;
Splitter2: TSplitter;
PnlBotn: TPanel;
Panel4: TPanel;
PnlBrowse: TPanel;
Splitter3: TSplitter;
PnlItemGrid: TPanel;
btnOut: TBitBtn;
btnExit: TBitBtn;
PageCtrlNoty: TPageControl;
tsUnfinished: TTabSheet;
tsFinished: TTabSheet;
DBGrdMasterFinished: TDBGrid;
DBGrdMasterUnfinished: TDBGrid;
lblTitle: TLabel;
lblQianfa: TLabel;
LblManager: TLabel;
LblClerk: TLabel;
Label1: TLabel;
Label13: TLabel;
DBGridItem: TDBGrid;
DataSourceMaster: TDataSource;
DataSourceItem: TDataSource;
DBTxtSignDate: TDBText;
DBTxtNotyNo: TDBText;
DBText3: TDBText;
DBTxtManager: TDBText;
DBTxtClerk: TDBText;
DBText14: TDBText;
Shape4: TShape;
Shape1: TShape;
Shape2: TShape;
Shape9: TShape;
Shape3: TShape;
Shape5: TShape;
Shape6: TShape;
tsAllNoty: TTabSheet;
DBGrdMasterAll: TDBGrid;
TblItem: TTable;
TblItemNOTY_ITEM_ID: TStringField;
TblItemNOTY_ID: TIntegerField;
TblItemFOOD_TYPE: TStringField;
TblItemATTRIBUTE: TStringField;
TblItemATTACHMENT: TStringField;
TblItemQUANTITY: TFloatField;
TblItemCOST: TFloatField;
TblItemPRICE: TFloatField;
TblItemMEMO: TStringField;
TblItemSTATUS: TIntegerField;
TblItemSETTLEMENT: TStringField;
BitBtnFinished: TBitBtn;
LblUnitName: TLabel;
DBTxtCounterpart: TDBText;
LblCounterpart: TLabel;
DBTxtUnitName: TDBText;
LblAuthorityNO: TLabel;
DBTxtAuthorityNO: TDBText;
DBTxtStart: TDBText;
DBTxtEnd: TDBText;
LblSNTime: TLabel;
LblSettlement: TLabel;
LblVSettlement: TLabel;
LblVFoodType: TLabel;
Label8: TLabel;
LblVAttribute: TLabel;
Label7: TLabel;
Label6: TLabel;
LblTotal: TLabel;
LblVTotal: TLabel;
LblPrice: TLabel;
LblVPrice: TLabel;
LblSum: TLabel;
LblVSum: TLabel;
Label2: TLabel;
TblUnit_info: TTable;
DataSourceUnit_info: TDataSource;
TblMaster: TTable;
TblMasterAUTHORITY_NO: TStringField;
TblMasterNOTY_NO: TStringField;
TblMasterNOTY_ID: TIntegerField;
TblMasterPLAN_ID: TStringField;
TblMasterNOTY_TYPE: TIntegerField;
TblMasterCOUNTERPART: TStringField;
TblMasterCLERK: TStringField;
TblMasterMANAGER: TStringField;
TblMasterSTATUS: TIntegerField;
TblMasterMEMO: TStringField;
TblMasterUNIT_ID: TIntegerField;
TblMasterSIGN_DATE: TStringField;
TblMasterSTART_TIME: TDateTimeField;
TblMasterFINISH_TIME: TDateTimeField;
TblMasterINPUT_TIME: TDateTimeField;
TblMasterUnitName: TStringField;
TblItembusiness_type: TStringField;
DBTextBusinessType: TDBText;
TblMasterCOM_FLAG: TIntegerField;
procedure PageCtrlNotyChange(Sender: TObject);
procedure btnExitClick(Sender: TObject);
procedure TblMasterAfterScroll(DataSet: TDataSet);
procedure FormShow(Sender: TObject);
procedure btnOutClick(Sender: TObject);
procedure BitBtnFinishedClick(Sender: TObject);
procedure DBGrdMasterAllDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
procedure DBGrdMasterUnfinishedDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
procedure DBGridItemDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
Procedure FreshInNoty();
public
{ Public declarations }
end;
var
FrmTransferNotyDispose: TFrmTransferNotyDispose;
implementation
uses UnitDataModul,UntTransferStore, UntInNotyDispose, Global;
{$R *.dfm}
procedure TFrmTransferNotyDispose.PageCtrlNotyChange(Sender: TObject);
begin
// NOTY_TYPE=1表明是入库单,STATUS:0-未处理;1-部分处理;2-已处理。
if PageCtrlNoty.ActivePage = tsAllNoty then
begin
TblMaster.Close;
TblMaster.Filtered := False;
TblMaster.Filter := 'NOTY_TYPE=2 and UNIT_ID='+IntToStr(global.g_user.UnitID);
TblMaster.Filtered := true;
TblMaster.Open;
end;
if PageCtrlNoty.ActivePage = tsUnFinished then
begin
TblMaster.Close;
TblMaster.Filtered := False;
TblMaster.Filter := 'NOTY_TYPE=2 and (STATUS=0 OR STATUS=1) and UNIT_ID='+IntToStr(global.g_user.UnitID);
TblMaster.Filtered := true;
TblMaster.Open;
end;
if PageCtrlNoty.ActivePage = tsFinished then
begin
TblMaster.Close;
TblMaster.Filtered := False;
TblMaster.Filter := 'NOTY_TYPE=2 and STATUS=2 and UNIT_ID='+IntToStr(global.g_user.UnitID);
TblMaster.Filtered := true;
TblMaster.Open;
end;
end;
procedure TFrmTransferNotyDispose.btnExitClick(Sender: TObject);
begin
close;
end;
procedure TFrmTransferNotyDispose.FreshInNoty();
var
i: integer;
sum,quantity,price: real;
FlagFoodType,FlagAttribute,FlagSettlement,FlagPrice: boolean;
StrSettlement,StrFoodType,StrAttribute: string;
begin
LblVSettlement.Caption := '';
LblVAttribute.Caption := '';
LblVFoodType.Caption := '';
LblVTotal.Caption := '';
LblVSum.Caption := '';
LblVPrice.Caption := '';
sum := 0;
quantity := 0;
price := 0;
StrSettlement := '';
StrFoodType := '';
StrAttribute := '';
FlagSettlement := true;
FlagFoodType := true;
FlagAttribute := true;
FlagPrice := true;
if TblItem.RecordCount>0 then
begin
TblItem.First;
price := TblItem.FieldByName('PRICE').AsFloat;
strSettlement := TblItem.FieldByName('SETTLEMENT').AsString;
StrFoodType := TblItem.FieldByName('FOOD_TYPE').AsString;
StrAttribute := TblItem.FieldByName('ATTRIBUTE').AsString;
for i:=1 to TblItem.RecordCount do
begin
if strSettlement <> TblItem.FieldByName('SETTLEMENT').AsString then
FlagSettlement := false;
if ABS(Price-TblItem.FieldByName('PRICE').AsFloat)>0.000001 then
FlagPrice := false;
if StrFoodType <> TblItem.FieldByName('FOOD_TYPE').AsString then
FlagFoodType := false;
if StrAttribute <> TblItem.FieldByName('ATTRIBUTE').AsString then
FlagAttribute := false;
sum := sum+TblItem.FieldByName('PRICE').Asfloat*TblItem.FieldByName('QUANTITY').Asfloat;
quantity := quantity+TblItem.FieldByName('QUANTITY').Asfloat;
TblItem.Next;
end;
end;
if abs(quantity)>0.0000001 then
LblVTotal.Caption := FloatToStr(quantity);
if abs(sum)>0.000001 then
LblVSum.Caption := FloatToStr(sum);
if FlagSettlement then
LblVSettlement.Caption := StrSettlement;
if FlagFoodType then
LblVFoodType.Caption := StrFoodType;
if FlagAttribute then
LblVAttribute.Caption := StrAttribute;
if FlagPrice and (TblItem.FieldByName('PRICE').AsFloat<>0) then
LblVPrice.Caption := FloatToStr(Price);
end;
procedure TFrmTransferNotyDispose.TblMasterAfterScroll(DataSet: TDataSet);
begin
FreshInNoty();
end;
procedure TFrmTransferNotyDispose.FormShow(Sender: TObject);
begin
FreshInNoty();
end;
procedure TFrmTransferNotyDispose.btnOutClick(Sender: TObject);
var
QryCX:TQuery;
begin
if TblItem.FieldByName('NOTY_ITEM_ID').AsString = '' then
begin
showmessage('请选择要处理的移库通知单细目!');
exit;
end;
if TblItem.FieldByName('STATUS').AsInteger = 1 then
//if MessageDlg('此移库通知单已处理,确实还要生成移库单吗?',mtConfirmation, [mbYes, mbNo], 0) = mrNo then
if Application.MessageBox('此移库通知单已处理,确实还要生成移库单吗?','程序执行确认',MB_YesNo+MB_IconQuestion+MB_ApplModal)=IdNo then
exit;
FrmTransferStore := TFrmTransferStore.Create(FrmTransferNotyDispose);
//FrmTransferStore.LblNotyItem.Enabled:=true;
FrmTransferStore.BitBtnSlctNotyItem.Enabled:=true;
//FrmTransferStore.LblInUnit.Enabled:=true;
FrmTransferStore.DBLkpCmbxRecieve.Enabled:=true;
//FrmTransferStore.LblOutN.Enabled:=true;
FrmTransferStore.DBLookupComboBox4.Enabled:=true;
//FrmTransferStore.LblOutQ.Enabled:=true;
FrmTransferStore.DBEditNotyQuantity.Enabled:=true;
//FrmTransferStore.LbloutClerk.Enabled:=true;
FrmTransferStore.DBEdtoutClerk.Enabled:=true;
//FrmTransferStore.LblOutCheck.Enabled:=true;
FrmTransferStore.DBCheckBox2.Enabled:=true;
FrmTransferStore.BitBtnNew.Enabled:=true;
FrmTransferStore.BitBtnDelete.Enabled:=true;
FrmTransferStore.DBGrid1.DataSource.DataSet.Edit;
FrmTransferStore.DBGrid1.DataSource.DataSet.Append;
FrmTransferStore.DBEditUnitID.Field.AsInteger := Global.g_user.UnitID;
FrmTransferStore.DBEdtOutClerk.Field.AsString := Global.g_user.UserName;
FrmTransferStore.DBEditDatetime.Field.AsDateTime := date;
FrmTransferStore.DBCheckBox1.Checked:=false;
FrmTransferStore.DBCheckBox2.Checked:=false;
try
QryCX := TQuery.Create(nil);
QryCX.DatabaseName := 'LYDB';
QryCX.SQL.Clear;
QryCX.SQL.Add('select * from ENT_UNIT_INFO where Unit_name='''+TblMaster.FieldByName('COUNTERPART').AsString+'''');
QryCX.Open;
if QryCX.RecordCount<>1 then
showmessage('接受单位不对!')
else
FrmTransferStore.DBLkpCmbxRecieve.Field.AsInteger := QryCX.FieldByName('UNIT_ID').AsInteger;
finally
QryCX.Close;
QryCX.Free;
end;
FrmTransferStore.DBEditNotyItemID.Field.AsString := TblItem.FieldByName('NOTY_ITEM_ID').AsString;
FrmTransferStore.DBEditNotyQuantity.Field.AsFloat := TblItem.FieldByName('QUANTITY').AsFloat;
FrmTransferStore.DBLookupComboBox4.Field.AsString := TblItem.FieldByName('FOOD_TYPE').AsString;
FrmTransferStore.DBEditKey.Enabled:=true;
FrmTransferStore.DBEditKey.SetFocus;
FrmTransferStore.Visible:=false;
FrmTransferStore.ShowModal;
end;
procedure TFrmTransferNotyDispose.BitBtnFinishedClick(Sender: TObject);
var
Qry:Tquery;
Flag: boolean;
i: integer;
begin
if TblItem.FieldByName('NOTY_ITEM_ID').AsString = '' then
begin
showmessage('请选择要处理的移库通知单细目!');
exit;
end;
TblItem.Edit;
TblItem.FieldByName('STATUS').AsInteger:=1;
TblItem.Post;
Flag := false;
TblItem.First;
for i:=0 to TblItem.RecordCount do
begin
if TblItem.FieldByName('STATUS').AsInteger = 0 then
Flag := true;
TblItem.Next;
end;
try
Qry:=TQuery.Create(nil);
Qry.DatabaseName:='LYDB';
Qry.Close;
Qry.SQL.Clear;
Qry.SQL.Add('UPDATE ENT_NOTY SET STATUS=:V_STATUS WHERE NOTY_ID=:V_NOTY_ID');
if Flag = true then
Qry.Params[0].AsInteger := 1
else
Qry.Params[0].AsInteger := 2;
Qry.Params[1].AsInteger := TblItem.FieldByName('NOTY_ID').AsInteger;
Qry.ExecSQL;
finally
Qry.Close;
Qry.Free;
end;
end;
procedure TFrmTransferNotyDispose.DBGrdMasterAllDrawColumnCell(
Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if TblMaster.FieldByName('STATUS').AsInteger = 0 then
DBGrdMasterAll.Canvas.Font.Color := clRed;
if TblMaster.FieldByName('STATUS').AsInteger = 1 then
DBGrdMasterAll.Canvas.Font.Color := clBlue;
DBGrdMasterAll.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
procedure TFrmTransferNotyDispose.DBGrdMasterUnfinishedDrawColumnCell(
Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if TblMaster.FieldByName('STATUS').AsInteger = 0 then
DBGrdMasterUnfinished.Canvas.Font.Color := clRed;
if TblMaster.FieldByName('STATUS').AsInteger = 1 then
DBGrdMasterUnfinished.Canvas.Font.Color := clBlue;
DBGrdMasterUnfinished.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
procedure TFrmTransferNotyDispose.DBGridItemDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if TblItem.FieldByName('STATUS').AsInteger = 0 then
DBGridItem.Canvas.Font.Color := clRed;
DBGridItem.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
procedure TFrmTransferNotyDispose.FormCreate(Sender: TObject);
begin
TblMaster.Close;
TblMaster.Filtered := False;
TblMaster.Filter := 'NOTY_TYPE=2 and UNIT_ID='+IntToStr(global.g_user.UnitID);
TblMaster.Filtered := true;
TblMaster.Open;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -