if pos(','+trim(CmbCYLYF.Values[CmbCYLYF.ItemIndex])+',',','+YS_ZYJSWQDBSCJLWZSDYFBMBH+',')>0 then begin //单张处方只能含有颗粒、药械、协定方其中之一,只开药械、协定方时剂数不需要是7的倍数 ls_yplx00:=GetCFYPLX(QueryCYCF); if ls_yplx00='1' then begin Application.MessageBox(PChar('单张处方只能含有颗粒、药械、协定方其中之一,请调整。'), '提示框', 0); Result := False; exit; end; x:=(EditZYTS.value) mod 7; if (x<>0) and (ls_yplx00='2') then begin Application.MessageBox(PChar('【'+CmbCYLYF.Text+'】剂数必须是7的整数倍,请调整。'), '提示框', 0); EditZYTS.Setfocus; Result := False; exit; end; end; function TfrmYS_CFLR.GetCFYPLX(qryCF:TQuery):string;//检查处方药品类型 //返回string定义 0未判断 1存在多个药品类型 2只有颗粒 3只存在一种药品类型且不是颗粒 var ls_ypnm00:string; begin result:='0'; if qryCF.isempty then exit; with qryCF do begin first; while not eof do begin if fieldbyname('YPNM00').asstring<>'' then ls_ypnm00:=ls_ypnm00+fieldbyname('YPNM00').asstring+','; next; end; end; ls_ypnm00:=copy(ls_ypnm00,1,length(ls_ypnm00)-1); with frmdb.qryCmd do begin close; sql.clear; sql.add('select nvl(YPLXBH,''0'') YPLXBH,count(nvl(YPLXBH,''0'')) NUM from BM_YD0000 where YPNM00 in ('+ls_ypnm00+') group by YPLXBH'); open; if RecordCount>1 then begin result:='1'; end else begin if fieldbyname('YPLXBH').asstring='02' then begin result:='2'; end else begin result:='3'; end; end; end; end if pos(','+trim(CmbCYLYF.Values[CmbCYLYF.ItemIndex])+',',','+YS_ZYJSWQDBSCJLWZSDYFBMBH+',')>0 then begin if QueryCYCF.fieldbyname('CSL000').AsFloat-trunc(QueryCYCF.fieldbyname('CSL000').AsFloat) > 0 then begin ShowWarning('【'+CmbCYLYF.Text+'】次用量只能是整数,请调整'); DBgEhCYCF.SelectedIndex := GetFieldCol(DBgEhCYCF,'CSL000'); Result := False; exit; end; end;