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

📄 search.pas

📁 家用理财软件beta版
💻 PAS
📖 第 1 页 / 共 3 页
字号:
     Parameters.ParamByName('month1').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(inttostr(cur_year)+'-'+inttostr(cur_month)+'-1 00:00:00'));
     Parameters.ParamByName('month2').Value:=formatdatetime('yyyy-m-d hh:mm:ss',monthday(cur_month,cur_year));
     cur_month:=cur_month-1;
     if cur_month=0 then
     begin
      cur_month:=12;
      cur_year:=cyear-1;
     end;
     open;
     first;
     for i:=1 to adoquery3.RecordCount do
     begin
      gain_month[j][1]:=gain_month[j][1]+strtofloat(adoquery3.FieldValues['income_money']);
      next;
     end;
   end;
  end;
  pay_out(6,adoquery4);
  cur_year:=strtoint(inttostr(cyear));
  cur_month:=strtoint(inttostr(cmonth));
   for i:=1 to 6 do
   with listview1.Items.Add do
   begin
      caption:=inttostr(cur_year)+'年'+inttostr(cur_month)+'月收支情况:';
      subitems.Add(floattostr(gain_month[i][1]));
      subitems.Add(floattostr(gain_month[i][2]));
      subitems.Add(floattostr(gain_month[i][1]-gain_month[i][2]));
      cur_month:=cur_month-1;
      if cur_month=0 then
       begin
         cur_month:=12;
         cur_year:=cur_year-1;
       end;
   end;
   get_total;
end;

procedure TForm2.xpEdit8Change(Sender: TObject);
begin
if strtofloat(xpedit8.Text)<0 then
xpedit8.Font.Color:=clred
else
xpedit8.Font.Color:=clblue;
end;

procedure TForm2.xpBitBtn9Click(Sender: TObject);
var month1,month2: string;
i,j:integer;
begin
  zero_gain_month();
  listview1.clear;
  for j:=1 to 1 do
  begin
   with ADOQUERY3 do
   begin
     close;
     sql.Clear;
     sql.Add('select * From incometable where (income_date >= :month1 and income_date <= :month2)');
     Parameters.ParamByName('month1').Value:=formatdatetime('yyyy-m-d hh:mm:ss',rzdatetimepicker5.DateTime);
     Parameters.ParamByName('month2').Value:=formatdatetime('yyyy-m-d hh:mm:ss',rzdatetimepicker6.DateTime);
     open;
     for i:=1 to adoquery3.RecordCount do
     begin
      first;
      gain_month[j][1]:=gain_month[j][1]+strtofloat(adoquery3.FieldValues['income_money']);
      next;
     end;
   end;
  end;
   with adoquery4 do
   begin
     close;
     sql.Clear;
     sql.Add('select * From payouttable where (payout_date >= :month1 and payout_date <= :month2)');
     Parameters.ParamByName('month1').Value:=formatdatetime('yyyy-m-d hh:mm:ss',rzdatetimepicker5.DateTime);
     Parameters.ParamByName('month2').Value:=formatdatetime('yyyy-m-d hh:mm:ss',rzdatetimepicker6.DateTime);
     open;
     for i:=1 to adoquery4.RecordCount do
     begin
      first;
      gain_month[1][2]:=gain_month[1][2]+strtofloat(adoquery4.FieldValues['payout_money']);
      next;
     end;
   end;
   for i:=1 to 1 do
   with listview1.Items.Add do
   begin
      caption:='从'+datetostr(rzdatetimepicker5.Date)+'到'+datetostr(rzdatetimepicker6.Date)+':';
      subitems.Add(floattostr(gain_month[i][1]));
      subitems.Add(floattostr(gain_month[i][2]));
      subitems.Add(floattostr(gain_month[i][1]-gain_month[i][2]));
   end;
   get_total;
end;

procedure TForm2.xpBitBtn10Click(Sender: TObject);
begin
listview1.Clear;
rzDbgrid1.DataSource:=nil;
xpedit6.Text:='0';
xpedit7.Text:='0';
xpedit8.Text:='0';
  dbchart1.Series[1].Clear;
  dbchart1.Series[0].Clear;
end;


procedure TForm2.xpBitBtn13Click(Sender: TObject);
var  i,j,k,l,MAX_month,max_year,tempint:integer;
     Cyear,Cmonth,Cday:word;
begin
    zero_gain_month();
    listview1.clear;
    decodedate(now,Cyear,cmonth,cday);
    max_month:=strtoint(inttostr(cmonth));
    max_year:=strtoint(inttostr(cyear));
    tempint:=max_month+1;
    for i:=1 to 12 do
    begin
      tempint:=tempint-1;
      if tempint>0 then
      begin
        month_array[i][1]:=inttostr(max_year)+'年'+inttostr(tempint)+'月';
        month_array[i][2]:=inttostr(tempint);
        month_array[i][3]:=inttostr(max_year);
      end
      else
      begin
        max_year:=max_year-1;
        tempint:=12;
        month_array[i][1]:=inttostr(max_year)+'年'+inttostr(tempint)+'月';
        month_array[i][2]:=inttostr(tempint);
        month_array[i][3]:=inttostr(max_year);
      end;
    end;
  for k:=1 to 12 do
  begin             //z
   with ADOquery3 do
   begin           //y
     close;
     sql.Clear;
     sql.Add('select * From incometable where (income_date >= :month1 and income_date <= :month2)');
     Parameters.ParamByName('month1').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[k][3]+'-'+month_array[k][2]+'-1 00:00:00'));
     Parameters.ParamByName('month2').Value:=formatdatetime('yyyy-m-d hh:mm:ss',monthday(strtoint(month_array[k][2]),strtoint(month_array[k][3])));
{     if (month_array[k][2]='1') or (month_array[k][2]='3') or (month_array[k][2]='5')or (month_array[k][2]='7')
     or (month_array[k][2]='8')or (month_array[k][2]='10')or (month_array[k][2]='12') then
     begin                       //a
     Parameters.ParamByName('month1').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[k][3]+'-'+month_array[k][2]+'-1 00:00:00'));
     Parameters.ParamByName('month2').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[k][3]+'-'+month_array[k][2]+'-31 23:59:59'));
     end                         //a
     else
     begin                       //b
      if (month_array[k][2]='4') or (month_array[k][2]='6') or (month_array[k][2]='9')or (month_array[k][2]='11') then
       begin                       //c
        Parameters.ParamByName('month1').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[k][3]+'-'+month_array[k][2]+'-1 00:00:00'));
        Parameters.ParamByName('month2').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[k][3]+'-'+month_array[k][2]+'-30 23:59:59'));
       end                        //c
      else
        begin                     //d
        if month_array[k][2]='2' then
         begin                            //6
         if ((strtoint(month_array[k][3]) mod 4)=0) then
          begin                           //1
             if ((strtoint(month_array[k][3]) mod 100)<>0) then
             begin                        //2
              Parameters.ParamByName('month1').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[k][3]+'-'+month_array[k][2]+'-1 00:00:00'));
              Parameters.ParamByName('month2').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[k][3]+'-'+month_array[k][2]+'-29 23:59:59'));
             end                      //2
             else
             begin                    //q
              if ((strtoint(month_array[k][3]) mod 400)=0) then
              begin                       //3
              Parameters.ParamByName('month1').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[k][3]+'-'+month_array[k][2]+'-1 00:00:00'));
              Parameters.ParamByName('month2').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[k][3]+'-'+month_array[k][2]+'-29 23:59:59'));
              end                         //3
              else
              begin                       //4
              Parameters.ParamByName('month1').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[k][3]+'-'+month_array[k][2]+'-1 00:00:00'));
              Parameters.ParamByName('month2').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[k][3]+'-'+month_array[k][2]+'-28 23:59:59'));
              end;                        //4
             end;                        //q
           end                          //1
          else
            begin                           //5
            Parameters.ParamByName('month1').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[k][3]+'-'+month_array[k][2]+'-1 00:00:00'));
            Parameters.ParamByName('month2').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[k][3]+'-'+month_array[k][2]+'-28 23:59:59'));
            end;                           //5
          end;                            //6
          end;                             //b
      end;  }                               //d
      open;
      first;
     for j:=1 to adoquery3.RecordCount do
     begin//x
      gain_month[k][1]:=gain_month[k][1]+strtofloat(adoquery3.FieldValues['income_money']);
      next;
     end;             //x
   end;          //y
 end;           //z


for l:=1 to 12 do
 begin             //z
   with ADOquery4 do
   begin           //y
     close;
     sql.Clear;
     sql.Add('select * From payouttable where (payout_date >= :month1 and payout_date <= :month2)');
     Parameters.ParamByName('month1').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[l][3]+'-'+month_array[l][2]+'-1 00:00:00'));
     Parameters.ParamByName('month2').Value:=formatdatetime('yyyy-m-d hh:mm:ss',monthday(strtoint(month_array[l][2]),strtoint(month_array[l][3])));
{     if (month_array[l][2]='1') or (month_array[l][2]='3') or (month_array[l][2]='5')or (month_array[l][2]='7')
     or (month_array[l][2]='8')or (month_array[l][2]='10')or (month_array[l][2]='12') then
     begin                       //a
     Parameters.ParamByName('month1').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[l][3]+'-'+month_array[l][2]+'-1 00:00:00'));
     Parameters.ParamByName('month2').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[l][3]+'-'+month_array[l][2]+'-31 23:59:59'));
     end                         //a
     else
     begin                       //b
      if (month_array[l][2]='4') or (month_array[l][2]='6') or (month_array[l][2]='9')or (month_array[l][2]='11') then
       begin                       //c
        Parameters.ParamByName('month1').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[l][3]+'-'+month_array[l][2]+'-1 00:00:00'));
        Parameters.ParamByName('month2').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[l][3]+'-'+month_array[l][2]+'-30 23:59:59'));
       end                        //c
      else
        begin                     //d
        if month_array[l][2]='2' then
         begin                            //6
         if ((strtoint(month_array[l][3]) mod 4)=0) then
          begin                           //1
             if ((strtoint(month_array[l][3]) mod 100)<>0) then
             begin                        //2
              Parameters.ParamByName('month1').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[l][3]+'-'+month_array[l][2]+'-1 00:00:00'));
              Parameters.ParamByName('month2').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[l][3]+'-'+month_array[l][2]+'-29 23:59:59'));
             end                      //2
             else
             begin                    //q
              if ((strtoint(month_array[l][3]) mod 400)=0) then
              begin                       //3
              Parameters.ParamByName('month1').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[l][3]+'-'+month_array[l][2]+'-1 00:00:00'));
              Parameters.ParamByName('month2').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[l][3]+'-'+month_array[l][2]+'-29 23:59:59'));
              end                         //3
              else
              begin                       //4
              Parameters.ParamByName('month1').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[l][3]+'-'+month_array[l][2]+'-1 00:00:00'));
              Parameters.ParamByName('month2').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[l][3]+'-'+month_array[l][2]+'-28 23:59:59'));
              end;                        //4
             end;                        //q
           end                          //1
          else
            begin                           //5
            Parameters.ParamByName('month1').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[l][3]+'-'+month_array[l][2]+'-1 00:00:00'));
            Parameters.ParamByName('month2').Value:=formatdatetime('yyyy-m-d hh:mm:ss',strtodatetime(month_array[l][3]+'-'+month_array[l][2]+'-28 23:59:59'));
            end;                           //5
          end;                            //6
          end;                             //b
      end;                                 //d      }
      open;
      first;
     for j:=1 to adoquery4.RecordCount do
     begin         //x
      gain_month[l][2]:=gain_month[l][2]+strtofloat(adoquery4.FieldValues['payout_money']);
      next;
     end;             //x
   end;          //y
 end;           //z

 for i:=1 to 12 do
   with listview1.Items.Add do
   begin
      caption:=month_array[i][1]+'收支情况';
      subitems.Add(floattostr(gain_month[i][1]));
      subitems.Add(floattostr(gain_month[i][2]));
      subitems.Add(floattostr(gain_month[i][1]-gain_month[i][2]));
   end;
 get_total;

end;

procedure TForm2.xpBitBtn12Click(Sender: TObject);
var i:integer;
begin
  dbchart1.Series[1].Clear;
  dbchart1.Series[0].Clear;
  for i:=0 to listview1.Items.Count-1 do
  begin
    DBchart1.Series[0].AddXY(i+1,strtofloat(listview1.Items.Item[i].SubItems[0]));
    DBchart1.Series[1].AddXY(i+1,strtofloat(listview1.Items.Item[i].SubItems[1]));
  end;
end;

procedure TForm2.xpBitBtn2Click(Sender: TObject);
begin
xpedit1.Text:='';
xpedit2.Text:='';
xpcombobox2.ItemIndex:=0;
end;

procedure TForm2.xpBitBtn4Click(Sender: TObject);
begin
xpedit3.Text:='';
xpcombobox1.ItemIndex:=0;
end;

end.

⌨️ 快捷键说明

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