www.pudn.com > transfox.rar > trans.pas


unit trans; 
 
interface 
uses data,Windows, Forms, Controls,SysUtils,Dialogs,DBGrids,StdCtrls,DBTables; 
 
type MsgType=(Succeed,Error); 
 
//function  SeekSickCaseInfo(zyh:integer;var caseid,byxm,nl,xb,ksmc,rysj,cysj:string):boolean; 
//procedure DeleteSeekInfo(zyh:string); 
 
procedure BrowsSeekInfo(datefrom,dateto:tdatetime;ksbm:SmallInt); 
procedure UpdateSeekInfo(caseidset:string); 
procedure TransSickCase(tbname,caseidset:string); 
procedure ClewMessage(amsgtype:MsgType;msg:string);//提示信息 
procedure Deplist(combox:tcombobox); 
function  CaseidSet(dbgrid:Tdbgrid):string; 
implementation 
 
procedure Deplist(combox:tcombobox); 
begin 
  combox.Items.clear; 
  with dm.Q_ks do 
  begin 
    close; 
    sql.clear; 
    sql.add('select ksbh,ksmc from  yiyuandb..ks_zyks where ifzy=1 and ksbh not in (301,302,310,320,330,202,200,232)'); 
    open; 
  while not eof do 
  begin 
    combox.Items.add(fieldbyname('ksbh').asstring+' '+fieldbyname('ksmc').asstring); 
    next; 
  end; 
  end; 
end; 
 
 
procedure BrowsSeekInfo(datefrom,dateto:tdatetime;ksbm:SmallInt); 
begin 
  with dm.Q_brows do 
  begin 
    close; 
    sql.clear; 
    sql.add('exec sickcase..caseface_search :datefrom,:dateto,:ksbm'); 
    parambyname('datefrom').asdatetime:=datefrom; 
    parambyname('dateto').asdatetime:=dateto; 
    parambyname('ksbm').AsSmallInt:=ksbm; 
    open; 
  end; 
end; 
 
procedure ClewMessage(amsgtype:MsgType;msg:string); 
begin 
   case amsgtype of 
   Succeed:application.MessageBox(pchar(msg),'信息',MB_ICONINFORMATION); 
   Error:application.MessageBox(pchar(msg),'信息',MB_ICONERROR); 
   end; 
end; 
 
procedure DeleteSeekInfo(zyh: string); 
begin 
   if MessageDlg('是否删除?',mtConfirmation, [mbYes, mbNo], 0) <> mrYes then exit; 
    with dm.Q_sickcase do 
    begin 
      close; 
      sql.clear; 
      sql.add('delete  sickcase..casetrans '); 
      sql.add('where zyh=:zyh'); 
      parambyname('zyh').asstring:=zyh; 
      try 
        ExecSQL; 
      except 
        clewmessage(error,'保存失败'); 
        exit; 
      end; 
    end; 
end; 
 
function SeekSickCaseInfo(zyh:integer;var caseid,byxm,nl,xb,ksmc,rysj,cysj:string):boolean; 
begin 
    with dm.Q_sickcase do 
    begin 
      close; 
      sql.clear; 
      sql.add('select *,b.kbmc from sickcase..baza a,sickcase..babkbdm b'); 
      sql.add('where baza01=:zyh and a.baza21=b.dm'); 
      parambyname('zyh').asinteger:=zyh; 
      open; 
      if not isempty then 
      begin 
        caseid:=fieldbyname('baza01').asstring; 
        byxm:=fieldbyname('baza02').asstring; 
        nl:=fieldbyname('baza06').asstring; 
        xb:=fieldbyname('baza03').asstring; 
        ksmc:=fieldbyname('kbmc').asstring; 
        rysj:=fieldbyname('baza25').asstring; 
        cysj:=fieldbyname('baza27').asstring; 
        result:=true; 
      end else result:=false; 
    end; 
end; 
 
procedure TransSickCase(tbname,caseidset:string); 
const sqlstr1='select * from sickcase..%s'; 
      sqlstr2='delete from  %s where baza01 in (%s)'; 
      sqlstr3='where baza01 in (%s)'; 
 
 
begin 
    {with dm.Q_delete do 
    begin 
      close; 
      sql.clear; 
      sql.Add(format(sqlstr2,[tbname,caseidset])); 
      Execsql; 
    end;} 
 
{    with dm.Q_source do 
    begin 
      close; 
      sql.clear; 
      //if  tbname='baf1' then 
      //sql.Add('select baf102,baf103,baf104,baf105,baf106,baf111,baza01,baf112 from sickcase..baf1') 
      //else 
      sql.Add(format(sqlstr1,[tbname+'_temp'])); 
    //  sql.Add('select * from sickcase..baza_temp'); 
      open; 
      //sql.Add(format(sqlstr3,[caseidset])); 
    end;} 
    DM.BtchMv_sickcase.Source :=DM.Tbl_source; 
    DM.BtchMv_sickcase.Destination:=DM.Tbl_dest; 
 
//    DM.Tbl_source.TableName:='baza_temp'; 
//    DM.Tbl_dest.TableName:='baza'; 
    DM.Tbl_source.TableName:=trim(tbname)+'_temp'; 
    DM.Tbl_dest.TableName:=trim(tbname); 
    with DM.BtchMv_sickcase do 
    begin 
      Source :=dm.Tbl_source; 
      Destination :=DM.Tbl_dest; 
      Mode := batCopy; 
      try 
        Execute; 
        //ShowMessage(tbname+'_temp:'+IntToStr(MovedCount) + ' records copied'); 
      except 
        ShowMessage(tbname+'_temp传输失败!'); 
        exit; 
      end; 
    end; 
end; 
function  CaseidSet(dbgrid:Tdbgrid):string; 
var str0,str1:string; 
    str0len:integer; 
begin 
    with dbgrid.DataSource.DataSet do 
    begin 
      First; 
      while  not Eof do 
      begin 
        str1:=FieldByName('zyh').AsString; 
        str0:=str0+'"'+str1+'"'+','; 
        str0len:=length(str0); 
        next; 
      end; 
    end; 
      result:=copy(str0,1,str0len-1); 
end; 
 
procedure UpdateSeekInfo(caseidset:string); 
const sqlstr1='update sickcase..casetrans set ifaccept=1 where zyh in (%s)'; 
begin 
  with dm.Q_sickcase do 
  begin 
    close; 
    sql.clear; 
    sql.Add(format(sqlstr1,[caseidset])); 
    Execsql; 
  end; 
end; 
 
 
end.