umaterial.pas

来自「成本系统三层结构源码 开发工具:Delphi 7.0+SQLServer 20」· PAS 代码 · 共 199 行

PAS
199
字号
unit umaterial;
           
interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, upub1, Menus, ImgList, DB, jpeg, StdCtrls,  StrUtils,
  ExtCtrls, ComCtrls, Buttons, DBCtrls, Mask, dxtree,DateUtils,
  dxdbtree, dxdbtrel, dxCntner, dxTL, dxDBCtrl, dxDBGrid, ActnList, 
  dxExEdtr, dxDBTLCl, dxGrClms, ToolWin, DBClient, dxEditor, dxEdLib,
  dxDBELib;

type
  Tfmmaterial = class(Tfmpub1)
    Label1: TLabel;                       
    DBEdit1: TDBEdit;
    Label2: TLabel;
    DBEdit2: TDBEdit;
    Label3: TLabel;
    DBLookupComboBox1: TDBLookupComboBox;
    dxDBTreeView1: TdxDBTreeView;
    DataSource2: TDataSource;
    Splitter1: TSplitter;
    Label5: TLabel;
    dxDBLookupTreeView1: TdxDBLookupTreeView;
    Label6: TLabel;
    DBEdit4: TDBEdit;
    Label8: TLabel;
    DBComboBox1: TDBComboBox;
    Label9: TLabel;
    DBRadioGroup1: TDBRadioGroup;
    Label15: TLabel;
    Label16: TLabel;
    DBComboBox2: TDBComboBox;
    DBComboBox3: TDBComboBox;
    Label7: TLabel;
    DBLookupComboBox2: TDBLookupComboBox;
    Label10: TLabel;
    DBEdit5: TDBEdit;
    Label11: TLabel;
    DBEdit6: TDBEdit;
    Label12: TLabel;
    DBEdit7: TDBEdit;
    DBCheckBox1: TDBCheckBox;
    Label17: TLabel;
    DBLookupComboBox3: TDBLookupComboBox;
    DataSource1: TDataSource;
    dxDBGrid2: TdxDBGrid;
    Label18: TLabel;
    dxDBGrid2StockName: TdxDBGridLookupColumn;
    dxDBGrid2Qty: TdxDBGridMaskColumn;
    dxDBGrid2Price: TdxDBGridMaskColumn;
    DBGrid1PartNo: TdxDBGridMaskColumn;
    DBGrid1CategoryID: TdxDBGridMaskColumn;
    DBGrid1CategoryName: TdxDBGridLookupColumn;
    DBGrid1PartNameC: TdxDBGridMaskColumn;
    DBGrid1PartNameE: TdxDBGridMaskColumn;
    DBGrid1Zjm: TdxDBGridColumn;
    DBGrid1Model: TdxDBGridMaskColumn;
    DBGrid1Color: TdxDBGridMaskColumn;
    DBGrid1UnitID: TdxDBGridMaskColumn;
    DBGrid1UnitName: TdxDBGridLookupColumn;
    DBGrid1Status: TdxDBGridCheckColumn;
    DBGrid1CostType: TdxDBGridMaskColumn;
    DBGrid1TypeLabel: TdxDBGridLookupColumn;
    DBGrid1ABCType: TdxDBGridMaskColumn;
    DBGrid1DefaultStock: TdxDBGridMaskColumn;
    DBGrid1StockName: TdxDBGridLookupColumn;
    DBGrid1TotalQty: TdxDBGridMaskColumn;
    DBGrid1SafeQty: TdxDBGridMaskColumn;
    DBGrid1Remark: TdxDBGridMaskColumn;
    DBGrid1Creater: TdxDBGridMaskColumn;
    DBGrid1CreateDate: TdxDBGridDateColumn;
    DBGrid1Updater: TdxDBGridMaskColumn;
    DBGrid1UpdateDate: TdxDBGridDateColumn;
    DBGrid1QInvInitial: TdxDBGridColumn;
    NSafe: TMenuItem;
    DataSource3: TDataSource;
    dxDBGrid1: TdxDBGrid;
    dxDBGrid1StockName: TdxDBGridMaskColumn;
    dxDBGrid1Price: TdxDBGridMaskColumn;
    dxDBGrid1Qty: TdxDBGridMaskColumn;
    DBGrid1PriceType: TdxDBGridMaskColumn;
    procedure FormCreate(Sender: TObject);
    procedure dxDBTreeView1Change(Sender: TObject; Node: TTreeNode);
    procedure AAddExecute(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure dxDBGrid2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormActivate(Sender: TObject);
    procedure NSafeClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  fmmaterial: Tfmmaterial;

implementation

uses SherryLib, udmbase, udata;

{$R *.dfm}

procedure Tfmmaterial.FormCreate(Sender: TObject);
begin
  if DSMain.DataSet=NIl then
  DSMain.DataSet:=DMBase.Cmateriel;
  OpenData(DataSource2);
  DMBase.Cmateriel.Params.ParamValues['@CategoryID']:='';  
  inherited;
  Dbgrid1.KeyField:='PartNo';
  if Exists('select 1 from sysobjects where xtype=''TR'' and name=''TrInvInitial''') then
  Begin
    OpenData(DataSource1);
    dxDBGrid2.SendToBack;
    dxDBGrid1.BringToFront;
    Label18.Caption:='当前库存分布';
  End
  else
  begin
    OpenData(DataSource3);
    dxDBGrid1.SendToBack;
    dxDBGrid2.BringToFront;
    Label18.Caption:='期初库存';
    DxDbGrid2.OptionsBehavior:=DxDbGrid2.OptionsBehavior+[edgoTabs]-[edgoImmediateEditor];
  end;
end;

procedure Tfmmaterial.dxDBTreeView1Change(Sender: TObject;
  Node: TTreeNode);
begin
  if DMBase.Cmateriel.Params.ParamValues['@CategoryID']<>DMBase.CCategory1['CategoryID'] then
  Try
    ShowWait;
    DMBase.Cmateriel.Active:=False;
    DMBase.Cmateriel.Params.ParamValues['@CategoryID']:=DMBase.CCategory1['CategoryID'];
    DMBase.Cmateriel.Active:=True;
  Finally
    HideWait;
  end;
  //dxDBTreeView1.FullExpand;
end;

procedure Tfmmaterial.AAddExecute(Sender: TObject);
var i:integer;
begin
  if dxDBTreeView1.Selected.HasChildren then if not ASk(' 请先在左边选择一个明细的材料分类!') then abort;
  inherited;
  DBEdit1.SetFocus;
  i:=length(DBEdit1.Text);
  SendMessage(DBEdit1.Handle,EM_SETSEL,i,i);
end;

procedure Tfmmaterial.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if ActiveControl<>dxDBGrid2 then inherited;
end;

procedure Tfmmaterial.dxDBGrid2KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  dxDbgridKeyDown(key,dxDBGrid2, Shift);
end;

procedure Tfmmaterial.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  inherited;
  CloseData(DataSource2);
  CloseData(DataSource1);
  CloseData(DataSource3);
end;

procedure Tfmmaterial.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  SherryLib.FormKeyDown(Sender,Key,Shift,dxDBGrid2);
end;

procedure Tfmmaterial.FormActivate(Sender: TObject);
begin
  inherited;
  ComboBoxDropDown(DBLookupComboBox3);
end;

procedure Tfmmaterial.NSafeClick(Sender: TObject);
begin
  DMBase.Cmateriel.Filter:=' not (SafeQty<=TotalQty)';
  NSafe.Checked:=Not NSafe.Checked;
  DMBase.Cmateriel.Filtered:=NSafe.Checked;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?