medrecord.pas

来自「pasa人力资源考勤管理系统」· PAS 代码 · 共 1,092 行 · 第 1/3 页

PAS
1,092
字号
    procedure AdomedrecordAfterInsert(DataSet: TDataSet);
    procedure tbnsortClick(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure DBGrid4KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DateTimePicker2CloseUp(Sender: TObject);
    procedure DateTimePicker3CloseUp(Sender: TObject);
    procedure MaskEdit2Exit(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
    procedure MaskEdit3Exit(Sender: TObject);
    procedure Edit2Exit(Sender: TObject);
    procedure ppReport1BeforePrint(Sender: TObject);
    procedure ppReport2BeforePrint(Sender: TObject);
    procedure ppReport3BeforePrint(Sender: TObject);
    procedure ppReport4BeforePrint(Sender: TObject);
    procedure ToolButton7Click(Sender: TObject);
    procedure ppReport1PreviewFormCreate(Sender: TObject);
    procedure ppReport2PreviewFormCreate(Sender: TObject);
    procedure ppReport3PreviewFormCreate(Sender: TObject);
    procedure ppReport4PreviewFormCreate(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
     { Private declarations }
  public
    { Public declarations }
    manyfield:boolean;
    findex:array[1..5] of integer;
    fsort:array[1..5] of string;
    fcount:0..5;
    db:0..3;
    f:string;
  end;

var
  Formmedrecord: TFormmedrecord;

implementation

uses datamol,main,publicfunction, canfind;
{$R *.DFM}

procedure TFormmedrecord.PageControl1Change(Sender: TObject);
begin
  (sender as Tpagecontrol).activepage.highlighted:=true;
    case pagecontrol1.ActivePageIndex of
     0:
     begin
         DBNavigator1.DataSource:=Dsmedrecord;
         Adodoctor.open;
         Adodoctor.First;
         dbgrid1.Columns[6].PickList.clear;
         while not Adodoctor.Eof do
         begin
              dbgrid1.Columns[6].picklist.add(Adodoctordoctorname.AsString);
              Adodoctor.next;
         end;
         Adodoctor.open;
         Adomed.first;
         dbgrid1.columns[8].picklist.clear;
         dbgrid1.columns[9].picklist.clear;
         dbgrid1.columns[11].picklist.clear;
         dbgrid1.columns[12].picklist.clear;
         dbgrid1.columns[14].picklist.clear;
         dbgrid1.columns[15].picklist.clear;
         while not ADomed.Eof do
         begin
              dbgrid1.Columns[8].picklist.add(adomedmedno.AsString);
              dbgrid1.Columns[11].picklist.add(adomedmedno.AsString);
              dbgrid1.Columns[14].picklist.add(adomedmedno.AsString);
              dbgrid1.Columns[9].picklist.add(adomedmedname.AsString);
              dbgrid1.Columns[12].picklist.add(adomedmedname.AsString);
              dbgrid1.Columns[15].picklist.add(adomedmedname.AsString);
              adomed.next;
         end;
     end;
     1:
     begin
         DBNavigator1.DataSource:=Dsmedtotal;
         adomedtotal.DisableControls;
         adomedtotal.close;
         medcal;   //汇总就诊金
         adomedtotal.open;
         adomedtotal.EnableControls;
     end;
     2:
     begin
        DBNavigator1.DataSource:=Dsmed;
        adomed.close;
        adomed.open;
     end;
     3:
     begin
         DBNavigator1.DataSource:=Dsdoctor;
         adodoctor.Close;
         adodoctor.Open;
     end;
    end;
end;

procedure TFormmedrecord.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
     dbgrid_keypress(sender,key);
end;

procedure TFormmedrecord.DBGrid1DblClick(Sender: TObject);
begin
     if (dbgrid1.SelectedIndex in [2..5]) then
     begin
         dbgrid3.visible:=true;
         dbgrid3.setfocus;
     end;
end;

procedure TFormmedrecord.DBGrid2DblClick(Sender: TObject);
begin
     if (dbgrid2.selectedindex in [1..4]) then
     begin
         dbgrid4.visible:=true;
         dbgrid4.setfocus;
     end;
end;

procedure TFormmedrecord.DBGrid5Exit(Sender: TObject);
begin
      dbgrid3.Visible:=false;
end;

procedure TFormmedrecord.DBGrid6Exit(Sender: TObject);
begin
      dbgrid4.visible:=false;
end;

procedure TFormmedrecord.DBGrid5DblClick(Sender: TObject);
begin
      adomedrecord.edit;
      adomedrecordworkno.asstring:=datamod.adopersonalworkno.asstring;
      dbgrid3.visible:=false;
      dbgrid1.setfocus;
      dbgrid1.SelectedIndex:=6;
end;

procedure TFormmedrecord.DBGrid6DblClick(Sender: TObject);
begin
      adomedtotal.Edit;
      adomedtotalworkno.asstring:=datamod.adopersonalworkno.asstring;
      dbgrid4.Visible:=false;
      dbgrid2.setfocus;
      dbgrid2.SelectedIndex:=5;
end;

procedure TFormmedrecord.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
      adomedrecord.close;
      adomedtotal.close;
      adomed.close;
      adodoctor.Close;
      datamod.adopersonal.close;
      formmedrecord:=nil;
      action:=cafree;
end;

procedure TFormmedrecord.FormCreate(Sender: TObject);
begin
     pagecontrol1.ActivePageIndex:=0;
     adomedrecord.open;
     adomedtotal.open;
     adomed.open;
     adodoctor.open;
     datamod.adopersonal.open;
     datetimepicker1.date:=now;
     datetimepicker2.date:=now;
     datetimepicker3.date:=now;
     maskedit1.Text:=datetostr(date);
     maskedit2.text:=datetostr(date);
     maskedit3.text:=copy(datetostr(date),1,7);
     Adomedrecord.Filtered :=false;
     Adomedrecord.Filter :='rq<='''+maskedit2.Text+''' and rq>='''+maskedit1.Text+''' ';
     Adomedrecord.Filtered :=true;
     Adomedtotal.Filtered :=false;
     Adomedtotal.Filter :='rq='''+maskedit3.text+'''';
     Adomedtotal.Filtered :=true;
end;

procedure TFormmedrecord.FormActivate(Sender: TObject);
begin
            adodoctor.Open;
           adodoctor.First;
           dbgrid1.Columns[6].PickList.clear;
           while not adodoctor.Eof do
           begin
                dbgrid1.Columns[6].picklist.add(adodoctordoctorname.AsString);
                dbcombobox1.Items.Add(adodoctordoctorname.AsString);
                adodoctor.next;
           end;
           adomed.Open;
           adomed.first;
           dbgrid1.columns[8].picklist.clear;
           dbgrid1.columns[9].picklist.clear;
           dbgrid1.columns[11].picklist.clear;
           dbgrid1.columns[12].picklist.clear;
           dbgrid1.columns[14].picklist.clear;
           dbgrid1.columns[15].picklist.clear;
           while not adomed.Eof do
           begin
                dbgrid1.Columns[8].picklist.add(adomedmedno.AsString);
                dbgrid1.Columns[11].picklist.add(adomedmedno.AsString);
                dbgrid1.Columns[14].picklist.add(adomedmedno.AsString);
                dbcombobox2.Items.Add(adomedmedno.AsString);
                dbcombobox3.Items.Add(adomedmedno.AsString);
                dbcombobox4.Items.Add(adomedmedno.AsString);
                dbgrid1.Columns[9].picklist.add(adomedmedname.AsString);
                dbgrid1.Columns[12].picklist.add(adomedmedname.AsString);
                dbgrid1.Columns[15].picklist.add(adomedmedname.AsString);
                adomed.next;
           end;
end;

procedure TFormmedrecord.PageControl1Changing(Sender: TObject;
  var AllowChange: Boolean);
begin
  (sender as Tpagecontrol).activepage.highlighted:=false;
end;

procedure TFormmedrecord.ToolButton4Click(Sender: TObject);
begin
  close;
end;

procedure TFormmedrecord.DBNavigator1BeforeAction(Sender: TObject;
  Button: TNavigateBtn);
begin
    if button=nbInsert then
      Case Pagecontrol1.ActivePageIndex of
        0: DBEdit1.SetFocus;
        2: DBEdit7.SetFocus;
        3: DBEdit22.SetFocus;
      end;
end;

procedure TFormmedrecord.FormKeyPress(Sender: TObject; var Key: Char);
begin
    if key=#13 then
    begin
      key:=#0;
      case pagecontrol1.ActivePageIndex of
        0: if activecontrol=DBEdit16 then
        begin
           adomedrecord.edit;
           adomedrecord.Post;
           adomedrecord.Append;
           activecontrol:=DBGrid1;
        end;
        2: if activecontrol=DBEdit21 then
        begin
           adomed.edit;
           adomed.post;
           adomed.append;
           activecontrol:=Panel3;
        end;
        3: if activecontrol=DBEdit30 then
        begin
           adodoctor.edit;
           adodoctor.post;
           adodoctor.Append;
           activecontrol:=Panel4;
        end;
      end;
      selectnext(activecontrol,true,true);
    end;
end;

procedure TFormmedrecord.adomedrecordmedpics1Change(Sender: TField);
var i:integer;
begin
    adomedrecordmoney.asfloat:=0;
    for i:=1 to 3 do
       if not adomedrecord.fieldbyname('medno'+inttostr(i)).isnull then
         if adomed.Locate('medno',adomedrecord.fieldbyname('medno'+inttostr(i)).asstring,[]) then
            adomedrecordmoney.asfloat:=adomedrecordmoney.asfloat+adomedrecord.fieldbyname('medpics'+inttostr(i)).asfloat*adomedsalprice.AsFloat;
end;

procedure TFormmedrecord.DateTimePicker1CloseUp(Sender: TObject);
begin
  adomedrecord.fieldbyname('rq').asstring:=datetostr(datetimepicker1.Date);
end;

procedure TFormmedrecord.AdomedrecordworknoChange(Sender: TField);
begin
      with datamod do
      begin
           query1.close;
           query1.sql.text:='select * from per24010 where workno='''+Adomedrecordworkno.asstring+''' and leave=0 ';
           query1.open;
           if not query1.eof then
           begin
                adomedrecordcardno.asstring:=query1.fieldbyname('cardno').asstring;
                adomedrecordname.asstring:=query1.fieldbyname('name').asstring;
                adomedrecorddept.asstring:=query1.fieldbyname('deptno').asstring;
           end else
           begin
                application.messagebox('你输入了一个不存的工号,请重新输入','工号错误',mb_ok+mb_iconerror);
           end;
      end;
end;

procedure TFormmedrecord.Adomedrecordmedno1Change(Sender: TField);
begin
     with datamod do
     begin
        query1.close;
        query1.sql.text:='Select * from med01010 where medno='''+Sender.AsString+''' ';
        query1.open;
        if not Query1.eof then
        begin
           adomedrecord.FieldByName('medname'+copy(Sender.Name,length(Sender.Name),1)).AsString:=Query1.fieldbyname('medname').asstring;
        end;
     end;
end;

procedure TFormmedrecord.AdomedtotalworknoChange(Sender: TField);
begin
      with datamod do
      begin
           query1.close;
           query1.sql.text:='select * from per24010 where workno='''+sender.asstring+''' and leave=0 ';
           query1.open;
           if not query1.eof then
           begin
                adomedtotalcardno.asstring:=query1.fieldbyname('cardno').asstring;
                adomedtotalname.asstring:=query1.fieldbyname('name').asstring;
                adomedtotaldept.asstring:=query1.fieldbyname('deptno').asstring;
           end else
           begin
                application.messagebox('你输入了一个不存的工号,请重新输入','工号错误',mb_ok+mb_iconerror);
                dbgrid2.SelectedIndex:=1;
           end;
      end;
end;

procedure TFormmedrecord.AdomedtotalAfterInsert(DataSet: TDataSet);
begin
  adomedtotalrq.asstring:=formatdatetime('yyyy/mm',date);
end;

procedure TFormmedrecord.AdodoctorworknoChange(Sender: TField);
begin
     with datamod do
      begin
           query1.Close;
           query1.sql.text:='select * from per24010 where workno='''+adodoctorworkno.asstring+''' and leave=0 ';
           query1.open;
           if not query1.Eof then
           begin
                adodoctorcardno.asstring:=Query1.fieldbyname('cardno').asstring;
                adodoctordoctorname.asstring:=Query1.Fieldbyname('name').asstring;
                adodoctorsex.asstring:=query1.fieldbyname('sexname').asstring;
                adodoctorage.AsInteger:=query1.fieldbyname('age').asinteger;
                adodoctordegress.asstring:=query1.fieldbyname('degreename').asstring;
                adodoctorspec.asstring:=query1.fieldbyname('coursename').asstring;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?