G
gks
Unregistered / Unconfirmed
GUEST, unregistred user!
请看下面的代码:
if DataModule1.Table4.Active then
DataModule1.Table4.Close;
DataModule1.Table4.EmptyTable;
DataModule1.Table4.Active:=True;
s:=djm.Text;
DataModule1.Table2.Active:=True;
if DataModule1.Table2.Locate('xm',s,[loPartialKey]) then
begin
tab5open:=DataModule1.Table5.Active;
if not DataModule1.Table5.Active then
DataModule1.Table5.Active:=True;
sql:='select hxjq, yxsj, syjq, bz from tab4 where xm='+''''+s+'''';
DataModule1.Query2.Close;
DataModule1.Query2.SQL.Clear;
DataModule1.Query2.SQL.Add(sql);
DataModule1.Query2.Prepare;
DataModule1.Query2.Open;
recordnum:=DataModule1.Query2.RecordCount;
if recordnum=0 then
begin
DataModule1.Table4.Insert;
DataModule1.Table4.FieldValues['bh']:=1;
DataModule1.Table4.FieldValues['jqzl']:='换休假';
DataModule1.Table4.FieldValues['kyjq']:=0;
DataModule1.Table4.FieldValues['jqqx']:=0;
DataModule1.Table4.FieldValues['bz']:='没有换修';
DataModule1.Table4.Post;
end;
if recordnum>0 then
begin
for i:=1 to recordnum do
begin
DataModule1.Table4.Insert;
DataModule1.Table4.FieldValues['bh']:=i;
DataModule1.Table4.FieldValues['jqzl']:='换休假';
DataModule1.Table4.FieldValues['kyjq']:=DataModule1.Query2.FieldValues['syjq'];
DataModule1.Table4.FieldValues['jqqx']:=DataModule1.Query2.FieldValues['yxsj'];
DataModule1.Table4.FieldValues['bz']:=DataModule1.Query2.FieldValues['bz'];
DataModule1.Table4.Post;
if not DataModule1.Query2.Eof then DataModule1.Query2.Next;
end;
end;
DataModule1.Table5.Active:=tab5open; //table5:tab4.db 换休条
DataModule1.Query2.Close;
//工龄假
DataModule1.Table4.Append;
DataModule1.Table4.FieldValues['bh']:=1000;
DataModule1.Table4.FieldValues['jqzl']:='工龄假';
DataModule1.Table4.FieldValues['bz']:='';
ts:= DataModule1.Table2.FieldValues['glj'];
DataModule1.Table4.FieldValues['kyjq']:= ts;
yxsj:=DataModule1.Table2.FieldValues['kssj'];
yxsj:=yxsj+365;
DataModule1.Table4.FieldValues['jqqx']:=yxsj;
此前table2已经打开。
一怪:如果query2查不到记录,也就是recordnum=0,第一次执行有错误产生,告诉我
table4没有打开,在第一处有下划线的地方是打开了table4,第二次执行,居
然好了,没有改过任何东西!!
二怪:如果query2查到了记录,也就是recordnum>0,执行到第二处有下划线的地方,
告诉我类型转换错误,没查到记录为什么没有这样的错误??
请赐教!!
if DataModule1.Table4.Active then
DataModule1.Table4.Close;
DataModule1.Table4.EmptyTable;
DataModule1.Table4.Active:=True;
s:=djm.Text;
DataModule1.Table2.Active:=True;
if DataModule1.Table2.Locate('xm',s,[loPartialKey]) then
begin
tab5open:=DataModule1.Table5.Active;
if not DataModule1.Table5.Active then
DataModule1.Table5.Active:=True;
sql:='select hxjq, yxsj, syjq, bz from tab4 where xm='+''''+s+'''';
DataModule1.Query2.Close;
DataModule1.Query2.SQL.Clear;
DataModule1.Query2.SQL.Add(sql);
DataModule1.Query2.Prepare;
DataModule1.Query2.Open;
recordnum:=DataModule1.Query2.RecordCount;
if recordnum=0 then
begin
DataModule1.Table4.Insert;
DataModule1.Table4.FieldValues['bh']:=1;
DataModule1.Table4.FieldValues['jqzl']:='换休假';
DataModule1.Table4.FieldValues['kyjq']:=0;
DataModule1.Table4.FieldValues['jqqx']:=0;
DataModule1.Table4.FieldValues['bz']:='没有换修';
DataModule1.Table4.Post;
end;
if recordnum>0 then
begin
for i:=1 to recordnum do
begin
DataModule1.Table4.Insert;
DataModule1.Table4.FieldValues['bh']:=i;
DataModule1.Table4.FieldValues['jqzl']:='换休假';
DataModule1.Table4.FieldValues['kyjq']:=DataModule1.Query2.FieldValues['syjq'];
DataModule1.Table4.FieldValues['jqqx']:=DataModule1.Query2.FieldValues['yxsj'];
DataModule1.Table4.FieldValues['bz']:=DataModule1.Query2.FieldValues['bz'];
DataModule1.Table4.Post;
if not DataModule1.Query2.Eof then DataModule1.Query2.Next;
end;
end;
DataModule1.Table5.Active:=tab5open; //table5:tab4.db 换休条
DataModule1.Query2.Close;
//工龄假
DataModule1.Table4.Append;
DataModule1.Table4.FieldValues['bh']:=1000;
DataModule1.Table4.FieldValues['jqzl']:='工龄假';
DataModule1.Table4.FieldValues['bz']:='';
ts:= DataModule1.Table2.FieldValues['glj'];
DataModule1.Table4.FieldValues['kyjq']:= ts;
yxsj:=DataModule1.Table2.FieldValues['kssj'];
yxsj:=yxsj+365;
DataModule1.Table4.FieldValues['jqqx']:=yxsj;
此前table2已经打开。
一怪:如果query2查不到记录,也就是recordnum=0,第一次执行有错误产生,告诉我
table4没有打开,在第一处有下划线的地方是打开了table4,第二次执行,居
然好了,没有改过任何东西!!
二怪:如果query2查到了记录,也就是recordnum>0,执行到第二处有下划线的地方,
告诉我类型转换错误,没查到记录为什么没有这样的错误??
请赐教!!