Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

一个网上理财站点的设计(十七)

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

  今天,我们完成有关编程的最后一个专题:预算实际对照表的设计。在下一个专题中,我们将对整个模拟开发过程进行一个总结,并介绍其安装和初始化的过程。

  对于预算实际对照表,我们希望用户能够通过他对任一时间段的实际收支情况和预算进行比较。

下面是预算实际对照表的源程序:(report_5.php)


<?php
include ("cookie_check.php");
class report_5 {
  var $in_ex_type; //类型
  var $money_1;//实际收支额
  var $money_2;//预算收支额
  // 本方法生成某用户的预算实际对照表
  function add_item ($user, $date_begin,$date_end) {
    $sum_1_0=0;
    $sum_2_0=0;
    $sum_1_1=0;
    $sum_2_1=0;
    $i=1;
    $this->in_ex_type[1]='收入';
    $query = "select distinct in_ex_type.name as in_ex_type,
    in_ex_type.code as id_in_ex_type from
in_ex_type left join in_ex_condition on in_ex_type.
code=in_ex_condition.in_ex_type left join in_ex_budget on in_ex_type.
code=in_ex_budget.in_ex_type 
where (in_ex_condition.in_ex_type is not null or in_ex_budget.in_ex_type 
is not null) and (in_ex_condition.user='".$user."' 
or in_ex_budget.user='".$user."') and ((in_ex_condition.date>='".$date_begin."'
and in_ex_condition.date<='".$date_end."') 
or (in_ex_budget.ye_mo>=DATE_FORMAT('".$date_begin."','%Y%m') and 
in_ex_budget.ye_mo<=DATE_FORMAT('".$date_end."','%Y%m')))
 and in_ex_type.type=0 and in_ex_type.code<>44 and 
 in_ex_type.code<>1";
    $res = mysql_query($query); 
    $row = @mysql_fetch_array($res);
    while ($row)
      {$i++;
       $this->in_ex_type[$i] = $row['in_ex_type'];
       $query = "select sum(money*exchange_rate) as mymoney from 
       in_ex_condition,account,currency where date>='".$date_begin."' 
and date<='".$date_end."' and account.currency=currency.code and 
in_ex_condition.account=account.code and 
in_ex_condition.user='".$user."' and in_ex_condition.in_ex_type=
".$row['id_in_ex_type']." group by in_ex_type"; 
       $res1 = mysql_query($query); 
       $row1 = @mysql_fetch_array($res1);
       $this->money_1[$i] = $row1['mymoney'];
       $sum_1_0=$sum_1_0+$row1['mymoney'];
       $query = "select sum(money) as money from in_ex_budget where
       ye_mo>=DATE_FORMAT('".$date_begin."','%Y%m') 
and ye_mo<=DATE_FORMAT('".$date_end."','%Y%m') and in_ex_budget
.user='".$user."' and in_ex_budget.in_ex_type=".$row['id_in_ex_type']."
 group by in_ex_type"; 
       $res1 = mysql_query($query); 
       $row1 = @mysql_fetch_array($res1);
       $this->money_2[$i] = $row1['money'];
       $sum_2_0=$sum_2_0+$row1['money'];
       $row = @mysql_fetch_array($res);
      }
    $i++;
    $this->in_ex_type[$i]='收入总计';
    $this->money_1[$i]=$sum_1_0;
    $this->money_2[$i]=$sum_2_0;
    $i++;
    $this->in_ex_type[$i]='支出';
    $query = "select distinct in_ex_type.name as in_ex_type,in_ex_type.code
    as id_in_ex_type from in_ex_type left join in_ex_condition 
on in_ex_type.code=in_ex_condition.in_ex_type left join in_ex_budget on 
in_ex_type.code=in_ex_budget.in_ex_type 
where (in_ex_condition.in_ex_type is not null or in_ex_budget.in_ex_type 
is not null) and (in_ex_condition.user='".$user."' 
or in_ex_budget.user='".$user."') and ((in_ex_condition.date>=
'".$date_begin."' and in_ex_condition.date<='".$date_end."')
 or (in_ex_budget.ye_mo>=DATE_FORMAT('".$date_begin."','%Y%m') 
 and in_ex_budget.ye_mo<=DATE_FORMAT('".$date_end."','%Y%m')))
 and in_ex_type.type=1 and in_ex_type.code<>44 and 
 in_ex_type.code<>1";
    $res = mysql_query($query); 
    $row = @mysql_fetch_array($res);
    while ($row)
      {$i++;
       $this->in_ex_type[$i] = $row['in_ex_type'];
       $query = "select sum(money*exchange_rate) as mymoney from 
       in_ex_condition,account,currency where date>='".$date_begin."' 
and date<='".$date_end."' and account.currency=currency.code and 
in_ex_condition.account=account.code 
and in_ex_condition.user='".$user."' and 
in_ex_condition.in_ex_type=".$row['id_in_ex_type']." group by in_ex_type"; 
       $res1 = mysql_query($query); 
       $row1 = @mysql_fetch_array($res1);
       $this->money_1[$i] = $row1['mymoney'];
       $sum_1_1=$sum_1_1+$row1['mymoney'];
       $query = "select sum(money) as money from in_ex_budget where
       ye_mo>=DATE_FORMAT('".$date_begin."','%Y%m') 
and ye_mo<=DATE_FORMAT('".$date_end."','%Y%m') and 
in_ex_budget.user='".$user."' and 
in_ex_budget.in_ex_type=".$row['id_in_ex_type']." 
group by in_ex_type"; 
       $res1 = mysql_query($query); 
       $row1 = @mysql_fetch_array($res1);
       $this->money_2[$i] = $row1['money'];
       $sum_2_1=$sum_2_1+$row1['money'];
       $row = @mysql_fetch_array($res);
      }
    $i++;
    $this->in_ex_type[$i]='支出总计';
    $this->money_1[$i]=$sum_1_1;
    $this->money_2[$i]=$sum_2_1;
    $i++;
    $this->in_ex_type[$i]='收入减去支出总计';
    $this->money_1[$i]=$sum_1_0-$sum_1_1;
    $this->money_2[$i]=$sum_2_0-$sum_2_1;
    return $i;
  }
}
?>
<HTML>
<TITLE> 网上理财:预算实际对照表 </TITLE>
<BODY>
<P ALIGN=CENTER><FONT FACE="隶书" SIZE="7" COLOR="#0000FF">网上理财
</FONT><BR>
<P ALIGN=LEFT>
<FONT FACE="宋体" SIZE="3" COLOR="#0000FF"><A HREF="index.php" 
STYLE="Text-Decoration:none">首页</A>>><A HREF="report_5.php" 
STYLE="Text-Decoration:none">预算实际对照表</A>
<P ALIGN=CENTER><FONT FACE="隶书" SIZE="6" COLOR="#0000FF">
预算实际对照表</FONT><BR>
<FORM NAME="report_5" ACTION="report_5.php" METHOD="POST">
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0">
<TR>
<TD BGCOLOR="#FFFFFF" width=700>
<Font Face=宋体 Size=2 Color="#0000FF" ><INPUT TYPE=TEXT 
NAME="date_begin" SIZE="10" MAXLENGTH="10" value='<?php
if (!$date_begin)
{$today=getdate();
$date_begin=sprintf ("%04s-01-01",$today['year']);}
echo $date_begin
?>' onchange=javascript:document.report_5.submit()>-<INPUT 
TYPE=TEXT NAME="date_end" SIZE="10" MAXLENGTH="10" value='<?php
if (!$date_end)
{$today=getdate();
$date_end=sprintf ("%04s-%02s-%02s",$today['year'],$today['mon'],
$today['mday']);}
echo $date_end
?>' onchange=javascript:document.report_5.submit()></FONT>
</TD><TD BGCOLOR="#FFFFFF" width=100>
</TD></TR>
</TABLE>
</FORM><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" 
align=center>
<TR>
<TD BGCOLOR="#FFFFFF" ALIGN="left" VALIGN="MIDDLE" width=150>
<Font Face=宋体 Size=4 Color="#0000FF" >
收支类目</FONT>
</TD><TD BGCOLOR="#FFFFFF" ALIGN="right" width=200>
<Font Face=宋体 Size=4 Color="#0000FF" >
实际收支额_折算人民币</FONT>
</TD><TD BGCOLOR="#FFFFFF" ALIGN="right" width=200>
<Font Face=宋体 Size=4 Color="#0000FF" >
预算额</FONT>
</TD><TD BGCOLOR="#FFFFFF" ALIGN="right" width=200>
<Font Face=宋体 Size=4 Color="#0000FF" >
差额_折算人民币</FONT>
</TD></TR>
<?php
$report_5= new report_5;
$k=$report_5->add_item($cookie_user,$date_begin,$date_end);
if (!$limit) $limit=0;
$i=1;
while ($i<=15 and ($i+$limit)<=$k)
{echo "<TR>";
echo "<TD BGCOLOR='#FFFFFF' ALIGN=left>";
if (substr($report_5->in_ex_type[$limit+$i],0,4)!='收入' &&
substr($report_5->in_ex_type[$limit+$i],0,4)!='支出')
  echo "<Font Face=宋体 Size=2 Color='#0000FF' >";
else
  echo "<Font Face=宋体 Size=3 Color='#000000' >";
echo $report_5->in_ex_type[$limit+$i];
echo "</FONT>";
echo "</TD><TD BGCOLOR='#FFFFFF' ALIGN=right>";
if (substr($report_5->in_ex_type[$limit+$i],0,4)!='收入' && 
substr($report_5->in_ex_type[$limit+$i],0,4)!='支出')
  echo "<Font Face=宋体 Size=2 Color='#0000FF' >";
else
  echo "<Font Face=宋体 Size=2 Color='#000000' >";
if ($report_5->in_ex_type[$limit+$i]!='收入' && 
$report_5->in_ex_type[$limit+$i]!='支出')
printf ("%.2f",$report_5->money_1[$limit+$i]);
echo "</FONT>";
echo "</TD><TD BGCOLOR='#FFFFFF' ALIGN=right>";
if (substr($report_5->in_ex_type[$limit+$i],0,4)!='收入' && 
substr($report_5->in_ex_type[$limit+$i],0,4)!='支出')
  echo "<Font Face=宋体 Size=2 Color='#0000FF' >";
else
  echo "<Font Face=宋体 Size=2 Color='#000000' >";
if ($report_5->in_ex_type[$limit+$i]!='收入' &&
$report_5->in_ex_type[$limit+$i]!='支出')
printf ("%.2f",$report_5->money_2[$limit+$i]);
echo "</FONT>";
echo "</TD><TD BGCOLOR='#FFFFFF' ALIGN=right>";
if (substr($report_5->in_ex_type[$limit+$i],0,4)!='收入' && 
substr($report_5->in_ex_type[$limit+$i],0,4)!='支出')
  echo "<Font Face=宋体 Size=2 Color='#0000FF' >";
else
  echo "<Font Face=宋体 Size=2 Color='#000000' >";
if ($report_5->in_ex_type[$limit+$i]!='收入' && 
$report_5->in_ex_type[$limit+$i]!='支出')
printf ("%.2f",$report_5->money_1[$limit+$i]-$report_5->money_2[$limit+$i]);
echo "</FONT>";
echo "</TD></TR>";
$i++;}
echo "</TABLE>";
echo "<P ALIGN=RIGHT>";
$total=floor(($k-1)/15)*15; 
$limit_pre=$limit-15;
$limit_next=$limit+15;
echo "<Font Face=宋体 Size=3 Color='#0000FF' >";
echo "第";
echo $limit/15+1;
echo "页 共";
echo $total/15+1;
echo "页 ";
if ($limit!=0)
echo "<A HREF='report_5.php?limit=0&date_begin=".$date_begin."
&date_end=".$date_end."' STYLE='Text-Decoration:none'>";
echo "首页 ";
if ($limit!=0)
echo "</A>";
if ($limit<$total)
echo "<A HREF='report_5.php?limit=".$total."&date_begin=".$date_begin."
&date_end=".$date_end."' STYLE='Text-Decoration:none'>";
echo "尾页 ";
if ($limit!=$total)
echo "</A>";
if ($limit_pre>=0)
echo "<A HREF='report_5.php?limit=".$limit_pre."&date_begin=".$date_begin."
&date_end=".$date_end."' STYLE='Text-Decoration:none'>";
echo "前页 ";
if ($limit_pre>=0) echo "</A>";
if ($limit_next<=$total)
echo "<A HREF='report_5.php?limit=".$limit_next."&date_begin=".$date_begin."
&date_end=".$date_end."' STYLE='Text-Decoration:none'>";
echo "后页 ";
if ($limit_next<=$total)
echo "</A>";
echo "</FONT>";
?>
</BODY>
</HTML>


 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:一个网上理财站点的设计(十六)   下一篇:将你的网站从MySQL改为PostgreSQL(下)

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章