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

📄 udj.pas

📁 delphi 源码 小型企业管理软件
💻 PAS
📖 第 1 页 / 共 3 页
字号:
    Open;
    Locate('moid',moid,[]);
  end;
end;

procedure TfrmDJ.Q_invHeadBeforeDelete(DataSet: TDataSet);
begin
  //先删除订单明细,再删除订单本身
  ExecQuery('delete from invBody where invid=%s'
    ,[QuotedStr(DataSet.FieldByName('invid').AsString)]);
end;

function  TfrmDJ.GetInvNewID(const invTypeA:string):string;
begin
  Result :=  GetQuery(GetSQLText('getInvid','MISC2')
    ,[GetdjTYpe(invTypeA)
     ,FormatDateTime('YYMMDD',now)
     ]).Fields[0].AsString ;
end;

procedure TfrmDJ.Q_invHeadNewRecord(DataSet: TDataSet);
var
  NewInvID: string;
begin
//  SetNewID(DataSet,'invHead');

  NewInvID := GetInvNewID(invType);

  DataSet.Edit;
  DataSet.FieldByName('invid').AsString := NewInvID ;
  DataSet.FieldByName('invType').AsString := invType;
  DataSet.FieldByName('ioType').AsInteger := GetioTYpe(invType);
  DataSet.FieldByName('spType').AsInteger := GetspTYpe(invType);
  DataSet.FieldByName('invDate').AsDateTime := Date;

  if invType='来料待检' then
    DataSet.FieldByName('ifOK').AsString := '待检'
  else
    DataSet.FieldByName('ifOK').AsString := '否';
  

  DataSet.Post;
  DataSet.Edit;
end;

procedure TfrmDJ.Q_invHeadinvidChange(Sender: TField);
begin
  if varIsNULL(sender.OldValue) then exit;
  ExecQuery('Update invBody set invid=''%s'' where invid=''%s'''
    ,[Sender.Value, sender.OldValue]);
end;

procedure TfrmDJ.FloatField4Change(Sender: TField);
begin
  with Q_invBody do
    FieldByName('amt').AsFloat := FieldByName('Qty').AsFloat *
                                  FieldByName('Price').AsFloat;
end;

function  TfrmDJ.GetFeature(invType:string; idx:integer): integer;
var
  i: integer;
begin
  Result := 0;

  for i:=1 to High(invTypeArr) do
  if invTypeArr[i,1]=invType then begin
    Result := StrToInt(invTypeArr[i,idx]);
    Break;
  end;
end;

function TfrmDJ.GetFeatureStr(invType: string; idx: integer): string;
var
  i: integer;
begin
  Result := '';

  for i:=1 to High(invTypeArr) do
  if invTypeArr[i,1]=invType then begin
    Result := invTypeArr[i,idx];
    Break;
  end;
end;

function  TfrmDJ.GetioTYpe(invType:string): integer;
begin
  Result := GetFeature(invType,2);
end;

function  TfrmDJ.GetspTYpe(invType:string): integer;
begin
  Result := GetFeature(invType,3);
end;

function  TfrmDJ.GetkhTYpe(invType:string): integer;
begin
  Result := GetFeature(invType,4);
end;

function TfrmDJ.GetdjTYpe(invType: string): string;
begin
  Result := GetFeatureStr(invType,5);
end;

procedure TfrmDJ.SeSkinButton39Click(Sender: TObject);
begin
  inherited;
//  PrnSHD(Q_invHead.FieldByName('invid').AsString);
  SeSkinButton50Click(nil);
end;

procedure TfrmDJ.Q_mrpHeadNewRecord(DataSet: TDataSet);
begin
  inherited;
  DataSet.FieldByName('status').AsString := '待批';
end;

procedure TfrmDJ.Q_mrpHeadBeforeDelete(DataSet: TDataSet);
begin
  inherited;
  //先删除mrp明细,再删除采购总表本身
  ExecQuery('delete from mrp where poid=%s'
    ,[QuotedStr(DataSet.FieldByName('poid').AsString)]);
end;

procedure TfrmDJ.SeSkinButton62Click(Sender: TObject);
var
  poid: string;
begin
  inherited;
  poid := Q_mrpHead.FieldByName('poid').AsString ;

  DropTempTables;
  ExecQuery(GetSQLText('approveMRP','MISC')
    ,[QuotedStr(poid)
     ,FormatDateTime('YYMMDD',now)
     ,FormatDateTime('YYYY-MM-DD',now)
     ]);

  FillItems(DM.SQLs, 'select boid from boHead where poid='+QuotedStr(poid));
  ShowMsg('订单['+poid+']相关的采购单据已生成:'+#13#10+DM.SQLs.CommaText);
  ReopenDataset(Q_mrpHead);
end;

procedure TfrmDJ.SetBtnStateMRP;
var
  Editable: Boolean;
begin
  Editable := Q_mrpHead.FieldByName('status').AsString<>'批准';
  SeSkinButton57.Enabled := Editable ;
  SeSkinButton58.Enabled := Editable ;
  SeSkinButton63.Enabled := Editable ;
  SeSkinButton64.Enabled := Editable ;
  SeSkinButton62.Enabled := Editable ;

  if not Editable then begin
    SetDatasetReadonly(Q_mrpHead);
    SetDatasetReadonly(Q_mrp);
  end;
end;

procedure TfrmDJ.Q_mrpHeadAfterScroll(DataSet: TDataSet);
begin
  inherited;
  SetBtnStateMRP;
end;

procedure TfrmDJ.Q_mrpHeadAfterOpen(DataSet: TDataSet);
begin
  inherited;
  SetBtnStateMRP;
end;

procedure TfrmDJ.Q_mrpCalcFields(DataSet: TDataSet);
begin
  inherited;
  with Dataset do
    FieldByName('QtyDiff').AsFloat :=
        FieldByName('QtyNeed').AsFloat
      - FieldByName('InvQtyUsed').AsFloat
      - FieldByName('InvQtyComing').AsFloat

end;

procedure TfrmDJ.SeSkinButton61Click(Sender: TObject);
begin
  inherited;
  PrintFr3(frxReport1,'采购总表模板.fr3');
end;

procedure TfrmDJ.SeSkinButton11Click(Sender: TObject);
begin
  inherited;
  GrandTotal := 0;

  with Q_boBody do
  try
    DisableControls;
    First;
    while not eof do begin
      GrandTotal := GrandTotal + FieldByname('amt').AsFloat;
      Next;
    end;
  finally
    EnableControls;
  end;

  with DM.Q_common do begin
    close;
    SQL.Text := 'select * from kh where khid='
      + QuotedStr(Q_boHead.FieldByName('khid').AsString);
    open;
  end;

  PrintFr3(frxReport1,'采购单模板.fr3');
end;

procedure TfrmDJ.frxReport1GetValue(const VarName: String;
  var Value: Variant);
begin
  inherited;
  if VarName='GrandTotal' then Value := GrandTotal
  else
  if VarName='ItemCount' then Value := Q_invBody.RecordCount 
end;

procedure TfrmDJ.SeSkinButton50Click(Sender: TObject);
begin
  inherited;
  DropTempTables;
  ExecQuery(GetSQLText('PrepareDJPrn','MISC2')
    ,[QuotedStr(Q_invHead.FieldByName('invid').AsString)
     ]);

  with DM.Q_common do begin
    close;
    SQL.Text := 'select * from #temp1 order by spno desc' ;
    open;
  end;
  
  PrintFr3(frxReport1,'仓库单据模板.fr3');
end;

procedure TfrmDJ.wwDBLookupCombo2CloseUp(Sender: TObject; LookupTable,
  FillTable: TDataSet; modified: Boolean);
var
  khid: string;
  spprice: double;
begin
  inherited;

  if modified then begin
    khid := Q_poHead.FieldByName('khid').AsString;
    spprice := GetKHSPPrice(khid,Q_poBody.FieldByName('spno').AsString);

    if spprice>0 then
    with Q_poBody do begin
      Edit;
      FieldByName('price').AsFloat := spprice;
  //    Post;
    end;
  end;
end;

procedure TfrmDJ.Q_mrpqtyPOChange(Sender: TField);
begin
  inherited;
  with Q_mrp do
    FieldByName('amt').AsFloat :=
        FieldByName('QtyPO').AsFloat *  FieldByName('Price').AsFloat;
end;

procedure TfrmDJ.wwDBLookupCombo11CloseUp(Sender: TObject; LookupTable,
  FillTable: TDataSet; modified: Boolean);
begin
  inherited;
  if modified then
  with Q_mrp do begin
    Edit;
    FieldByName('price').AsFloat :=
      GetKHSPPrice(FieldByName('khid').AsString,FieldByName('spno').AsString);

  end;
end;

procedure TfrmDJ.wwDBLookupCombo3CloseUp(Sender: TObject; LookupTable,
  FillTable: TDataSet; modified: Boolean);
begin
  inherited;
  if modified then
  with Q_boBody do begin
    Edit;
    FieldByName('price').AsFloat :=
      GetKHSPPrice(Q_boHead.FieldByName('khid').AsString,FieldByName('ljno').AsString);

  end;
end;

procedure TfrmDJ.SeSkinButton52Click(Sender: TObject);
var
  passID,failID,sResponse: string;
begin
  inherited;
  if Q_invHead.FieldByName('ifOK').AsString='检验完毕' then
    abortMsg('本来料待检单已完成检验和入库程序!');

  if not sure('IQC检验完毕后,系统将根据检验结果自动产生购料入库单。'
    +#13#10#13#10+ '确定检验结果正确吗?') then exit;

  if Q_invHead.FieldByName('khid').AsString='' then
    abortMsg('请选择供应商!');

  passID := GetInvNewID('购料入库');
//  failID := GetInvNewID('购料退货');

  DropTempTables;
  ExecQuery(GetSQLText('IQCMatIn','MISC2')
    ,[QuotedStr(Q_invHead.FieldByName('invid').AsString)
     ,QuotedStr(passID)
     ,QuotedStr(failID)
     ]);

  ReopenDataset(Q_invHead);

  with GetQuery('select invid from invHead where invid=%0:s or invid=%1:s '
    ,[QuotedStr(passID)
     ,QuotedStr(failID)
     ]) do
  begin
    if Locate('invid',passID,[]) then
      sResponse := '购料入库单:'+passID
    else
      sResponse := '购料入库单:(无)';

//    if Locate('invid',failID,[]) then
//      sResponse := sResponse +';'+ '购料退货单:'+failID
//    else
//      sResponse := sResponse +';'+ '购料退货单:(无)';
  end;

  ShowMsg('系统已产生;'+sResponse);
end;

function  TfrmDJ.GetPrice(const khid,spno:string):double;
begin
  Result :=  GetQuery('select price from khPrice where khid=%0:s and spno=%1:s'
    ,[QuotedStr(khid),QuotedStr(spno)
     ]).Fields[0].AsFloat ;
end;

procedure TfrmDJ.wwDBLookupCombo9CloseUp(Sender: TObject; LookupTable,
  FillTable: TDataSet; modified: Boolean);
begin
  inherited;
  if not modified then exit;

  with Q_invBody do begin
    Edit;
    FieldByName('price').AsFloat :=
      GetPrice(Q_invHead.FieldByName('khid').AsString, FieldByName('spno').AsString);
  end;

end;

procedure TfrmDJ.JvDBLookupCombo1CloseUp(Sender: TObject);
begin
  inherited;
  if JvDBLookupCombo1.Text=JvDBLookupCombo1.Hint then exit;
  if Q_invHead.FieldByName('khid').AsString='' then exit;
  if not sure('要从订单对应的采购单据导入料件明细吗?') then exit;

  DropTempTables;
  ExecQuery(GetSQLText('ImportFromBO','MISC2')
    ,[QuotedStr(Q_invHead.FieldByName('invid').AsString)
     ,QuotedStr(Q_invHead.FieldByName('poid').AsString)
     ,QuotedStr(Q_invHead.FieldByName('khid').AsString)
     ]);

  ReopenDataset(Q_invHead);
  JvDBLookupCombo1.Hint := JvDBLookupCombo1.Text;
end;

procedure TfrmDJ.JvDBLookupCombo4CloseUp(Sender: TObject);
begin
  inherited;
  if JvDBLookupCombo4.Text=JvDBLookupCombo4.Hint then exit;
  if not sure('要从订单导入成品明细吗?') then exit;

  DropTempTables;
  ExecQuery(GetSQLText('ImportFromPO','MISC2')
    ,[QuotedStr(Q_invHead.FieldByName('invid').AsString)
     ,QuotedStr(Q_invHead.FieldByName('poid').AsString)
     ]);

  ReopenDataset(Q_invHead);
  JvDBLookupCombo4.Hint := JvDBLookupCombo4.Text;
end;

end.

⌨️ 快捷键说明

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