📄 unit_mater_main.pas
字号:
if Qry_Main.fieldbyname('日期').asdatetime <=dm.zdyGetmaterCheckDate then //d_LimDate then
begin
showmessage('不允许修改结账日期之前的记录!'+#13+#13+'上次结帐日期是:'+datetostr(dm.zdyGetmaterCheckDate));
perform(WM_NEXTDLGCTL,0,0);
exit;
end;
n_id:=qry_Main.fieldbyname('标识号').asinteger;
if not qry_main.FieldByName('出入标识').asboolean then // 是入库
begin
with Form_Mater_InMod.Tab_InCard do
begin
open;
setkey;
findkey([n_id]);
end; //with
Form_Mater_InMod.Tab_InCard.edit;
Form_Mater_InMod.showmodal;
end
else
begin
with Form_Mater_OutMod.Tab_OutCard do
begin
open;
setkey;
findkey([n_id]);
end; //with
Form_Mater_OutMod.Tab_OutCard.edit;
Form_mater_OutMod.showmodal;
end;
end;
procedure TForm_Mater_Main.Edit_materChange(Sender: TObject);
var
s_date:string;
begin
//为ComboBox_Indate填写数据
with Qry_exe do
begin
close;
sql.Clear;
sql.Add('select 领料单号 from 原材料台帐 ');
sql.Add('where 材料名称 = :v_mater and 最后领料标识 = :v_LastOutCardFlag and 库存 > 0 ');
sql.Add('group by 领料单号 ');
parambyname('v_mater').asstring:=edit_mater.text;
parambyname('v_LastOutCardFlag').asboolean:=true;
open;
if recordcount = 0 then exit;
ComboBox_Indate.Items.clear;
while not eof do
begin
s_date:=fieldbyname('领料单号').asstring+'kk';
s_date[8]:=s_date[6];
s_date[7]:=s_date[5];
s_date[5]:=s_date[4];
s_date[4]:=s_date[3];
s_date[3]:='-';
s_date[6]:='-';
ComboBox_InDate.Items.append(s_date);
next;
end; //while
end; //with
ComboBox_Indate.ItemIndex:=0;
//为ComboBox_Per 填写数据
with Qry_exe do
begin
close;
sql.Clear;
sql.Add('select 单价 from 原材料台帐 ');
sql.Add('where 材料名称 = :v_mater and 最后领料标识 = :v_LastOutCardFlag and 库存 > 0 ');
sql.Add('and 领料单号 = :v_OutCardNum ');
sql.Add('group by 单价 ');
parambyname('v_mater').asstring:=edit_mater.text;
parambyname('v_LastOutCardFlag').asboolean:=true;
parambyname('v_OutCardNum').asstring:=formatdatetime('yymmdd',(strtodate(ComboBox_Indate.text)));
open;
if recordcount = 0 then exit;
ComboBox_Per.Items.clear;
while not eof do
begin
ComboBox_Per.Items.append(floattostr(fieldbyname('单价').asfloat));
next;
end; //while
end;//with
ComboBox_Per.ItemIndex:=0;
end;
procedure TForm_Mater_Main.N_QryIOClick(Sender: TObject);
begin
Form_Mater_Qry.ShowModal;
end;
procedure TForm_Mater_Main.N_StockViewClick(Sender: TObject);
begin
Form_Mater_StockView.showmodal;
end;
procedure TForm_Mater_Main.N_DicMaterClick(Sender: TObject);
begin
Form_Mater_Dic.Tab_Dic.open;
Form_Mater_Dic.showmodal;
end;
procedure TForm_Mater_Main.N_SumClick(Sender: TObject);
begin
Form_mater_summima.ShowModal;
end;
procedure TForm_Mater_Main.N16Click(Sender: TObject);
begin
if not Qry_Main.Active then
begin
showmessage('请先调出某个原材料的台帐');
exit;
end; //if
Form_Mater_PrtIO.QRLabel_Date.Caption:=datetostr(date);
Form_Mater_PrtIO.QuickRep1.Preview;
end;
procedure TForm_Mater_Main.N8Click(Sender: TObject);
begin
if not Qry_Main.Active then
begin
showmessage('请先调出某个原材料的台帐');
exit;
end; //if
if messagedlg('打印当前所显示原材料的台帐.'+#13+#13+'要继续吗?',mtinformation, [mbyes,mbno],0) = mryes then
begin
Form_Mater_PrtIO.QRLabel_Date.Caption:=datetostr(date);
Form_Mater_PrtIO.QuickRep1.Print;
end; //if
end;
procedure TForm_Mater_Main.Qry_MainAfterScroll(DataSet: TDataSet);
begin
StatusBar1.Panels[1].Text:=format('共找到 %d 张入库单和出库单, 您现在选中的是第 %d 张。',[Qry_Main.recordcount, Qry_Main.recno]);
end;
procedure TForm_Mater_Main.N13Click(Sender: TObject);
begin
Form_Mater_AboutBox.showmodal;
end;
procedure TForm_Mater_Main.ComboBox_IndateChange(Sender: TObject);
begin
//为ComboBox_Per 填写数据
with Qry_exe do
begin
close;
sql.Clear;
sql.Add('select 单价 from 原材料台帐 ');
sql.Add('where 材料名称 = :v_mater and 最后领料标识 = :v_LastOutCardFlag and 库存 > 0 ');
sql.Add('and 领料单号 = :v_OutCardNum ');
sql.Add('group by 单价 ');
parambyname('v_mater').asstring:=edit_mater.text;
parambyname('v_LastOutCardFlag').asboolean:=true;
parambyname('v_OutCardNum').asstring:=formatdatetime('yymmdd',(strtodate(ComboBox_Indate.text)));
open;
ComboBox_Per.Items.clear;
while not eof do
begin
ComboBox_Per.Items.append(floattostr(fieldbyname('单价').asfloat));
next;
end; //while
end;//with
ComboBox_Per.ItemIndex:=0;
end;
procedure TForm_Mater_Main.N19Click(Sender: TObject);
var
s_Pass:string;
b_Check:boolean;
begin
b_check:=false;
s_Pass:=inputbox('密码','请输入会计密码:','');
with Qry_exe do
begin
close;
sql.Clear;
sql.Add('select * from 人员登陆表 where 职务 = "会计" ');
open;
while not eof do
begin
if s_pass = fieldbyname('密码').asstring then
b_check := true;
next;
end;//while
end; //with
if not b_check then
begin
messagedlg('您所输入的会计密码不正确 或者没有注册!', mterror, [mbok], 0 );
exit;
end; //if
Form_Mater_SumCancel.Panel_Rep.Caption:=' 您上次结帐的日期为 ' +datetostr(d_LimDate);
Form_Mater_SumCancel.showmodal;
end;
procedure TForm_Mater_Main.N_InitClick(Sender: TObject);
begin
// Form_Mater_SysPass.showmodal;
end;
procedure TForm_Mater_Main.N2Click(Sender: TObject);
var
n_id ,lingliao_id :string;
abc_id, danjia_id :real;
begin
Form_Mater_tishi.Visible:=True;
Form_Mater_tishi.show;
with Qry_lastture do
begin
close;
sql.clear;
sql.Add('select 材料名称,领料单号,单价,min( 库存)as abc from 原材料台帐 ');
sql.Add('group by 材料名称,领料单号,单价');
open;
end; //with
with Qry_lastture do
begin
open;
while not eof do
begin
n_id:= Qry_lastture.fieldbyname('材料名称').asstring;
lingliao_id:= Qry_lastture.fieldbyname('领料单号').asstring;
danjia_id:= Qry_lastture.fieldbyname('单价').asfloat;
abc_id:= Qry_lastture.fieldbyname('abc').asfloat;
Qry_gailastflag. close;
Qry_gailastflag. sql.Clear;
Qry_gailastflag. sql.Add('select * from 原材料台帐 ');
Qry_gailastflag. sql.Add('where 材料名称 = :v_id and 领料单号=:danhao and 单价=:danjia and 库存=:bc');
Qry_gailastflag. parambyname('v_id').asstring:=n_id;
Qry_gailastflag. parambyname('danhao').asstring:=lingliao_id;
Qry_gailastflag. parambyname('danjia').asfloat:=danjia_id;
Qry_gailastflag. parambyname('bc').asfloat:=abc_id;
Qry_gailastflag. open;
if Qry_gailastflag . fieldbyname('最后领料标识').asboolean =true then
begin
next;
continue;
end;
Qry_gailastflag. close;
Qry_gailastflag. sql.Clear;
Qry_gailastflag. sql.Add('update 原材料台帐 set 最后领料标识 = :v_LastOutCardFlag ');
Qry_gailastflag. sql.Add('where 材料名称 = :v_id and 领料单号=:danhao and 单价=:danjia and 库存=:bc');
Qry_gailastflag. parambyname('v_LastOutCardFlag').asboolean:=true;
Qry_gailastflag. parambyname('v_id').asstring:=n_id;
Qry_gailastflag. parambyname('danhao').asstring:=lingliao_id;
Qry_gailastflag. parambyname('danjia').asfloat:=danjia_id;
Qry_gailastflag. parambyname('bc').asfloat:=abc_id;
Qry_gailastflag. execsql;
next;
end;//while
end; //with
Form_Mater_tishi.close;
exit;
end;
procedure TForm_Mater_Main.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
key:=#0;
perform(WM_NEXTDLGCTL,0,0);
end; //if
end;
procedure TForm_Mater_Main.Edit_indexEnter(Sender: TObject);
begin
TEdit(Sender).color:=claqua;
end;
procedure TForm_Mater_Main.Edit_indexExit(Sender: TObject);
begin
TEdit(Sender).color:=clwindow;
end;
procedure TForm_Mater_Main.Edit_indexChange(Sender: TObject);
begin
with Qry_Exe do
begin
close;
sql.clear;
sql.add('select * from 原材料字典 where 简称 = :v_index ');
parambyname('v_index').asstring:=Edit_Index.text;
open;
if recordcount = 0 then exit;
Edit_mater.text:= fieldbyname('材料名称').asstring;
end;//with
end;
procedure TForm_Mater_Main.N_AutoClick(Sender: TObject);
var
s:string;
begin
if not Form_Rubb_QryProcCard.Qry_QryProcCard.Active then
begin
messagedlg('请先打开胶料部分的工艺卡!',mtwarning,[mbok],0);
exit;
end; //if
// showmessage(inttostr(Form_Rubb_QryProcCard.Qry_QryProcCard.fieldbyname('配方编号').asinteger));
if Form_Rubb_Main.dbePrice.text <> '' then
begin
showmessage('这张工艺卡已经领过料了!');
exit;
end; //if
s:= Form_Rubb_QryProcCard.Qry_QryProcCard.fieldbyname('配方编号').asstring;
if s='' then
begin
showmessage('库内没有保存配方单,请输入配方单!');
exit;
end;
Form_Rubb_AutoCard.Edit_MixCardNum.text:=inttostr(Form_Rubb_QryProcCard.Qry_QryProcCard.fieldbyname('配方编号').asinteger);
Form_Rubb_AutoCard.showmodal;
end;
procedure TForm_Mater_Main.N18Click(Sender: TObject);
begin
{
if messagedlg('本操作会清除库存量为零的入库记录,要继续吗?',mtwarning,[mbyes,mbno],0) = mryes then
begin
with qry_exe do
begin
close;
sql.clear;
sql.add('delete from 原材料台帐 where 剩余库存 = 0 and 最后领料标识 = :bT ');
parambyname('bT').asboolean:=false;
execsql;
end; //with
showmessage('已经完成了清除工作!');
end //if
else
showmessage('您取消了操作!');
}
end;
procedure TForm_Mater_Main.N21Click(Sender: TObject);
begin
frmMsumlist.showmodal;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -