📄 untpseed.pas
字号:
if recordcount=0 then
begin //
ShowInfo('公猪耳号不存在,请重新输入!'); //
dbgrideh6.SelectedField.Clear; //
abort; //
end //
//耳号存在 //
else FBreed:=fieldbyname('breed').AsString;//取得外购精液表中的公猪品种
end
else FBreed:=aPig.Breed;//取得基本资料表中的公猪品种
end;//with data.Common结束
end;//公猪合法性检查结束
//计算历史变动信息
if (dbgrideh6.SelectedField.FieldName='AmDate') then
begin
if (dbgrideh6.FieldColumns['Mearid'].Field.Text='') or
(dbgrideh6.FieldColumns['EmbryoNum'].Field.Text='') or
(dbgrideh6.FieldColumns['AmDate'].Field.Text='') then
exit;
data.Socket.AppServer.CalAmExc(data.Amphimixis.FieldByName('mearid').AsString,
data.Amphimixis.FieldByName('embryonum').AsInteger,
data.Amphimixis.FieldByName('Amdate').AsDateTime,
ExcNum,
ExcType,
ExcCount);
if not (data.amphimixis.state in [dsinsert,dsedit]) then data.amphimixis.edit;
data.Amphimixis.FieldByName('SwitchKind').asstring:=ExcType;
data.Amphimixis.FieldByName('SwitchNum').asinteger:=ExcNum;
data.Amphimixis.FieldByName('SwitchSpace').asinteger:=ExcCount;
end;
//计算后代品种--------------------------------------------
if (dbgrideh6.SelectedField.FieldName='AmBoar') then
begin
if dbgrideh6.FieldColumns['SonBreed'].Field.Text<>'' then
exit;
if (MBreed<>'') and (FBreed<>'') then
dbgrideh6.FieldColumns['SonBreed'].Field.AsString:=sonbreed(FBreed,MBreed)
else showinfo('公猪或母猪没有品种,无法计算后代品种!');
end;
end;
procedure TP_Seed.DBGridEh6ColEnter(Sender: TObject);
var
FiledStr:String;
begin
if DBGridEh6.ReadOnly then exit;
Filedstr:=DBGrideh6.SelectedField.FieldName;
if ((Filedstr='AmMan') and
(DBGrideh6.FieldColumns['AmMan'].PickList.Count>0)) or
(Filedstr='AmMode') or
(Filedstr='AmModeII') or (Filedstr='AmModeIII') then
AutoDropdown;
//默认二配日期
if filedstr='AmDateII' then
if dbgrideh6.FieldColumns['AmBoarII'].Field.Text<>'' then
begin
data.DataEdit(DBGridEh6.datasource.DataSet);
data.amphimixis.FieldByName('AmDateII').AsDateTime:=data.Bdate;
end;
end;
procedure TP_Seed.ToolButton15Click(Sender: TObject);
var
Mid:String;
begin
MID:=Data.amphimixis.fieldbyname('mearid').AsString;
if (ISBorn(MID,Data.amphimixis.fieldbyname('amdate').AsDateTime) and (not checkbox1.Checked)) then
begin
Showmessage('母猪'''+MID+'''已经产仔,不能删除该条配种记录!'+char(13)+
'如果您真的想删除该条配种记录,请先删除该母猪第'''+
inttostr(Data.amphimixis.fieldbyname('EmbryoNum').AsInteger)+'''胎的产仔记录!');
Exit;
end;
if not showquestion('确定要删除该条配种记录吗?') then exit;
with data.Amphimixis do
if not IsEmpty then
begin
//删除本地数据
Delete;
//删除远程数据
if not Eh6Flag then
ApplyUpdates(0);
end;
end;
procedure TP_Seed.ToolButton19Click(Sender: TObject);
begin
//更改DBGridEh
DBGridEh8.Font.Size:=12;
DBGridEh8.ReadOnly:=false;
Eh8Flag:=true;
data.CkGestation.EmptyDataSet;
data.CkGestation.Append;
DBGridEh8.SetFocus;
end;
procedure TP_Seed.ToolButton20Click(Sender: TObject);
begin
//更改DBGridEh
DBGridEh8.Font.Size:=12;
DBGridEh8.ReadOnly:=false;
Eh8Flag:=true;
data.CkGestation.Edit;
end;
procedure TP_Seed.ToolButton21Click(Sender: TObject);
begin
if not showquestion('确定要删除该条查情记录吗?') then exit;
with data.CkGestation do
if not IsEmpty then
begin
//删除本地数据
Delete;
//删除远程数据
if not Eh8Flag then
ApplyUpdates(0);
end;
end;
procedure TP_Seed.ToolButton22Click(Sender: TObject);
var
i,j:integer;
BM:TBookMark;
begin
i:=0;
j:=0;
with Data.CkGestation do
begin
DisableControls;
BM:=GetBookmark;
//检查记录
first;
while not eof do
begin
if (fieldbyname('registerdate').AsDateTime>main.EndDate) and (not checkbox2.Checked) then
begin
showinfo('存在操作时间不在本业务期间内的记录,本业务间时间为'+Datetimetostr(main.StartDate)+
'至'+Datetimetostr(main.EndDate));
inc(i,1);
break;
end;
if (fieldbyname('earid').AsString='') or
(fieldbyname('ExcReason').AsString='') or
(fieldbyname('registerdate').AsString='') then
begin
showinfo('有记录填写不完整,请首先删除或者修改不完整记录!');
inc(j,1);
break;
end;
next;
end;
EnableControls;
GotoBookMark(BM);
FreeBooKmark(bm);
if (i>0) or (j>0) then exit;
//保存记录
if not (State in [dsinsert,dsedit]) then edit;
Post;
ApplyUpdates(0);
showinfo('保存完毕!');
end;
DBGridEh8.Font.Size:=9;
DBGridEh8.ReadOnly:=true;
Eh8Flag:=true;
//更改公猪、母猪状态 用触发器处理
end;
procedure TP_Seed.ToolButton23Click(Sender: TObject);
begin
DBGridEh8.Font.Size:=9;
DBGridEh8.ReadOnly:=true;
Eh8Flag:=false;
data.CkGestation.Cancel;
//更改公猪\母猪状态 在触发器中处理
end;
procedure TP_Seed.ToolButton24Click(Sender: TObject);
Const
BaseSqlStr='select * from t_ckgestation '; //Remark:Remember set a space sign
var
FindSqlStr:string;
begin
//获得查询条件的SQL语句
FindSqlStr:='';
try
AdVanceF:=TadVanceF.Create(Application,DBGridEh8,'P07');
AdVanceF.ShowModal;
FindSqlStr:=AdVanceF.SearchStr; // remark:where statement
Finally
AdVanceF.Free;
end;
//查询数据
if FindSqlStr='' then Exit;
with data.CkGestation do
begin
Close;
CommandText:=BaseSqlStr+FindSqlStr;
try
Open;
except
on E:exception do
showinfo(e.Message);
end;
end;
end;
procedure TP_Seed.ToolButton25Click(Sender: TObject);
begin
try
data.CkGestation.Refresh;
except
exit;
end;
end;
procedure TP_Seed.SpeedButton2Click(Sender: TObject);
begin
with Data.CkGestation do
begin
Close;
CommandText:='select * from t_ckgestation where registerdate>=:SD and registerdate<=:ED';
Params.ParamByName('Sd').AsDate:=Dtstart2.Date;
Params.ParamByName('ED').AsDate:=Dtend2.Date;
Open;
end;
DBGridEh8.Font.Size:=9;
DBGridEh8.ReadOnly:=true;
Eh8Flag:=false;
end;
procedure TP_Seed.DBGridEh8ColEnter(Sender: TObject);
begin
if DBGridEh8.ReadOnly then exit;
if (DBGridEh8.SelectedField.FieldName='ExcReason') or
((DBGridEh8.SelectedField.FieldName='LookMan') and
(DBGridEh8.FieldColumns['LookMan'].PickList.Count>0)) then
AutoDropDown;
end;
procedure TP_Seed.DBGridEh8DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
if Eh8flag then //新增
begin
with data.CkGestation do
begin
if (fieldbyname('EarID').AsString='') or
(fieldbyname('ExcReason').AsString='') or
((fieldbyname('RegisterDate').AsDateTime>main.EndDate) and (not checkbox2.Checked)) then
DBGridEh8.Canvas.Brush.Color:=$00A4FFFF;
end;
DBGridEh8.DefaultDrawColumnCell(rect,datacol,column,state);
end
else //默认
ColorDBGrid(DBGridEh8,data.ckgestation,Rect,DataCol,Column,State);
end;
procedure TP_Seed.DBGridEh8ColExit(Sender: TObject);
Var
ExcNum,AmSpace,TheERExc,TheEExc:OleVariant;
begin
if DBGridEh8.ReadOnly then exit;
data.DataEdit(DBGridEh8.datasource.DataSet);
//检查母猪耳号的合法性---------------------------------
if dbgrideh8.SelectedField.FieldName='EarID' then
begin
if dbgrideh8.SelectedField.Text='' then
exit;
with data.Common do
begin
if checkbox2.Checked then
begin
if not apig.checkearid(dbgrideh8.selectedfield.text,'0') then
begin
ShowInfo('母猪耳号不存在,请重新输入!');
dbgrideh8.SelectedField.Clear;
abort;
end;
end
else
Begin
//判断耳号是否存在
if not aPig.CheckEarID(dbgrideh8.SelectedField.Text,'0','04') then
begin
ShowInfo('母猪耳号不正确,请重新输入!'+char(13)+'不正确的原因有:'
+char(13)+'1:耳号不存在'+char(13)+'2:母猪不在妊娠状态');
dbgrideh8.SelectedField.Clear;
abort;
end
else
dbgrideh8.FieldColumns['EmbryoNum'].Field.AsInteger:=aPig.EmbryoNum; //取得胎次并填入到对应的位置
End;
//取得位置信息
close;
commandtext:='select dbo.dorm('+quotedstr(aPig.Line)+','+quotedstr(aPig.Room)+','+quotedstr(aPig.Area)
+','+quotedstr(aPig.Dorm)+')';
open;
end;{with}
data.CkGestation.FieldByName('Place').AsString:=data.Common.Fields[0].AsString;
end;{母猪合法性检查}
//计算配种记录
if (dbgrideh8.SelectedField.FieldName='RegisterDate') and
(dbgrideh8.FieldColumns['EarID'].Field.Text<>'') and
(dbgrideh8.FieldColumns['EmbryoNum'].Field.Text<>'') then
begin
with data.common do
begin
//取得与配公猪并填入到对应的位置
close;
commandtext:='select * from t_amphimixis '+
'where amdate=(select max(amdate) '+
'from t_amphimixis where mearid='+quotedstr(dbgrideh8.FieldColumns['EarID'].Field.Text)+
' and Embryonum='+dbgrideh8.FieldColumns['EmbryoNum'].Field.Text+') and mearid='+
quotedstr(dbgrideh8.FieldColumns['EarID'].Field.Text)+' and Embryonum='+dbgrideh8.FieldColumns['EmbryoNum'].Field.Text;
open;
if recordcount=0 then
begin
if not checkbox2.Checked then
begin
showinfo('该母猪没有配种记录!');
dbgrideh8.SelectedField.Clear;
exit;
end;
end
else
begin
dbgrideh8.FieldColumns['BoarEarID'].Field.AsString:=fieldbyname('amboar').AsString;
dbgrideh8.FieldColumns['AmDate'].Field.AsDateTime:=fieldbyname('amdate').AsDateTime;
end;
// end;
end;{with}
end;{计算配种信息}
//计算历史异常信息
if (dbgrideh8.SelectedField.FieldName='ExcReason') then
begin
if (dbgrideh8.FieldColumns['EarID'].Field.Text='') or
(dbgrideh8.FieldColumns['EmbryoNum'].Field.Text='') or
(dbgrideh8.FieldColumns['ExcReason'].Field.Text='') or
(dbgrideh8.FieldColumns['RegisterDate'].Field.Text='') then
exit;
data.Socket.AppServer.CalCkGesExc(data.CkGestation.FieldByName('RegisterDate').AsDateTime,
data.CkGestation.FieldByName('EarID').AsString,
data.CkGestation.FieldByName('EmbryoNum').AsInteger,
data.CkGestation.FieldByName('ExcReason').AsString,
AmSpace,
TheERExc,
TheEExc,
ExcNum);
data.CkGestation.FieldByName('TheERExcNum').asstring:=TheERExc;
data.CkGestation.FieldByName('TheEExcNum').asinteger:=TheEExc;
data.CkGestation.FieldByName('ExcNum').asinteger:=ExcNum;
data.CkGestation.FieldByName('AmSpace').asinteger:=AmSpace;
end;
end;
procedure TP_Seed.ToolButton27Click(Sender: TObject);
begin
//更改DBGridEh
DBGridEh7.Font.Size:=12;
DBGridEh7.ReadOnly:=false;
data.Birth.EmptyDataSet;
data.Birth.Append;
DBGridEh7.SetFocus;
end;
procedure TP_Seed.ToolButton28Click(Sender: TObject);
begin
//更改DBGridEh
DBGridEh7.Font.Size:=12;
DBGridEh7.ReadOnly:=false;
Eh7Flag:=true;
data.Birth.Edit;
end;
procedure TP_Seed.ToolButton29Click(Sender: TObject);
Function ISAb(MEar:string;EmbryoN:Integer):Boolean;
var
ENum:String;
begin
Result:=True;
MEar:=quotedstr(MEar);
ENum:=quotedstr(inttostr(EmbryoN+1));
with data.Common do
begin
close;
commandtext:='select * from t_ablactation where mearid='+MEar+' and EmbryoNum='+ENum;
open;
if recordcount>0 then
begin
showinfo('母猪'+MEar+'已经断奶,不能删除该条产仔记录!'+char(13)+
'如果您真的想删除该条产仔记录,请先删除该母猪第'+
ENum+'胎的断奶记录!');
exit;
end;
end;
Result:=false;
end;
begin
//如果已经断奶则产仔记录不能删除
if ISAb(data.Birth.fieldbyname('MEarID').AsString,
data.Birth.fieldbyname('EmbryoNum').AsInteger) then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -