⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 untsalbilldispose.pas

📁 是分布式粮库程序,是采用Delphi实现的
💻 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 + -