📄 udj.pas
字号:
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 + -