📄 unitdm.pas
字号:
function TDM.zdyProdIFBlank(bInDraw:boolean):boolean; //函数声明 表格是否为空
begin
if bInDraw and (dm.tabProdIncard.recordcount = 0) then
begin
result := true;
exit;
end; //if
if (not bInDraw) and (dm.tabProdOutCard.recordcount = 0) then
begin
result := true;
exit;
end; // if
result:=false;
end;
function TDM.zdyGetProdCheckNum(dCheckDate:TDate;sProdID:string):integer;
var
iThisOut,iThisIn,iNum:integer;
begin
with dm.tabProdMonthCheck do
begin
open;
setkey;
if findkey([dCheckDate,sProdID]) then
//===========================
// 如果没有找到就默认返回0
//===========================
begin
iNum:= fieldbyname('Number').asinteger;
close;
result :=iNum;
exit;
end
else
begin
with dm.qryExe do
begin
close;
sql.clear;
sql.add('select sum(Number) from ProdInCard ');
// sql.add('where CardID between :StartID and :EndID ');
sql.add('where InDate < :StartID ');
sql.add('and ProdID = :ProdID ');
parambyname('StartID').asdate:=frmCommAccSet.dtpFrom.date;
parambyname('ProdID').asstring:=sProdID;
open;
iThisIn:=fields[0].asinteger;
end; //with
//==========================
// 确定本月出库 iThisOut
//==========================
with dm.qryExe do
begin
close;
sql.clear;
sql.add('select sum(Number) from ProdOutCard ');
//sql.add('where CardID between :StartID and :EndID ');
sql.add('where OutDate < :StartID ');
sql.add('and ProdID = :ProdID ');
parambyname('StartID').asdatetime:=frmCommAccSet.dtpFrom.date;
parambyname('ProdID').asstring:=sProdID;
open;
iThisOut:=fields[0].asinteger;
end; //with
//==========================
// 确定第一次结帐起始日期以前的上月库存 iThisNum
//==========================
close;
result:= iThisIn - iThisOut;
// close;
// result := 0;
exit;
end;
end; //with
end;
function TDM.zdyGetProdCheckDate():TDate; //函数声明 查询上月结账日期
var
dCheck:TDate;
begin
with dm.tabProdCheckDiary do
begin
open;
if recordcount = 0 then
begin
Result :=strtodatetime('00-01-01');//frmCommAccSet.dtpFrom.date;
dm.tabProdCheckDiary.close;
//showmessage(' 请输入结帐起始日期');
frmCommAccSet.panel2.caption:='起始日期';
frmCommAccSet.dtpFrom.enabled:=true;
frmCommAccSet.dtpFrom.visible:=true;
exit;
end;
last;
dCheck:=fieldbyname('CheckDate').asdatetime;
filter:='';
filtered:=false;
close;
result :=dCheck;
end;
end;
function TDM.zdyGetjiaoCheckDate():TDate; // 查询上月结账日期
var
dCheck:TDate;
begin
with dm.table2 do
begin
open;
if recordcount = 0 then
begin
Result :=strtodatetime('00-01-01');//Form_Rubb_SumCfg.DateTimePicker_From.date;
dm.table2.close;
//showmessage(' 请输入结帐起始日期');
Form_Rubb_SumCfg.panel2.caption:='起始日期';
Form_Rubb_SumCfg.DateTimePicker_From.visible:=true;
Form_Rubb_SumCfg.DateTimePicker_From.enabled:=true;
exit;
end;
last;
dCheck:=fieldbyname('JDate').asdatetime;
filter:='';
filtered:=false;
close;
result := dCheck;
end;
end;
function TDM.zdyGetmaterCheckDate():TDate; //函数声明 查询上月结账日期
var
dCheck:TDate;
begin
with dm.table3 do
begin
open;
if recordcount = 0 then
begin
Result :=strtodatetime('00-01-01');//Form_Mater_SumCfg.DateTimePicker_From.date;
dm.table3.close;
//showmessage(' 请输入结帐起始日期');
Form_Mater_SumCfg.panel2.caption:='起始日期';
Form_Mater_SumCfg.DateTimePicker_From.visible:=true;
Form_Mater_SumCfg.DateTimePicker_From.enabled:=true;
exit;
end;
last;
dCheck:=fieldbyname('mDate').asdatetime;
filter:='';
filtered:=false;
close;
result := dCheck;
end;
end;
function TDM.zdyGetProdPrice(sProdID:string):real;
var
fPrice:real;
begin
with dm.tabProdDictionary do
begin
open;
setkey;
if not findkey([sProdID]) then
begin
// showmessage('not find key');
close;
result:=0;
exit;
end
else
begin
fPrice:=fieldbyname('SellPrice').asfloat;
close;
result:=fPrice;
end; //if
end; //with
end;
procedure TDM.tabProdSetAccCalcFields(DataSet: TDataSet);
var
iThisOut,iThisNum:Integer;
fPrice,fThisNumTotal,fThisOutTotal:real;
begin
with dataset do
begin
iThisOut:=FieldByName('ThisOut').asinteger;
fPrice:=FieldByName('Price').asfloat;
fThisOutTotal:=iThisOut * fPrice;
fThisOutTotal:=strtofloat(formatfloat('0.00',fThisOutTotal));
fieldbyname('ThisOutTotal').asfloat:=fThisOutTotal;
iThisNum:=fieldbyname('ThisNum').asinteger;
fThisNumTotal:=iThisNum * fPrice;
fThisNumTotal:=strtofloat(formatfloat('0.00',fThisNumTotal));
fieldbyname('ThisNumTotal').asfloat:=fThisNumTotal;
end; //with
end;
procedure TDM.tabRubbMethodCalcFields(DataSet: TDataSet);
begin
if dataset.fieldbyname('style').asboolean then
dataset.fieldbyname('styleName').asstring:='按份数'
else
dataset.fieldbyname('styleName').asstring:='按百分比';
end;
procedure TDM.tabRubbWasteBookCalcFields(DataSet: TDataSet);
var
j,y,b,sum:real;
begin
j:=dataset.fieldbyname('甲班领料').asfloat;
y:=dataset.fieldbyname('乙班领料').asfloat;
b:=dataset.fieldbyname('丙班领料').asfloat;
sum:=j+y+b;
sum:=strtofloat(formatfloat('0.000',sum));
dataset.FieldByName('sumJYB').asfloat := sum;
end;
procedure TDM.tabProdIDHistoryAfterScroll(DataSet: TDataSet);
var
sProdID:string;
begin
if frmProdWasteBook.active then
begin
sProdID:=dm.tabProdIDHistory.fieldbyname('ProdID').asstring;
with dm.tabProdWasteBook do
begin
if active then close;
filter:=format('ProdID = ''%S''',[sProdID]);
if not filtered then filtered := true;
if not active then open;
end; //with
end; //if
end;
procedure TDM.tabMaterDictionaryFilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
if (tabMaterDictionary.FieldByName('简称').asstring =frmCommDictionary.Query1.FieldByName('简称').asstring) then
Accept:=true
else
Accept:=false;
end;
procedure TDM.tabProdDictionaryFilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
if a=1 then
begin
if (tabProdDictionary.FieldByName('ProdName').asstring =frmCommDictionary.Query2.FieldByName('ProdName').asstring)
and (tabProdDictionary.FieldByName('FigID').asstring =frmCommDictionary.Query2.FieldByName('FigID').asstring) then
Accept:=true
else
Accept:=false;
end;
end;
procedure TDM.tabStaffFilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
if (tabStaff.FieldByName('StaffID').asstring =frmCommDictionary.Query3.FieldByName('StaffID').asstring) then
Accept:=true
else
Accept:=false;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -