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

📄 mainu.pas

📁 图书馆管理系统设计详细资料
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  valuest:= valuest +','  +
            cb1.Text+','  +   cb2.Text+','  +    cb3.Text+ ',' +     cb4.Text+ ','  +
            cb5.Text+','  +   cb6.Text+','  +    cb7.Text+ ','  +    cb8.Text+ ','  +
            cb9.Text+','  +   cb10.Text+',' +    cb11.Text+ ',' +    cb12.Text+ ','  +
            cb13.Text+',' +   cb14.Text+',' +    cb15.Text+ ',' +    cb16.Text+ ','  +
            cb17.Text+',' +   cb18.Text+',' +    cb19.Text+ ',' +    cb20.Text+ ','  +
            cb21.Text+',' +   cb22.Text+',,,,,';

        myinsertjlfu(clientDBGrid,clientDBNavi,valuest);
      {  if cb60.Picture.Height>0
        then cb60.Picture.SaveToFile(ExtractFilePath(Application.ExeName)+'pic\'+'cb60'+floattostr(DateTime)+'.bmp');
        if cb62.Picture.Height>0
        then cb62.Picture.SaveToFile(ExtractFilePath(Application.ExeName)+'pic\'+'cb62'+floattostr(DateTime)+'.bmp');
        if cb64.Picture.Height>0
        then cb64.Picture.SaveToFile(ExtractFilePath(Application.ExeName)+'pic\'+'cb64'+floattostr(DateTime)+'.bmp');
        if cb66.Picture.Height>0
        then cb66.Picture.SaveToFile(ExtractFilePath(Application.ExeName)+'pic\'+'cb66'+floattostr(DateTime)+'.bmp');

         patientid:=patientDBGrid.Fields[0].AsInteger;
         selectonepd(operationADOQ, 'operation' , 'patient_id',inttostr(patientid));
         operationaddClick(sender);  }

         CB1.Text:='';CB2.Text:='';CB3.Text:='';CB4.Text:='';CB5.Text:='';
         CB6.Text:='';CB7.Text:='';CB8.Text:='';CB9.Text:='';CB10.Text:='';
         CB11.Text:='';CB12.Text:='';CB13.Text:='';CB14.Text:='';CB15.Text:='';
         CB16.Text:='';CB17.Text:='';CB18.Text:='';CB19.Text:='';CB20.Text:='';
         CB21.Text:='';CB22.Text:='';
         CB16.Text:=mygetdatefu;  //日期


end;

procedure Tmainfm.clientmodifybutClick(Sender: TObject);
var valuest:string;
begin
 if  clientid=0 then exit;
 valuest:= clientDBGrid.Fields[1].Asstring+','+ clientDBGrid.Fields[2].Asstring ; //类型 级别
 valuest:= valuest +','  +
            cb1.Text+','  +   cb2.Text+','  +    cb3.Text+ ',' +     cb4.Text+ ','  +
            cb5.Text+','  +   cb6.Text+','  +    cb7.Text+ ','  +    cb8.Text+ ','  +
            cb9.Text+','  +   cb10.Text+',' +    cb11.Text+ ',' +    cb12.Text+ ','  +
            cb13.Text+',' +   cb14.Text+',' +    cb15.Text+ ',' +    cb16.Text+ ','  +
            cb17.Text+',' +   cb18.Text+',' +    cb19.Text+ ',' +    cb20.Text+ ','  +
            cb21.Text+',' +   cb22.Text+',,,,,';

        mymodifyjlfu(clientDBGrid,clientDBNavi,valuest);
end;



procedure Tmainfm.clientdeletebutClick(Sender: TObject);
begin
        if  clientid=0 then exit;
        //if not (MessageDLG('确定要删除编号为("'+inttostr(clientid)+'")的客户所有信息吗?',mtCONfirmation,[mbYes,mbNo],0) = mrYes)
       // then Exit;
        clientDBNavi.BtnClick(nbDelete);

end;

procedure Tmainfm.clientDBGridMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
  var i:integer;
begin
 if   clientDBGrid.DataSource.DataSet.IsEmpty then exit ;
 if   clientDBGrid.DataSource.DataSet.Active=false then exit ;
 if   clientDBGrid.DataSource.DataSet.RecordCount=0 then exit;
 clientid:=clientDBGrid.Fields[0].AsInteger ;
 mainPan.Caption:='客户:'+ clientDBGrid.Fields[3].AsString+'('+inttostr(clientid)+')'+ clientDBGrid.Fields[1].AsString+clientDBGrid.Fields[2].AsString+'级';
 operationtimeLb.Caption:='记录数:'+inttostr(clientADOQ.RecordCount)+'条';


 i:=3 ;
 CB1.Text:= clientDBGrid.Fields[i].Asstring ;   i:=i+1;
 CB2.Text:= clientDBGrid.Fields[i].Asstring ;   i:=i+1;
 CB3.Text:= clientDBGrid.Fields[i].Asstring ;   i:=i+1;
 CB4.Text:= clientDBGrid.Fields[i].Asstring ;   i:=i+1;
 CB5.Text:= clientDBGrid.Fields[i].Asstring ;   i:=i+1;
 CB6.Text:= clientDBGrid.Fields[i].Asstring ;   i:=i+1;
 CB7.Text:= clientDBGrid.Fields[i].Asstring ;   i:=i+1;
 CB8.Text:= clientDBGrid.Fields[i].Asstring ;   i:=i+1;
 CB9.Text:= clientDBGrid.Fields[i].Asstring ;   i:=i+1;
 CB10.Text:= clientDBGrid.Fields[i].Asstring ;   i:=i+1;
 CB11.Text:= clientDBGrid.Fields[i].Asstring ;   i:=i+1;
 CB12.Text:= clientDBGrid.Fields[i].Asstring ;   i:=i+1;
 CB13.Text:= clientDBGrid.Fields[i].Asstring ;   i:=i+1;
 CB14.Text:= clientDBGrid.Fields[i].Asstring ;   i:=i+1;
 CB15.Text:= clientDBGrid.Fields[i].Asstring ;   i:=i+1;
 CB16.Text:= clientDBGrid.Fields[i].Asstring ;   i:=i+1;
 CB17.Text:= clientDBGrid.Fields[i].Asstring ;   i:=i+1;
 CB18.Text:= clientDBGrid.Fields[i].Asstring ;   i:=i+1;
 CB19.Text:= clientDBGrid.Fields[i].Asstring ;   i:=i+1;
 CB20.Text:= clientDBGrid.Fields[i].Asstring ;   i:=i+1;
 CB21.Text:= clientDBGrid.Fields[i].Asstring ;   i:=i+1;
 CB22.Text:= clientDBGrid.Fields[i].Asstring ;   i:=i+1;

end;

procedure selectzdalltjpd(quy : TADOQuery; sn, tj,sort :string);
begin
  quy.Close;
  quy.SQL.Clear;
  quy.SQL.Add(' select * from ' + sn +' where '+ tj + '  order by '+ sort );
 // showmessage(quy.SQL.Text);
 // mainfm.CB13.Text:=  quy.SQL.Text;
  quy.Active := true;
  quy.First;
end;

procedure Tmainfm.selectBtClick(Sender: TObject);
  var sort,scout,range,tempkind,templevel :string;
  var year,month,date: integer;
  var begin_time, end_time:string;
  var value:string;
  var num,i:integer;
begin
  if allCkB.Checked then begin
     selectallpd(clientADOQ, 'client');
     exit;
  end ;
  //字段
  if CBselete.Items.IndexOf(CBselete.Text)=-1 then scout:=''
  else   scout:=zdvalue[CBselete.Items.IndexOf(CBselete.Text)]+' like '+'''%'+zdvedit.Text+'%''';
  //范围
  if CBRange.Items.IndexOf(CBRange.Text)=-1 then range:=''
  else begin

  begin_time:=minCB.Text;
  end_time:=maxCB.Text;
  if maxbt.Enabled //时间
  then    range:='('+zdrange[CBRange.Items.IndexOf(CBRange.Text)]+' >= #'+ begin_time +'#) and '+
         '('+zdrange[CBRange.Items.IndexOf(CBRange.Text)]+' <= #'+ end_time +'#)'
  else    range:='('+zdrange[CBRange.Items.IndexOf(CBRange.Text)]+' >= '+ begin_time +') and '+
         '('+zdrange[CBRange.Items.IndexOf(CBRange.Text)]+' <= '+ end_time +')' ;
  end;
  //排序字段
  if CBsort.Items.IndexOf(CBsort.Text)=-1 then sort:='id'
  else sort:= zdsort[CBsort.Items.IndexOf(CBsort.Text)];
  //正反排序
  if not sortRB.Checked  then  sort:=sort+ ' desc';

  //类型
   for i:=1 to length(RB) do
   begin
       if RB[i].Checked=true
          then begin
              tempkind:= '( kind = ''' + RB[i].Caption +''')';
              break;
          end;
   end;

  // 级别
   for i:=1 to length(CK) do
   begin
       if ck[i].Checked=true
          then if templevel='' then templevel:= '( level = ' + inttostr(i)
          else templevel:=templevel + ' or '+ 'level = ' + inttostr(i);
   end;
  if   templevel='' then
  begin
     MessageDLG('首先选择培训级别.',mtCONfirmation,[mbok],0);
     exit;
  end;
  templevel:=templevel+') ';


  if range <> '' then range:= templevel + ' and ' + range
  else range:= templevel;
  if scout<>'' then    range:=range+ ' and ' +scout;
  range:=range+ ' and ' +tempkind;


  selectzdalltjpd(clientADOQ, 'client' , range , sort );
  StatusBar.Caption:='查得记录数:'+  inttostr(clientADOQ.RecordCount)+' 条';  
end;

procedure Tmainfm.CBRangeChange(Sender: TObject);
begin
     if (zdrange[CBRange.Items.IndexOf(CBRange.Text)] = 'age') then
     begin
       minbt.Enabled:=false;    maxbt.Enabled:=minbt.Enabled;
       mincb.Enabled:=not minbt.Enabled;     maxcb.Enabled:=not minbt.Enabled;
       mincb.Text:='20';  maxcb.Text:='25';
     end;
     if (zdrange[CBRange.Items.IndexOf(CBRange.Text)] = 'data' )then
     begin
       minbt.Enabled:=true;    maxbt.Enabled:=minbt.Enabled;
       mincb.Enabled:=not minbt.Enabled;     maxcb.Enabled:=not minbt.Enabled;
       mincb.Text:=mygetdatefu;  maxcb.Text:=mygetdatefu;
     end
end;


{存库表记录到文件}
procedure mysaveADOquyfilepd(StatusBar:TPanel;ProBar: TsuiProgressBar;quy:tadoquery;fname:string);
var txt : textfile;
    gs  : string;
    i   : integer;
begin
  if quy.IsEmpty
  then exit;
  assignfile(txt,fname);
  rewrite(txt);
  //quy.DisableConstraints;
  ProBar.Visible:=true;
  ProBar.Max:= quy.RecordCount;
  ProBar.Position:=0;
  while not Quy.Eof do
  begin
    ProBar.Position:= ProBar.Position+1;
    i := 0; gs := '';
    while i < quy.FieldCount do
    begin
      if pos(',',quy.Fields.Fields[i].AsString)<0
      then  gs := gs + quy.Fields.Fields[i].AsString  + ','
      else  gs := gs + mychgstrfu(quy.Fields.Fields[i].AsString,',','.')  + ',' ;
      inc(i);
    end;
    writeln(txt,gs);
    StatusBar.Caption := gs;
    Quy.Next;
  end;
  closefile(txt);
 // quy.EnableConstraints;
  ProBar.Visible:=false;
  StatusBar.Caption := '总共导出'+inttostr(ProBar.Position)+'条数据记录' ;
end;

function getmaxid(quy : TADOQuery; sn:string):integer;
begin
  quy.Close;
  quy.SQL.Clear;
  quy.SQL.Add(' select max(id) from ' + sn );
  quy.Active := true;
  quy.First;
  result :=  quy.Fields.Fields[0].AsInteger;
end;

procedure delete_biger_then_id(quy : TADOQuery; sn:string;beginid:integer);
begin
  quy.Close;
  quy.SQL.Clear;
  quy.SQL.Add(' delete from ' + sn + ' where id  > '+ inttostr(beginid) + ' ');
  quy.Active := true;
  quy.First;
end;

{读文件记录入库表}
procedure myopenADOquyfilepd(StatusBar:TPanel;ProBar: TsuiProgressBar; dbgrid:Tdbgrid;DBNavigator:TDBNavigator;
                          findADOQ:TADOQuery;tablename,filename:string);
var txt : textfile;
    line,s  : string;
    i,j,jlh ,beginid : integer;
begin
  if not FileExists(filename)
  then Exit;
  j := 0;
  beginid:= getmaxid(findADOQ,tablename );
  try
  assignfile(txt,filename);
  reset(txt);
  ProBar.Visible:=true;
  ProBar.Max:= FileSize(txt);  ////////////////////
  while not Eof(txt) do
  begin
    readln(txt,line); inc(j);
    ProBar.Position:=j;    //////////////////////
    StatusBar.Caption := line;
    sltfu(line); //去掉序号
    try
      if myinsertjlfu(dbgrid,DBNavigator,line)<>0
      then begin
         messagedlg('输入文件出错!!! 第《 ' + inttostr(j)+ ' 》行!',mtinformation,[mbok],0);
         j:=j-1;
         if (MessageDLG('删除已入库的记录吗?',mtCONfirmation,[mbYes,mbNo],0) = mrYes)
         then begin
            delete_biger_then_id(findADOQ,tablename,beginid);
            j:=0;
            exit;
         end;
      end
    except
      messagedlg('输入文件出错!!! 第《 ' + inttostr(j)+ ' 》行!',mtinformation,[mbok],0);
      if (MessageDLG('删除已入库的记录吗?',mtCONfirmation,[mbYes,mbNo],0) = mrYes)
      then begin
        delete_biger_then_id(findADOQ,tablename,beginid);
        j:=0;
      end;
      StatusBar.Caption := line ;
      break;
    end;
  end;
  finally
      closefile(txt);
      if j>1 then StatusBar.Caption :='读入记录起始ID:'+inttostr(beginid+1)+'  总共读入'+inttostr(j)+'行数据记录' ;
  end;
   ProBar.Position:= ProBar.Max;
   ProBar.Visible:=false;
end;


procedure Tmainfm.dbBtClick(Sender: TObject);
begin
  if Sender = ToButsv              //保存
  then begin
         SaveDlgtxt.FileName := ExtractFilePath( Application.ExeName)+ 'backup.txt';//保存记录到文件
         if SaveDlgtxt.Execute
         then mysaveADOquyfilepd(StatusBar,suiProgressBar,clientADOQ,SaveDlgtxt.FileName);
       end;

  if Sender = ToButla             //读入
  then begin
         OpenDlgtxt.FileName := ExtractFilePath( Application.ExeName)+ '*.txt';//从文件读入记录
         if OpenDlgtxt.Execute
         then myopenADOquyfilepd(StatusBar,suiProgressBar,clientDBGrid,clientDBNavi,
                             findADOQ,'client', OpenDlgtxt.FileName);
         
       end;
end;

procedure Tmainfm.mcdyClick(Sender: TObject);
var tempkind,strlevel : string;
var templevel :integer;
var i:integer;
begin
//类别
  for i:=1 to length(RB) do
   begin
       if RB[i].Checked=true
          then begin
               tempkind := RB[i].Caption ;
              break;
          end;
   end;

  // 级别
   for i:=1 to length(CK) do
   begin
       if ck[i].Checked=true
       then   templevel:=i;
   end;

   if templevel=1 then  strlevel:='一' ;
   if templevel=2 then  strlevel:='二' ;
   if templevel=3 then  strlevel:='三' ;
   if templevel=4 then  strlevel:='四' ;

    application.CreateForm(Treportfm,reportfm);
    //reportfm.titlelb.Caption:= tempkind+strlevel+'级'+'意向汇总表';
    reportfm.clientreport.Preview;
    reportfm.Close;
end;

end.

⌨️ 快捷键说明

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