📄 search.~pas
字号:
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 + -