📄 untsalbilldispose.pas
字号:
unit UntSalBillDispose;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, ComCtrls, StdCtrls, Buttons, Grids, DBGrids,
ExtCtrls, DBCtrls;
type
TFrmSaleBillDispose = class(TForm)
Panel1: TPanel;
Splitter2: TSplitter;
Panel3: TPanel;
Panel4: TPanel;
Splitter3: TSplitter;
PnlBrowse: TPanel;
lblTitle: TLabel;
PnlItemGrid: TPanel;
DBGridItem: TDBGrid;
PnlBotn: TPanel;
btnInput: TBitBtn;
btnExit: TBitBtn;
PnlLeft: TPanel;
PageCtrlNoty: TPageControl;
tsUnfinished: TTabSheet;
DBGrdMasterUnfinished: TDBGrid;
tsFinished: TTabSheet;
DBGrdMasterFinished: TDBGrid;
tsAll: TTabSheet;
DBGridMasterAll: TDBGrid;
Splitter1: TSplitter;
TblSaleMaster: TTable;
DataSourceMaster: TDataSource;
DataSourceItem: TDataSource;
TblSaleItem: TTable;
BitBtnFinished: TBitBtn;
TblSaleItemSALEITEM_ID: TStringField;
TblSaleItemSALE_ID: TStringField;
TblSaleItemFOOD_TYPE: TStringField;
TblSaleItemQUANTITY: TFloatField;
TblSaleItemPRICE: TFloatField;
TblSaleItemREMAIN: TFloatField;
TblSaleItemSTATUS: TIntegerField;
TblSaleItemMEMO: TStringField;
TblSaleMasterSALE_ID: TStringField;
TblSaleMasterRECIEVER: TStringField;
TblSaleMasterMANAGER: TStringField;
TblSaleMasterCLERK: TStringField;
TblSaleMasterOPERTER: TStringField;
TblSaleMasterMEMO: TStringField;
TblSaleMasterSTATUS: TIntegerField;
TblSaleMasterUNIT_ID: TIntegerField;
TblSaleMasterDATETIME: TDateTimeField;
Shape1: TShape;
LblManager: TLabel;
LblUnitName: TLabel;
lblQianfa: TLabel;
DBTxtDateTime: TDBText;
DBTxtSupplyer: TDBText;
LblClerk: TLabel;
LblCounterpart: TLabel;
DBTxtReciever: TDBText;
DBTxtClerk: TDBText;
DBTxtSaleID: TDBText;
Label13: TLabel;
DBTxtManager: TDBText;
Shape2: TShape;
Shape3: TShape;
Shape4: TShape;
Shape5: TShape;
Shape6: TShape;
TblUnit_info: TTable;
DataSourceUnit_info: TDataSource;
TblSaleMasterUnitName: TStringField;
procedure PageCtrlNotyChange(Sender: TObject);
procedure btnExitClick(Sender: TObject);
procedure BitBtnFinishedClick(Sender: TObject);
procedure btnInputClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DBGridItemDrawColumnCell(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 DBGridMasterAllDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmSaleBillDispose: TFrmSaleBillDispose;
implementation
uses UntSaleOutStack,Global;
{$R *.dfm}
procedure TFrmSaleBillDispose.PageCtrlNotyChange(Sender: TObject);
begin
if PageCtrlNoty.ActivePage = tsAll then
begin
TblSaleMaster.Close;
TblSaleMaster.Filtered := False;
TblSaleMaster.Filter := 'UNIT_ID='+IntToStr(global.g_user.UnitID);
TblSaleMaster.Filtered := true;
TblSaleMaster.Open;
end;
if PageCtrlNoty.ActivePage = tsUnFinished then
begin
TblSaleMaster.Close;
TblSaleMaster.Filtered := False;
TblSaleMaster.Filter := '(STATUS=0 OR STATUS=1) and UNIT_ID='+IntToStr(global.g_user.UnitID);
TblSaleMaster.Filtered := true;
TblSaleMaster.Open;
end;
if PageCtrlNoty.ActivePage = tsFinished then
begin
TblSaleMaster.Close;
TblSaleMaster.Filtered := False;
TblSaleMaster.Filter := 'STATUS=2 and UNIT_ID='+IntToStr(global.g_user.UnitID);
TblSaleMaster.Filtered := true;
TblSaleMaster.Open;
end;
end;
procedure TFrmSaleBillDispose.btnExitClick(Sender: TObject);
begin
close;
end;
procedure TFrmSaleBillDispose.BitBtnFinishedClick(Sender: TObject);
var
Qry:Tquery;
Flag: boolean;
i: integer;
begin
if TblSaleItem.FieldByName('SALEITEM_ID').AsString = '' then
begin
showmessage('请选择要处理的销售单细目!');
exit;
end;
TblSaleItem.Edit;
TblSaleItem.FieldByName('STATUS').AsInteger:=1;
TblSaleItem.Post;
Flag := false;
TblSaleItem.First;
for i:=0 to TblSaleItem.RecordCount do
begin
if TblSaleItem.FieldByName('STATUS').AsInteger = 0 then
Flag := true;
TblSaleItem.Next;
end;
try
Qry:=TQuery.Create(nil);
Qry.DatabaseName:='LYDB';
Qry.Close;
Qry.SQL.Clear;
Qry.SQL.Add('UPDATE ENT_SALE SET STATUS=:V_STATUS WHERE SALE_ID=:V_SALE_ID');
if Flag = true then
Qry.Params[0].AsInteger := 1
else
Qry.Params[0].AsInteger := 2;
Qry.Params[1].AsString := TblSaleItem.FieldByName('SALE_ID').AsString;
Qry.ExecSQL;
finally
Qry.Close;
Qry.Free;
end;
end;
procedure TFrmSaleBillDispose.btnInputClick(Sender: TObject);
begin
if TblSaleItem.FieldByName('SALEITEM_ID').AsString = '' then
begin
showmessage('请选择要处理的销售单细目!');
exit;
end;
if TblSaleItem.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;
FrmSaleOutStack := TFrmSaleOutStack.Create(FrmSaleBillDispose);
FrmSaleOutStack.DBGrid1.DataSource.DataSet.Edit;
FrmSaleOutStack.DBGrid1.DataSource.DataSet.Append;
FrmSaleOutStack.DBEditUnitID.Field.AsInteger := Global.g_user.UnitID;
FrmSaleOutStack.DBEditClerk.Field.AsString := Global.g_user.UserName;
FrmSaleOutStack.DBCmbxOutType.Field.AsString := '销售';
FrmSaleOutStack.DBEditOutTime.Field.AsDateTime := date;
FrmSaleOutStack.DBEditRemain.Field.AsFloat := 0;
FrmSaleOutStack.DBEditWastage.Field.AsFloat := 0;
FrmSaleOutStack.DBEditSaleItemID.Field.AsString := TblSaleItem.FieldByName('SALEITEM_ID').AsString;
FrmSaleOutStack.Show;
FrmSaleOutStack.DBEditKey.Enabled:=true;
FrmSaleOutStack.DBEditKey.SetFocus;
end;
procedure TFrmSaleBillDispose.FormCreate(Sender: TObject);
begin
TblSaleMaster.Close;
TblSaleMaster.Filtered := False;
TblSaleMaster.Filter := 'UNIT_ID='+IntToStr(global.g_user.UnitID);
TblSaleMaster.Filtered := true;
TblSaleMaster.Open;
end;
procedure TFrmSaleBillDispose.DBGridItemDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if TblSaleItem.FieldByName('STATUS').AsInteger = 0 then
DBGridItem.Canvas.Font.Color := clRed;
DBGridItem.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
procedure TFrmSaleBillDispose.DBGrdMasterUnfinishedDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if TblSaleMaster.FieldByName('STATUS').AsInteger = 0 then
DBGrdMasterUnfinished.Canvas.Font.Color := clRed;
if TblSaleMaster.FieldByName('STATUS').AsInteger = 1 then
DBGrdMasterUnfinished.Canvas.Font.Color := clBlue;
DBGrdMasterUnfinished.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
procedure TFrmSaleBillDispose.DBGridMasterAllDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if TblSaleMaster.FieldByName('STATUS').AsInteger = 0 then
DBGridMasterAll.Canvas.Font.Color := clRed;
if TblSaleMaster.FieldByName('STATUS').AsInteger = 1 then
DBGridMasterAll.Canvas.Font.Color := clBlue;
DBGridMasterAll.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -