📄 thunit.pas
字号:
procedure TThForm.edit2keydown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (key = vk_return) or (key = vk_down) then
begin
edit3.SetFocus;
end;
if key =vk_up then
begin
edit1.SetFocus;
end;
end;
procedure TThForm.edit3keydown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (key=vk_return) or (key = vk_down) then
begin
combobox2.SetFocus;
end;
if key=vk_up then
begin
edit2.SetFocus;
end;
end;
procedure TThForm.combobox2keydown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_return then
begin
edit4.SetFocus;
end;
if key=vk_up then
begin
edit3.SetFocus;
end;
end;
procedure TThForm.edit4keydown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (key = vk_return) or (key = vk_down) then
begin
Button1.SetFocus;
end;
if key=vk_up then
begin
combobox2.SetFocus;
end;
end;
procedure TThForm.combobox3keydown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = vk_return then
begin
datetimepicker2.SetFocus;
end;
end;
procedure TThForm.DateTimePicker2keydown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = vk_return then
begin
edit5.SetFocus;
end;
if key = vk_up then
begin
combobox3.SetFocus;
end;
end;
procedure TThForm.edit5keydown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (key = vk_return) or (key = vk_down) then
begin
edit6.SetFocus;
end;
if key = vk_up then
begin
datetimepicker2.SetFocus;
end;
end;
procedure TThForm.edit6keydown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (key = vk_return) or (key = vk_down) then
begin
edit7.SetFocus;
end;
if key =vk_up then
begin
edit5.SetFocus;
end;
end;
procedure TThForm.edit7keydown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (key=vk_return) or (key = vk_down) then
begin
combobox4.SetFocus;
end;
if key=vk_up then
begin
edit6.SetFocus;
end;
end;
procedure TThForm.combobox4keydown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_return then
begin
edit8.SetFocus;
end;
if key=vk_up then
begin
edit7.SetFocus;
end;
end;
procedure TThForm.edit8keydown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (key = vk_return) or (key = vk_down) then
begin
Button3.SetFocus;
end;
if key=vk_up then
begin
combobox4.SetFocus;
end;
end;
procedure TThForm.Button3Click(Sender: TObject);
var
sl:integer;
insertsl:double;
km:string;
begin
if (edit5.Text = '') or (edit6.Text = '') or (edit7.Text ='') or (edit8.Text = '')or(combobox3.Text = '') then
exit;
if dmdata.qsjzADOQuery.FieldByName('dbegin').AsDateTime > datetimepicker2.Date then
begin
showmessage('日期已小于本月范围,请重新选择!');
datetimepicker2.Date:=dmdata.ADOTable_T_user['date'];
exit;
end;
if(dmdata.qsjzADOQuery.FieldByName('dend').AsDateTime+1) < datetimepicker2.Date then
begin
showmessage('日期已大于本月范围,请重新选择!');
datetimepicker2.Date:=dmdata.ADOTable_T_user['date'];
exit;
end;
with dmdata.KqqsADOQuery do
begin
close;
sql.Clear;
sql.Add('select a.ql,b.ms_id,b.ql_id,b.rq,b.sl,b.qxhm,b.jxhm,b.kqbm from t_bjql as a inner join t_kqb as b on a.km = b.ql_id where (qt = 1) and (id=:a)' );
parameters.ParamByName('a').Value:=strtoint(labelid2.Caption);
open;
if RecordCount > 0 then
begin
sl:= FieldByName('sl').AsInteger;
if ((strtofloat(edit6.Text)-strtofloat(FieldByName('qxhm').AsString))<0) or (strtofloat(edit7.Text)>strtofloat(FieldByName('jxhm').AsString)) then
begin
showmessage('录入起始号码超出起始或结束号码');
exit;
end;
insertsl:=(strtofloat(edit6.Text)-strtofloat(FieldByName('qxhm').AsString));
//showmessage(floattostr(frac((strtofloat(edit2.Text)-strtofloat(FieldByName('qxhm').AsString))/unm)));
if frac((strtofloat(edit6.Text)-strtofloat(FieldByName('qxhm').AsString))/unm)<>0 then
begin
showmessage('你所输入的起始号码不合法');
exit;
end;
if (sl < strtofloat(edit5.Text)) then
begin
showmessage('领用数量超出部门未消数量');
exit;
end;
if (trim(edit6.Text)=trim(FieldByName('qxhm').AsString)) then
begin
with dmdata.KqeditADOQuery do
begin
close;
sql.Clear;
sql.Add('update t_kqb set sl = :b,qxhm = :c where id = :a');
parameters.ParamByName('a').Value:=strtofloat(labelid2.Caption);
parameters.ParamByName('b').Value:=sl-strtofloat(edit5.Text);
parameters.parambyname('c').value:=formatfloat(dm.DMData.pjlenstr,strtofloat(floattostr(strtofloat(edit7.text)+1)));
Execsql;
end;
with dmdata.KqeditADOQuery do
begin
close;
sql.Clear;
sql.Add('update t_ms_jl set sl = :b,qxhm = :c where id = :a');
parameters.ParamByName('a').Value:=strtofloat(labelid3.Caption);
parameters.ParamByName('b').Value:=sl-strtofloat(edit5.Text);
parameters.parambyname('c').value:=formatfloat(dm.DMData.pjlenstr,strtofloat(floattostr(strtofloat(edit7.text)+1)));
Execsql;
end;
end
else
begin
with dmdata.kqeditADOQuery do
begin
close;
sql.Clear;
sql.Add('insert into t_kqb(ms_id,ql_id,rq,sl,qxhm,jxhm,kqbm,qt) values(:a,:b,:c,:d,:e,:f,:g,:h)');
parameters.ParamByName('a').Value:=dmdata.KqqsADOQuery.fieldbyname('ms_id').AsInteger;
parameters.ParamByName('b').Value:=dmdata.KqqsADOQuery.fieldbyname('ql_id').AsString;
parameters.parambyname('c').value:=datetostr(datetimepicker1.Date);
parameters.ParamByName('d').Value:=insertsl/unm;
parameters.ParamByName('e').Value:=formatfloat(dm.DMData.pjlenstr,strtofloat(dmdata.KqqsADOQuery.fieldbyname('qxhm').AsString));
parameters.ParamByName('f').Value:=formatfloat(dm.DMData.pjlenstr,strtofloat(floattostr(strtofloat(edit6.Text)-1)));
parameters.ParamByName('g').Value:=dmdata.KqqsADOQuery.fieldbyname('kqbm').AsString;
parameters.ParamByName('h').Value:=1;
Execsql;
end;
with dmdata.KqeditADOQuery do
begin
close;
sql.Clear;
sql.Add('update t_kqb set sl = :b,qxhm = :c where id = :a');
parameters.ParamByName('a').Value:=strtofloat(labelid2.Caption);
parameters.ParamByName('b').Value:=sl-insertsl/unm-strtofloat(edit5.Text);
parameters.parambyname('c').value:=formatfloat(dm.DMData.pjlenstr,strtofloat(floattostr(strtofloat(edit7.text)+1)));
Execsql;
end;
with dmdata.kqeditADOQuery do
begin
close;
sql.Clear;
sql.Add('insert into t_ms_jl(ql_id,rq,sl,qxhm,jxhm,lybm,qt,jbr) values(:b,:c,:d,:e,:f,:g,:h,:a)');
parameters.ParamByName('a').Value:=trim(edit8.text);//dmdata.KqqsADOQuery.fieldbyname('ms_id').AsInteger;
parameters.ParamByName('b').Value:=dmdata.KqqsADOQuery.fieldbyname('ql_id').AsString;
parameters.parambyname('c').value:=datetostr(datetimepicker1.Date);
parameters.ParamByName('d').Value:=insertsl/unm;
parameters.ParamByName('e').Value:=formatfloat(dm.DMData.pjlenstr,strtofloat(dmdata.KqqsADOQuery.fieldbyname('qxhm').AsString));
parameters.ParamByName('f').Value:=formatfloat(dm.DMData.pjlenstr,strtofloat(floattostr(strtofloat(edit6.Text)-1)));
parameters.ParamByName('g').Value:=dmdata.KqqsADOQuery.fieldbyname('kqbm').AsString;
parameters.ParamByName('h').Value:=2;
Execsql;
end;
with dmdata.KqeditADOQuery do
begin
close;
sql.Clear;
sql.Add('update t_ms_jl set sl = :b,qxhm = :c where id = :a');
parameters.ParamByName('a').Value:=strtofloat(labelid3.Caption);
parameters.ParamByName('b').Value:=sl-insertsl/unm-strtofloat(edit5.Text);
parameters.parambyname('c').value:=formatfloat(dm.DMData.pjlenstr,strtofloat(floattostr(strtofloat(edit7.text)+1)));
Execsql;
end;
end;
end;
with dmdata.BmADOQuery do
begin
close;
sql.Clear;
sql.Add('select * from t_bm where dwbm = :a');
parameters.ParamByName('a').Value:=trim(combobox4.Text);
open;
km:=trim(fieldbyname('km').AsString);
end;
with dmdata.xhADOQuery do
begin
close;
sql.Clear;
sql.Add('insert into t_th(ql_id,rq,sl,qxhm,jxhm,thbm,qt,thr,ms_id,th_qt) values(:a,:b,:c,:d,:e,:f,:g,:h,:i,:l)');
parameters.ParamByName('a').Value:=dmdata.KqqsADOQuery.fieldbyname('ql_id').AsString;
parameters.parambyname('b').value:=datetostr(datetimepicker2.Date);
parameters.ParamByName('c').Value:=strtofloat(edit5.Text);
parameters.ParamByName('d').Value:=formatfloat(dm.DMData.pjlenstr,strtofloat(edit6.Text));
parameters.ParamByName('e').Value:=formatfloat(dm.DMData.pjlenstr,strtofloat(edit7.Text));
parameters.ParamByName('f').Value:=trim(km);
parameters.ParamByName('g').Value:=strtofloat(labelid2.Caption);
parameters.ParamByName('h').Value:=trim(edit8.Text);
parameters.ParamByName('i').Value:=dmdata.KqqsADOQuery.fieldbyname('ms_id').AsInteger;
parameters.ParamByName('l').Value:=1;
Execsql;
end;
end;
delnewll;
thbmnewll;
combobox4change(Sender);
bmthnewll;
kqhznewll;
combobox3.Text:='';
edit5.Text:='';
edit6.Text:='';
edit7.Text:='';
edit8.Text:='';
edit5.SetFocus;
button3.Enabled:=false;
end;
procedure TThForm.dbgrideh5cellclick(Column: TColumnEh);
begin
with dmdata.thKqADOQuery do
begin
if RecordCount > 0 then
begin
labelid2.Caption:=floattostr(dmdata.thKqADOQuery.fieldbyname('id').AsInteger);
labelid3.Caption:=floattostr(dmdata.thKqADOQuery.fieldbyname('ms_id').AsInteger);
combobox3.Text:= dmdata.thKqADOQuery.fieldbyname('ql').AsString;
edit5.Text:=floattostr(dmdata.thKqADOQuery.fieldbyname('sl').AsInteger);
edit6.Text:=dmdata.thKqADOQuery.fieldbyname('qxhm').AsString;
edit7.Text:=dmdata.thKqADOQuery.fieldbyname('jxhm').AsString;
end;
end;
edit8.Text:='';
with dmdata.BjqlADOQuery do
begin
close;
sql.Clear;
sql.Add('select * from t_bjql where ql= :a');
parameters.ParamByName('a').Value:=trim(combobox3.Text);
open;
unm:= fieldByName('mbf').AsInteger;
end;
button3.Enabled:=true;
button4.Enabled:=false;
end;
procedure TThForm.Button4Click(Sender: TObject);
var
kqsl:integer;
kqqxhm:string;
begin
if (edit5.Text = '') or (edit6.Text = '') or (edit7.Text ='') or (edit8.Text = '') or (combobox3.Text='') then
exit;
if dmdata.qsjzADOQuery.FieldByName('dbegin').AsDateTime > datetimepicker2.Date then
begin
showmessage('日期已小于本月范围,请重新选择!');
datetimepicker2.Date:=dmdata.ADOTable_T_user['date'];
exit;
end;
if (dmdata.qsjzADOQuery.FieldByName('dend').AsDateTime+1) < datetimepicker2.Date then
begin
showmessage('日期已大于本月范围,请重新选择!');
datetimepicker2.Date:=dmdata.ADOTable_T_user['date'];
exit;
end;
//showmessage(floattostr(frac((strtofloat(edit2.Text)-strtofloat(dmdata.LyADOQuery.FieldByName('qxhm').AsString))/unm)));
if frac((strtofloat(edit6.Text)-strtofloat(qxhm))/unm)<>0 then
begin
showmessage('你所输入的起始号码不合法');
exit;
end;
if (sl < strtofloat(edit5.Text)) then
begin
showmessage('数量太大');
exit;
end;
if ((strtofloat(edit6.Text)-strtofloat(qxhm))<0) or (strtofloat(edit7.Text)>strtofloat(jxhm)) then
begin
showmessage('录入起始号码超出起始或结束号码');
exit;
end;
if (sl=strtofloat(edit5.Text))and(qxhm=edit6.Text) then
begin
with dmdata.editADOQuery do
begin
close;
sql.Clear;
sql.Add('delete * from t_th where id=:a');
parameters.ParamByName('a').Value:=id;
execsql;
end;
end
else
begin
if (qxhm=edit6.Text) then
begin
with dmdata.EditADOQuery do
begin
close;
sql.Clear;
sql.Add('update t_th set sl = :b,qxhm = :c where id = :a');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -