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

📄 uinout.pas

📁 成本系统三层结构源码 开发工具:Delphi 7.0+SQLServer 2005 主要技术:Midas、COM+ 所用第三方控件: FastReport V2.47 D7 Inforp
💻 PAS
字号:
unit uInout;

interface               

uses
  Windows, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, upub2, dxExEdtr, ActnList, ImgList, Menus, DB, ComCtrls,
  ToolWin, ExtCtrls, Tabs, dxCntner, dxTL, dxDBCtrl, dxDBGrid, dxDBTLCl,
  dxGrClms, wwdbdatetimepicker, StdCtrls, Mask, DBCtrls, dxEditor, dxEdLib,
  dxDBELib;

type
  TfmInOut = class(Tfmpub2)      
    TypeTabSet: TTabSet;
    Splitter1: TSplitter;
    Label1: TLabel;
    DBLookupComboBox1: TDBLookupComboBox;
    Label2: TLabel;
    DBEdit1: TDBEdit;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    DBLookupComboBox3: TDBLookupComboBox;
    Label6: TLabel;
    Label7: TLabel;
    DBEdit4: TDBEdit;
    wwDBDateTimePicker1: TwwDBDateTimePicker;
    Panel1: TPanel;
    Panel3: TPanel;
    Label10: TLabel;
    dxDBButtonEdit1: TdxDBButtonEdit;
    dxDBButtonEdit2: TdxDBButtonEdit;
    GridEnterPartNo: TdxDBGridButtonColumn;
    GridEnterPartNameC: TdxDBGridMaskColumn;
    GridEnterModel: TdxDBGridMaskColumn;
    GridEnterUnitID: TdxDBGridMaskColumn;
    GridEnterUnitName: TdxDBGridMaskColumn;
    GridEnterQty: TdxDBGridCalcColumn;
    GridEnterPrice: TdxDBGridCalcColumn;
    GridEnterRemark: TdxDBGridMaskColumn;
    GridSubOrderNo: TdxDBGridMaskColumn;
    GridSubPartNo: TdxDBGridMaskColumn;
    GridSubPartNameC: TdxDBGridLookupColumn;
    GridSubPartNameE: TdxDBGridLookupColumn;
    GridSubModel: TdxDBGridLookupColumn;
    GridSubColor: TdxDBGridLookupColumn;
    GridSubUnitID: TdxDBGridMaskColumn;
    GridSubUnitName: TdxDBGridLookupColumn;
    GridSubQty: TdxDBGridMaskColumn;
    GridSubPrice: TdxDBGridMaskColumn;
    GridSubRemark: TdxDBGridMaskColumn;
    GridEnterPartNameE: TdxDBGridMaskColumn;
    GridEnterColor: TdxDBGridMaskColumn;
    GridEnterOrderNo: TdxDBGridButtonColumn;
    dxDBButtonEdit3: TdxDBButtonEdit;
    procedure FormCreate(Sender: TObject);
    procedure TypeTabSetChange(Sender: TObject; NewTab: Integer;
      var AllowChange: Boolean);
    procedure dxDBButtonEdit2ButtonClick(Sender: TObject;
      AbsoluteIndex: Integer);
    procedure APreviewExecute(Sender: TObject);
    procedure AAddExecute(Sender: TObject);
    procedure dxDBButtonEdit3ButtonClick(Sender: TObject;
      AbsoluteIndex: Integer);
    procedure dxDBButtonEdit2Exit(Sender: TObject);
  private
    Procedure ShowField(NewTab: Integer);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  fmInOut: TfmInOut;

implementation

uses udminv, SherryLib, udmbase, uReport;

{$R *.dfm}

procedure TfmInOut.ShowField(NewTab: Integer);
begin
  self.Caption:=TTabSet(TypeTabSet).Tabs[NewTab];
  DBEdit1.ReadOnly:=Exists(Format('select 1 from SysConfig where Note%dAutoNo=1 and ID=1',[NewTab+2]));
  Case NewTab of
  0,4:
    Begin
      GridMas.FindColumnByFieldName('DeptID').Field.Required:=False;
      GridMas.FindColumnByFieldName('VendorID').Field.Required:=True;
      GridMas.FindColumnByFieldName('DeptName').Field.Visible:=False;
      GridMas.FindColumnByFieldName('DeptName').Visible:=False;
      GridMas.FindColumnByFieldName('VendorName').Field.Visible:=True;
      GridMas.FindColumnByFieldName('VendorName').Visible:=True;
      GridMas.FindColumnByFieldName('PONo').Field.Visible:=True;
      GridMas.FindColumnByFieldName('PONo').Visible:=True;
      GridSub.FindColumnByFieldName('Price').Field.Visible:=True;
      GridSub.FindColumnByFieldName('Price').Visible:=True;
      GridEnter.FindColumnByFieldName('Price').Field.Visible:=True;
      GridEnter.FindColumnByFieldName('Price').Visible:=True;
      Panel1.Enabled:=True;
      Panel1.BringToFront;
      Panel3.Enabled:=False;
    end;
  else
    begin
      GridMas.FindColumnByFieldName('DeptID').Field.Required:=True;
      GridMas.FindColumnByFieldName('VendorID').Field.Required:=False;
      GridMas.FindColumnByFieldName('DeptName').Field.Visible:=True;
      GridMas.FindColumnByFieldName('DeptName').Visible:=True;
      GridMas.FindColumnByFieldName('VendorName').Field.Visible:=False;
      GridMas.FindColumnByFieldName('VendorName').Visible:=False;
      GridMas.FindColumnByFieldName('PONo').Field.Visible:=False;
      GridMas.FindColumnByFieldName('PONo').Visible:=False;
      GridSub.FindColumnByFieldName('Price').Field.Visible:=False;
      GridSub.FindColumnByFieldName('Price').Visible:=False;
      GridEnter.FindColumnByFieldName('Price').Field.Visible:=False;
      GridEnter.FindColumnByFieldName('Price').Visible:=False;
      Panel3.Enabled:=True;
      Panel3.BringToFront;
      Panel1.Enabled:=False;
    end;
  end;
end;

procedure TfmInOut.FormCreate(Sender: TObject);
begin
  TTabSet(TypeTabSet).TabIndex:=0;
  DMInv.CInOutMas.Params.ParamByName('@InOutType').AsString:=IntToStr(TypeTabSet.TabIndex);
  inherited;
  ShowField(0);
end;

procedure TfmInOut.TypeTabSetChange(Sender: TObject; NewTab: Integer;
  var AllowChange: Boolean);
begin
  AllowChange:=True;
  try ShowWait;
    DMInv.CInOutMas.Active:=False;
    DMInv.CInOutMas.Params.ParamByName('@InOutType').AsString:=IntToStr(NewTab);
    DMInv.CInOutMas.Active:=True;
  finally
    Hidewait;
  end;
  ShowField(NewTab);
end;

procedure TfmInOut.dxDBButtonEdit2ButtonClick(Sender: TObject;
  AbsoluteIndex: Integer);
var i:integer;
begin
  if not LookUp(DMINV.CVPO) then exit;
  With Temp_Data(Format('ReadPo ''%s''',[DMINV.CVPO['PONO']])) do
  try
    DMINV.CInOutMas.Edit;
    DMINV.CInOutMas['VendorID']:=DMINV.CVPO['VenderID'];
    DMINV.CInOutMas['PONo']:=DMINV.CVPO['PONo'];
    Try Active:=True;  except on E:Exception do Error(E.Message) end;
    if recordcount>0 then
    For i:=0 to recordcount-1 do
    Begin
      DMINV.CInOutSub.Append;
      DMINV.CInOutSub['OrderNo']:=FieldByName('OrderNo').Value;
      DMINV.CInOutSub['PartNo']:=FieldByName('PartNo').Value;
      DMINV.CInOutSub['UnitID']:=FieldByName('UnitID').Value;
      DMINV.CInOutSub['Price']:=FieldByName('Price').Value;
      DMINV.CInOutSub['Qty']:=FieldByName('Qty').Value;
      Next;
    end
    else Warn(Format('当前采购单【%s】已全部验收完毕, 没有可验收项。',[DMINV.CInOutMas['PONo']]));
  Finally
    Close;
    Free;
  end;
  DMINV.CVPO.Close;
end;

procedure TfmInOut.APreviewExecute(Sender: TObject);
begin
  Preview(Self.Name+IntToStr(TypeTabSet.TabIndex+1),False, DSMas.DataSet,DSSub.DataSet);
end;

procedure TfmInOut.AAddExecute(Sender: TObject);
begin
  inherited;
  DBEdit1.ReadOnly:=Exists(Format('select 1 from SysConfig where Note%dAutoNo=1 and ID=1',[TTabSet(TypeTabSet).TabIndex+2]));
end;

procedure TfmInOut.dxDBButtonEdit3ButtonClick(Sender: TObject;
  AbsoluteIndex: Integer);
begin
  If LookUp(DMBase.Cemployee) then DMINV.CInOutMas['Handler']:=DMBase.Cemployee['EmployeeC'];
end;

procedure TfmInOut.dxDBButtonEdit2Exit(Sender: TObject);
begin
  if not DMINV.CInOutMasPONo.IsNull then
  if Length(Trim(DMINV.CInOutMasPONo.Value))=0 then
  DMINV.CInOutMasPONo.Clear;
end;

end.

⌨️ 快捷键说明

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