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

📄 unit1.~pas

📁 报表制作
💻 ~PAS
📖 第 1 页 / 共 3 页
字号:
begin
 //------------------------------------------------------------------------------//
  if   pagecontrol1.ActivePage.PageIndex=0 then
  begin
        with query1 do
     begin
       close;
       sql.Clear;
       sql.Add('select  top 1 *  from rttransaction ');
       open;
     end;

    if query1.RecordCount=0 then
       begin
         application.messagebox('没有记录!', 'TCSVCD管理系统', mb_iconinformation + mb_defbutton1);
         exit;
       end;



              sqltopno:=sqltopno-20;
              pageno:=pageno-1;
                 if sqltopno<0 then
        begin
        application.messagebox('已经到最后一页!', 'TCSVCD管理系统', mb_iconinformation + mb_defbutton1);
        dxbarlargebutton1.Enabled:=false;
        exit;
        end;

              






        




       image1.Visible:=false;

       form2.query1.Close;
       form2.query1.SQL.Clear;
       form2.query1.SQL.Add('select top 20 rttransaction.影片编号,rent_cd.影片名称, count(rent_cd.影片名称)as 总出租部数');//加个AS,问题搞定
       form2.query1.SQL.Add('from rttransaction,rent_cd');
       form2.query1.SQL.Add('where rent_cd.影片编号=rttransaction.影片编号');
       form2.query1.SQL.Add('and rttransaction.出租日期 between'+''''+ datetostr(form1.dxbardatecombo12.Date-1)+''''+' and '+''''+ datetostr(form1.dxbardatecombo1.Date+1)+'''');
       form2.query1.SQL.Add('group by rttransaction.影片编号,rent_cd.影片名称');



       


        //以下HAVING语句为子查询
       form2.query1.SQL.Add('having count(rent_cd.影片名称) not in (select top '+ INTTOSTR(sqltopno)  +' count(rent_cd.影片名称)  ');//xx not in (select xx) 注意XX应该一样
       form2.query1.SQL.Add('from rttransaction,rent_cd');
       form2.query1.SQL.Add('where rent_cd.影片编号=rttransaction.影片编号');
       form2.query1.SQL.Add('and rttransaction.出租日期 between'+''''+ datetostr(form1.dxbardatecombo12.Date-1)+''''+' and '+''''+ datetostr(form1.dxbardatecombo1.Date+1)+'''');
       form2.query1.SQL.Add('group by rttransaction.影片编号,rent_cd.影片名称');
       form2.query1.SQL.add(' order by count(rent_cd.影片名称) desc  )');


        //以下为主查询,HAVING语句一般在GROUP语句之后,所以应该把这个语句放在最后
       form2.query1.SQL.add(' order by count(rent_cd.影片名称) desc');


      


       form2.query1.Open;







       form2.query1.Active:=true;
       form2.qrdbtext3.DataField:='影片编号';
       form2.qrdbtext5.DataField:='影片名称';
       form2.qrdbtext1.DataField:='总出租部数';




       form2.QRLabel9.Caption:=datetimetostr(form1.dxbardatecombo12.Date-1);
       form2.QRLabel10.Caption:=datetimetostr(form1.dxbardatecombo1.Date-1);
       //form2.QuickRep1.Prepare;//没有的话’共多少页’不能正常显示,点有双击问题
       statusbar1.Panels.Items[1].Text:='第'+inttostr(pageno)+'页';
       statusbar1.Panels.Items[2].Text:='分页';
       form2.QuickRep1.Preview;





  end;


//-------------------------------------------------------------------------//
if pagecontrol1.ActivePage.PageIndex=1 then
  begin



    with query1 do
     begin
       close;
       sql.Clear;
       sql.Add('select  top 1 *  from rttransaction ');
       open;
     end;
     if query1.RecordCount=0 then
       begin
         application.messagebox('没有记录!', 'TCSVCD管理系统', mb_iconinformation + mb_defbutton1);
         exit;
       end;


                 
       sqltopno:=sqltopno-20;
        pageno:=pageno-1;
              if sqltopno<0 then
        begin
        application.messagebox('已经到最后一页!', 'TCSVCD管理系统', mb_iconinformation + mb_defbutton1);
        dxbarlargebutton1.Enabled:=false;
        exit;
        end;














        form3.Query1.Close;
        form3.Query1.SQL.Clear;





         form3.Query1.SQL.Add('select  top 20 atorinfo.姓名,RtTransaction.出租日期,rent_cd.影片名称,RtTransaction.返还日期,RtTransaction.影片编号,RtTransaction.ID ');
         form3.Query1.SQL.Add('from RtTransaction,atorinfo,rent_cd');
         form3.Query1.SQL.Add('where RtTransaction.影片编号=rent_cd.影片编号 ');
         form3.Query1.SQL.Add('and RtTransaction.会员编号=atorinfo.会员编号 ');
         form3.Query1.SQL.Add('and RtTransaction.出租日期 between'+''''+ datetostr(form1.dxbardatecombo12.Date)+''''+' and '+''''+datetostr(form1.dxbardatecombo1.Date)+'''');

         form3.Query1.SQL.Add('and  RtTransaction.ID not in(select top '+ INTTOSTR(sqltopno)  +' RtTransaction.ID FROM RtTransaction,atorinfo,rent_cd');
         form3.Query1.SQL.Add('where RtTransaction.影片编号=rent_cd.影片编号 ');
         form3.Query1.SQL.Add('and RtTransaction.会员编号=atorinfo.会员编号 ');
         form3.Query1.SQL.Add(' and RtTransaction.出租日期 between '+''''+  datetostr(form1.dxbardatecombo12.Date)+''''+'  and '+ ''''+datetostr(form1.dxbardatecombo1.Date)+''''+ 'order by RtTransaction.id)order by RtTransaction.id' );


       form3.query1.Open;
       form3.query1.Active:=true;
       form3.qrdbtext1.DataField:='姓名';
       form3.qrdbtext2.DataField:='出租日期';
       form3.qrdbtext3.DataField:='返还日期';
       form3.QRDBText4.DataField:='影片编号';
       form3.QRDBText5.DataField:='影片名称';




     form3.QRLabel2.Caption:=datetostr(form1.dxbardatecombo12.date);
       form3.QRLabel4.Caption:=datetostr(form1.dxbardatecombo1.date);
       //form3.QuickRep1.Prepare;//没有的话’共多少页’不能正常显示,点有双击问题
       statusbar1.Panels.Items[1].Text:='第'+inttostr(pageno)+'页';
       statusbar1.Panels.Items[2].Text:='分页';
       form3.QuickRep1.Preview;





  end;


//-------------------------------------------------------------------------//

 if pagecontrol1.ActivePage.PageIndex=2 then
  begin


      with query1 do
     begin
       close;
       sql.Clear;
       sql.Add('select TOP 1 rttransaction.影片编号 from rttransaction ');
       open;
     end;
     if query1.RecordCount=0 then
       begin
         application.messagebox('没有记录!', 'TCSVCD管理系统', mb_iconinformation + mb_defbutton1);
         exit;
       end;

              sqltopno:=sqltopno-20;
              pageno:=pageno-1;
                 if sqltopno<0 then
        begin
        application.messagebox('已经到最后一页!', 'TCSVCD管理系统', mb_iconinformation + mb_defbutton1);
        dxbarlargebutton1.Enabled:=false;
        exit;
        end;



    if dxbarcombo3.text='1天'         then yqdayno:=1
      else if dxbarcombo3.text='3天'    then yqdayno:=3
       else if dxbarcombo3.text='1个星期' then yqdayno:=7
        else if dxbarcombo3.text='2个星期' then yqdayno:=14
         else if dxbarcombo3.text='3个星期' then yqdayno:=21
          else if dxbarcombo3.text='1个月'    then yqdayno:=31
           else if dxbarcombo3.text='2个月'    then yqdayno:=62
            else if dxbarcombo3.text='3个月'     then yqdayno:=93
             else if dxbarcombo3.text='半年'      then yqdayno:=182
              else if dxbarcombo3.text='1年'       then yqdayno:=365;







   YQtime:=datetostr(date-yqdayno);

    dxbaredit1.text:=YQtime;
   form5.Query1.Close;
   form5.Query1.SQL.Clear;

   form5.Query1.SQL.Add('select top 20 rttransaction.影片编号,atorinfo.姓名,rent_cd.影片名称,atorinfo.联系电话,atorinfo.家庭地址,rttransaction.出租日期');
   form5.Query1.SQL.Add('from rttransaction,rent_cd,atorinfo');
   form5.query1.SQL.Add('where rttransaction.影片编号=rent_cd.影片编号 and rttransaction.会员编号=atorinfo.会员编号');
   form5.Query1.SQL.Add('and rttransaction.出租日期<='+''''+YQtime+''''  +'and rttransaction.返还日期 is null ');
   form5.Query1.SQL.Add('and rttransaction.出租日期 not in (select top '+ INTTOSTR(sqltopno)  +'rttransaction.出租日期 from rttransaction');
   form5.Query1.SQL.Add('where rttransaction.出租日期<='+''''+YQtime+''''  +'and rttransaction.返还日期 is null )');

   form5.Query1.Open;
   form5.query1.Active:=true;

   form5.qrdbtext1.DataField:='姓名';
       form5.qrdbtext2.DataField:='联系电话';
       form5.qrdbtext3.DataField:='影片编号';
       form5.QRDBText4.DataField:='影片名称';
       form5.QRDBText5.DataField:='出租日期';
       form5.QRDBText7.DataField:='家庭地址';
       form5.QRLabel12.Caption:=datetostr(date-strtodate(dxbaredit1.text));
       form5.QRLabel2.Caption:=dxbaredit1.text;


       statusbar1.Panels.Items[1].Text:='第'+inttostr(pageno)+'页';
       statusbar1.Panels.Items[2].Text:='分页';

       form5.QuickRep1.Preview;



   end;

       form5.Query1.Active:=false;

end;

procedure TForm1.RadioButton1Click(Sender: TObject);
var RMaxNO:string;
var i:integer;
begin



   dbchart1.Series[0].YValues.valuesource:='';
   dbchart1.Series[0].xlabelssource:='';
   //dbchart1.LeftAxis.Maximum:=0;//保证MININUN为最小值就可以了
   dbchart1.LeftAxis.Minimum:=0;
   dbchart1.LeftAxis.Title.Angle:=270;
   dbchart1.LeftAxis.Title.Caption:='影片出租排行TOP 10 (租借部数)';


       query1.Close;
       query1.SQL.Clear;
       query1.SQL.Add('select top 10  rent_cd.影片名称,count(rent_cd.影片名称)as 总出租部数');//加个AS,问题搞定
       query1.SQL.Add('from rttransaction,rent_cd');
       //query1.SQL.Add('where rent_cd.影片编号=rttransaction.影片编号');
       query1.SQL.Add('where rttransaction.出租日期 between'+''''+ datetostr(form1.dxbardatecombo12.Date-1)+''''+' and '+''''+ datetostr(form1.dxbardatecombo1.Date+1)+'''');

       query1.SQL.Add('group by rent_cd.影片名称');

       query1.SQL.add(' order by count(rent_cd.影片名称) desc');
       query1.Open;
       query1.Active:=true;

       query1.first;



       RMaxNo:=query1.FieldByName('总出租部数').AsString;

       if rmaxno<>'' then
         begin
           dbchart1.leftAxis.Automatic:=false;
           dbchart1.LeftAxis.Maximum:=strtoint(rmaxno);//属性里MAX,MIN设置为0,0

             if strtoint(rmaxno)>=10 then
                begin
                   for i:=1 to 9 do
                      begin
                         query1.next;
                      end;
                      rmaxno:=query1.FieldByName('总出租部数').AsString;
                      dbchart1.LeftAxis.Minimum:=strtoint(rmaxno)-1;
                      dbchart1.Series[0].DataSource:=query1;
                      dbchart1.Series[0].YValues.valuesource:='总出租部数';
                      dbchart1.Series[0].xlabelssource:='影片名称';
                end
             else
                showmessage('请扩大查找范围');
         end

       else
        showmessage('无记录');

end;










procedure TForm1.dxBarCombo3Change(Sender: TObject);
  var YQtime: string;
  var yqdayno:integer;
begin


      with form5.query1 do
     begin
       close;
       sql.Clear;
       sql.Add('select TOP 1 rttransaction.影片编号 from rttransaction ');
       open;
     end;
     if form5.query1.RecordCount=0 then
       begin
         application.messagebox('没有记录!', 'TCSVCD管理系统', mb_iconinformation + mb_defbutton1);
         exit;
       end;

    if dxbarcombo3.text='1天'         then yqdayno:=1
      else if dxbarcombo3.text='3天'    then yqdayno:=3
       else if dxbarcombo3.text='1个星期' then yqdayno:=7
        else if dxbarcombo3.text='2个星期' then yqdayno:=14
         else if dxbarcombo3.text='3个星期' then yqdayno:=21
          else if dxbarcombo3.text='1个月'    then yqdayno:=31
           else if dxbarcombo3.text='2个月'    then yqdayno:=62
            else if dxbarcombo3.text='3个月'     then yqdayno:=93
             else if dxbarcombo3.text='半年'      then yqdayno:=182
              else if dxbarcombo3.text='1年'       then yqdayno:=365;







   YQtime:=datetostr(date-yqdayno);
   
    dxbaredit1.text:=YQtime;
   form5.Query1.Close;
   form5.Query1.SQL.Clear;

   form5.Query1.SQL.Add('select top 20 rttransaction.影片编号,atorinfo.姓名,rent_cd.影片名称,atorinfo.联系电话,atorinfo.家庭地址,rttransaction.出租日期');
   form5.Query1.SQL.Add('from rttransaction,rent_cd,atorinfo');
   form5.query1.SQL.Add('where rttransaction.影片编号=rent_cd.影片编号 and rttransaction.会员编号=atorinfo.会员编号');
   form5.Query1.SQL.Add('and rttransaction.出租日期<='+''''+YQtime+''''  +'and rttransaction.返还日期 is null ');



   form5.Query1.Open;
   form5.query1.Active:=true;

  form5.qrdbtext1.DataField:='姓名';
       form5.qrdbtext2.DataField:='联系电话';
       form5.qrdbtext3.DataField:='影片编号';
       form5.QRDBText4.DataField:='影片名称';
       form5.QRDBText5.DataField:='出租日期';
       form5.QRDBText7.DataField:='家庭地址';
       //form5.QRLabel12.Caption:=dxbarcombo3.text;
       //form5.QRLabel2.Caption:=dxbaredit1.text;//


       statusbar1.Panels.Items[1].Text:='第1页';
       statusbar1.Panels.Items[2].Text:='分页';

       form5.QuickRep1.Preview;
    form5.Query1.Active:=false;///////////////////
    
end;

procedure TForm1.PageControl1Change(Sender: TObject);
begin

   if   pagecontrol1.ActivePage.PageIndex=2 then
  begin
     dxbarcombo3.Enabled:=true;
     dxbardatecombo1.Enabled:=false;
     dxbardatecombo12.Enabled:=false;
  end
  else
  begin
     dxbarcombo3.Enabled:=false;
     dxbardatecombo1.Enabled:=true;
     dxbardatecombo12.Enabled:=true;
  end;
  pageno:=0;
              
end;

procedure TForm1.dxBarLargeButton3Click(Sender: TObject);
begin
showmessage('毛,这个你都要测试');
end;

end.

⌨️ 快捷键说明

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