⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 untpseed.pas

📁 养猪精液采集模块的相关大夫吗对方法对付法对
💻 PAS
📖 第 1 页 / 共 5 页
字号:
               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 + -