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

📄 inv_otheropout_b.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 3 页
字号:

unit Inv_OtherOpOut_B;

Interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Base_Entry_Body, Db, ActnList, AdODB, Grids, DBGridEh, ExtCtrls,
  ComCtrls, ToolWin, Mask, StdCtrls, ExtEdit, ExtPrintReport, jpeg;

Type
  TFrm_Inv_OtherOpOut_B = Class(TFrm_Base_Entry_Body)
    Cmbx_WhCodeName: TComboBox;
    Cmbx_Position: TComboBox;
    Label1: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    Edt_Memo: TEdit;
    Label5: TLabel;
    Label6: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Edt_BillNo: TEdit;
    Label10: TLabel;
    Medt_Date: TMaskEdit;
    Lbl_OutName: TLabel;
    Edt_OutCode: TExtEdit;
    Label7: TLabel;
    Cmbx_BillType2CodeName: TComboBox;
    procedure Cmbx_OutTypeExit(Sender: TObject);
    procedure Medt_DateExit(Sender: TObject);
    procedure Act_SaveExecute(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Act_InsertLineExecute(Sender: TObject);
    procedure Edt_OutCodeExit(Sender: TObject);
    procedure Act_ModifyExecute(Sender: TObject);
    procedure Cmbx_WhCodeNameExit(Sender: TObject);
    procedure Edt_OutCodeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormCreate(Sender: TObject);
    procedure Act_PreviewExecute(Sender: TObject);
    procedure Act_PrintExecute(Sender: TObject);
    procedure Cmbx_BillType2CodeNameExit(Sender: TObject);
    procedure AdoQry_BodyAfterPost(DataSet: TDataSet);
    procedure AdoQry_BodyAfterScroll(DataSet: TDataSet);
    procedure FormActivate(Sender: TObject);
    procedure Cmbx_WhCodeNameChange(Sender: TObject);
    procedure Cmbx_PositionChange(Sender: TObject);
    procedure Cmbx_BillType2CodeNameChange(Sender: TObject);
    procedure DBGridEhKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    Modify:Boolean;
    IsPlanPrice:boolean;
    Checked:Boolean;
    BillTypeCode :string;
    procedure disableall(flag:boolean);
    procedure InitCmbx_WhPosition(whCode:string);
    procedure InitCmbx_BillType2CodeName;
    procedure InitGrid;
    { Private declarations }
  public
    HasNegative: String;
    procedure InitForm(AdOConnection:TAdOConnection;FormStatus:String;
      AdoQuery:TAdoQuery);OverRide;
    procedure InitControls;Override;
    procedure SetStatus(CurrentStatus:String;var AnswerStatus,
      EnableControls:String);Override;
  Protected
    procedure SaveData;Override;
  end;

var
  Frm_Inv_OtherOpOut_B: TFrm_Inv_OtherOpOut_B;

implementation
Uses Sys_Global,Inv_OtherOpOut_D,Inv_Global;
{$R *.DFM}

{ TFrm_Inv_OtherOut_B }

procedure TFrm_Inv_OtherOpOut_B.InitCmbx_BillType2CodeName;
begin
  with AdoQry_tmp do
  begin
    Close;
    sql.clear;
    sql.Add('select BillType2Code,BillType2Name '+
            ' from BillType2  '+
            ' where io2=1 ');
    open;
    cmbx_BillType2CodeName.clear;
    if not Eof then
    begin
      First;
      while not Eof do
      begin
        cmbx_BillType2CodeName.Items.Add(fieldbyname('BillType2Code').asstring+' '+fieldbyname('BillType2Name').asstring);
        Next;
      end;
    end;
  end;
end;


procedure TFrm_Inv_OtherOpOut_B.InitCmbx_WhPosition(whCode: string);
begin
  with AdoQry_tmp do
  begin
    Close;
    sql.clear;
    sql.Add('select P.WhPositionCode,P.WhPositionName '+
            ' from WhPosition P,Warehouse W '+
            ' where P.WhCode='''+WhCode+''''+
            ' and p.whCode=W.whCode'+
            ' and p.BackFlushWhP=0 '+            
            ' and P.WhPositionType<>1');
    open;
    cmbx_Position.clear;
    if not Eof then
    begin
      First;
      while not Eof do
      begin
        cmbx_Position.Items.Add(fieldbyname('WhPositionCode').asstring+' '+fieldbyname('WhPositionName').asstring);
        Next;
      end;
    end;
  end;
end;

procedure TFrm_Inv_OtherOpOut_B.InitControls;
var InvBillId : double;
    I:Integer;
    sql_txt:string;
begin
  inherited;
  PriceFields:='InvBillNoTaxPrice,';
  AmountFields:='InvBillNoTaxAmount,';
  InitUsableWHCmbx(AdoQry_Tmp,UserCode,Cmbx_WhCodeName,False);
  InitCmbx_WhPosition(getCode(Cmbx_WhCodeName.text));
  InitCmbx_BillType2CodeName;
  if Status<>'Add' then
  begin
    InvBillId:=AdoQry_Head.fieldbyname('InvBillid').AsFloat;
    act_insertline.enabled:=False;
    act_Deleteline.enabled:=False;
    act_Modify.enabled:=False;
    DBGridEh.ReadOnly:=True;
    Edt_Memo.Enabled:=False;
    Cmbx_WhCodeName.Enabled:=False;
    Cmbx_Position.enabled:=False;
    Cmbx_BillType2CodeName.enabled:=False;
    edt_Billno.Enabled :=False;
//    ChckBx_PriceAdjust.checked:=(AdoQry_Head.fieldbyname('PriceAdjustBill').Asinteger=1);
  end
  else
  begin
    InvBillId:=-1;
    act_insertline.enabled:=True;
    act_Deleteline.enabled:=True;
    act_Modify.enabled:=True;
    DBGridEh.ReadOnly:=True;
    Edt_Memo.Enabled:=True;
    Cmbx_WhCodeName.Enabled:=True;
    Cmbx_Position.enabled:=True;
    Cmbx_BillType2CodeName.enabled:=True;
    edt_Billno.Enabled :=False;
//    ChckBx_PriceAdjust.checked:=False;
  end;
  with AdoQry_Body do
  begin
    Close;
    sql.clear;
    sql_txt:='select B.InvBillId,B.InvBillLineNo,B.InvBillQty,B.ItemCode, '+
                  ' I.ItemName,U.UomName,B.InvBillNoTaxPrice,'+
                  ' B.InvBillNoTaxAmount,IB.InvBillMonth,'+
                  ' B.BatchNo,'+
                  ' B.BillLineReMArk '+
            ' from InvOutBillLine B '+
            ' Left join Item I '+
            '   on B.ItemCode=I.ItemCode '+
            ' Left Join Uom U '+
            '   on I.UomCode=U.UomCode '+
            ' Left JOin InvOutBill IB '+
            '   on IB.InvBillid=B.InvBillid '+
            ' where B.InvBillId='+floattostr(InvBillId);
    sql.Add(sql_txt);
    open;

    if Status='Add' then
      for I:=0 to recordCount-1 do
      begin
        edit;
        fieldbyname('BatchNo').asstring:='';
        post;
      end;
  end;

{  With AdoQry_tmp do
  begin
    Close;
    SQL.clear;
    Sql.Add(' select Count(*) As RecCount'+
              ' from InvOutBillLine B,Item I,Uom U '+
             ' where B.InvBillId='+floattostr(InvBillId)+
                 '   and B.ItemCode=I.ItemCode '+
                 '   and I.UomCode=U.UomCode ');
    Open;
    If (fieldbyname('RecCount').AsInteger>0) and (Status='AllEdit') then
    begin
      Cmbx_WhCodeName.Enabled:=False;
      Cmbx_Position.Enabled:=False;
      Edt_OutCode.Enabled:=False;
      chckbx_PriceAdjust.Enabled:=False;
      Cmbx_BillType2CodeName.Enabled:=False;
      Medt_Date.Enabled:=False;
      Edt_BillNo.Enabled:=False;
    end
    Else
    begin
      Cmbx_WhCodeName.Enabled:=True;
      Cmbx_Position.Enabled:=True;
      Edt_OutCode.Enabled:=True;
      chckbx_PriceAdjust.Enabled:=True;      
      Cmbx_BillType2CodeName.Enabled:=True;
      Medt_Date.Enabled:=True;
      Edt_BillNo.Enabled:=False;
    end;
  end;  }
  Edt_Memo.Enabled:=True;
  with AdoQry_Head do
  begin
    InitCmBxText(Cmbx_WhCodeName,GetCode(fieldbyname('WhCodeName').asstring));
    InitCmBxText(Cmbx_Position,GetCode(fieldbyname('WhPositionName').asstring));
    InitCmBxText(Cmbx_BillType2CodeName,GetCode(fieldbyname('BillType2CodeName').asstring));
    {medt_Date.text:=FormatDateTime('yyyy.mm.dd',Now);
    if status<>'Add' then
      Edt_BillNo.Text:=fieldbyname('InvBillno').asstring
    else
      edt_Billno.Text :='';}
    If Status<>'Add' then
    begin
      Edt_BillNo.Text:=fieldbyname('InvBillNo').AsString ;
      medt_Date.text:=FormatDateTime('yyyy.mm.dd',strtodatetime(fieldbyname('InvBillDate').asstring));
    end
    Else
    begin
      Edt_BillNo.Text:='';
      medt_Date.text:=FormatDateTime('yyyy.mm.dd',Now);
    end;
    edt_OutCode.Text:=getCode(fieldbyname('Vendorflag').asstring);
    lbl_OutName.Caption :=getName(fieldbyname('Vendorflag').asstring);
    edt_memo.Text :=fieldbyname('InvBillRemArk').asstring;
  end;
end;

procedure TFrm_Inv_OtherOpOut_B.InitForm(AdOConnection: TAdOConnection;
  FormStatus: String; AdoQuery: TAdoQuery);
begin
  inherited;
  InitGrid;
  BillTypeCode:=Param1;
  HasNegative:=Param2;
  Frm_Entry_Detail:=TFrm_Inv_OtherOpOut_D.Create(self);
  Frm_Entry_Detail.SetSysParam(userCode,ModuleCode,menuid,LoginDate);
  Frm_Entry_Detail.SetUserParam(Param1,Param2,Param3,Param4,Param5,Param6);
end;

procedure TFrm_Inv_OtherOpOut_B.Cmbx_OutTypeExit(Sender: TObject);
begin
  inherited;
  if Edt_OutCode.text='' then
  begin
    Edt_OutCode.SetFocus;
    exit;
  end;
  VendorCodeCheck(Edt_OutCode);
end;

procedure TFrm_Inv_OtherOpOut_B.Medt_DateExit(Sender: TObject);
begin
  inherited;
 If not WHClsPeriodCheck(AdoQry_Tmp,GetCode(Cmbx_WhCodeName.text),
                   Copy(Medt_Date.Text,1,7)) then
 begin
   if medt_Date.CanFocus then
      Medt_Date.SetFocus;
   Abort;
 end
end;

procedure TFrm_Inv_OtherOpOut_B.Act_SaveExecute(Sender: TObject);

begin
//inherited;
  //是否有记录    Act_SaveExecute
  SaveData;
  act_Check.Enabled:=True;
end;

procedure TFrm_Inv_OtherOpOut_B.SaveData;
var
  Billid,Billno,OutFieldName,OutFieldValue:string;
//OutFieldName用来确认出库对象代码所对应的字段
  BeforeSaveError:boolean;
//用来确认是否是在验证阶段出错还是存盘阶段出错。
  M: integer;

⌨️ 快捷键说明

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