-1
PHPで自動小計に問題があります。小計を計算するとエラーが発生する
最初に小計のみを記録すると、次に&が自動的に小計になることができますが、最初の小計の最初のレコードでは小計の合計ができません。
しかし、第二&については、次の小計要約は右である、あなたは下の画像を見ることができます:
この私のPHPコードの私を助けてください。
$rm_kode = $_POST['wl'];
$tahun = $_POST['th'];
$bulan = $mLoad->add_zero($_POST['bl']);
#$m_db2->debug = true;
if(!empty($bulan)){
if(!empty($rm_kode)){
$tanya = "AND kode_rsm='$rm_kode'";
}
$rs = $m_db2->Execute("SELECT DISTINCT
nm_wil,
kode_rsm,
nama_rsm,
area,
area_am_kode,
area_am_nama,
mr_kode,
mr_nama,
tahun,
bln,
SUM (
(
CASE
WHEN target_qty < 0 THEN
0
ELSE
target_qty
END
)
) AS target_qty,
SUM (
(
CASE
WHEN target_value < 0 THEN
0
ELSE
target_value
END
)
) AS target_value,
SUM (total_qty) AS total_qty,
SUM (total_value) AS total_value
FROM
v_report_sales_2015
WHERE
tahun= '$tahun'
AND (
bln= '$bulan'
/*AND bln :: INTEGER <= '11'*/
)
--AND target_qty<>-1
$tanya
AND am_is_lock = 'f'
AND rsm_is_lock = 'f'
AND mr_is_lock = 'f'
GROUP BY
mr_kode,
mr_nama,
area,
area_am_kode,
area_am_nama,
kode_rsm,
nama_rsm,
nm_wil,
tahun,
bln");
$no =1;
#Get Nama SM
$rsb = $m_db2->Execute("SELECT usr_nama FROM vsiko_users WHERE usr_sales='$rm_kode'");
#Set awal nilai sebagai nol;
$sub_tqty = $sub_tval = $sub_rqty = $sub_rval = $goal_am = 0;
while(!$rs->EOF)
{
#Group By SM
if($cur_rsm!=$rs->fields['kode_rsm'])
{
$cur_rsm =$rs->fields['kode_rsm'];
$am = 1;
echo '<tr>
<td colspan="8"></td>
</tr>
<tr class="alert alert-warning">
<td></td>
<td>'.$rs->fields['kode_rsm'].'</td>
<td>'.$rs->fields['nama_rsm'].'</td>
<td>'.$rs->fields['nm_wil'].'</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>';
}
#Group By AM
if(@$cur_am!=$rs->fields['area_am_kode'])
{
$cur_am = $rs->fields['area_am_kode'];
#Produk Group AM
$rsc = $m_db2->Execute("SELECT a.ins_group_produk FROM mst_insentive_pgroup AS a WHERE a.ins_kode='".$rs->fields['pg_am']."'");
echo '<tr>
<td colspan="8"></td>
</tr>
<tr class="alert alert-success">
<td align="center">
<button class="btn btn-sm btn-success" onclick=bukaWin("detail.mul?app=sales&mod=print_sales_am&th='.str_replace('=','',base64_encode($tahun)).'&bl='.str_replace('=','',base64_encode($bulan)).'&sl='.str_replace('=','',base64_encode($rs->fields['area_am_kode'])).'&sid='.$mLoad->mSID().'")><span class="glyphicon glyphicon-print"></span></button></button>
</td>
<td>'.$rs->fields['area_am_kode'].'</td>
<td>'.$rs->fields['area_am_nama'].'</td>
<td>'.$rs->fields['area'].'</td>
<td colspan="5"><small>'.$rsc->fields['ins_group_produk'].'</small></td>
</tr>';
}
#Sales MR
#Hitung Goal per MR dalam Persen
$goal = @($rs->fields['total_value']/$rs->fields['target_value'])*100;
#Produk Group AM
$rsd = $m_db2->Execute("SELECT a.ins_group_produk FROM mst_insentive_pgroup AS a WHERE a.ins_kode='".$rs->fields['pg_mr']."'");
echo '<tr>
<td><button class="btn btn-sm btn-default" onclick=bukaWin("detail.mul?app=sales&mod=print_sales_mr&th='.str_replace('=','',base64_encode($tahun)).'&bl='.str_replace('=','',base64_encode($bulan)).'&sl='.str_replace('=','',base64_encode($rs->fields['mr_kode'])).'&sid='.$mLoad->mSID().'")><span class="glyphicon glyphicon-print"></span></button></td>
<td>'.$rs->fields['mr_kode'].'</td>
<td>'.$rs->fields['mr_nama'].'</td>
<td>'.$rsd->fields['ins_group_produk'].'</td>
<td align="right">'.number_format($rs->fields['target_qty']).'</td>
<td align="right">'.number_format($rs->fields['target_value']).'</td>
<td align="right">'.number_format($rs->fields['total_qty']).'</td>
<td align="right">'.number_format($rs->fields['total_value']).'</td>
<td align="right">'.number_format(round($goal,2),2).' %</td>
</tr>';
#Hitung Sub Total
#Subtotal Target
$sub_tqty += $rs->fields['target_qty'];
$sub_tval += $rs->fields['target_value'];
#Subtotal Reals
$sub_rqty += $rs->fields['total_qty'];
$sub_rval += $rs->fields['total_value'];
#Hitung Goal per AM dalam Persen
$goal_am= @($sub_rval/$sub_tval)*100;
#Hitung Goal Nasional
$goal_nas= @($gran_rval/$gran_tval)*100;
#Hitung Grand Total
$gran_tqty += $rs->fields['target_qty'];
$gran_tval += $rs->fields['target_value'];
$gran_rqty += $rs->fields['total_qty'];
$gran_rval += $rs->fields['total_value'];
$rs->MoveNext();
#Hitung Sub Total Group By AM
if(@$cu_am!=$rs->fields['area_am_nama'])
{
$cu_am = $rs->fields['area_am_nama'];
echo '<tr>
<td colspan="4"></td>
<td align="right" class="alert alert-danger">'.number_format($sub_tqty).'</td>
<td align="right" class="alert alert-danger">'.number_format($sub_tval).'</td>
<td align="right" class="alert alert-danger">'.number_format($sub_rqty).'</td>
<td align="right" class="alert alert-danger">'.number_format($sub_rval).'</td>
<td align="right" class="alert alert-danger">'.number_format(round($goal_am,2),2).' %</td>
</tr>';
#Reset setiap kali group selanjutnya
$goal_am = 0;
$sub_tqty = 0;
$sub_tval = 0;
$sub_rqty = 0;
$sub_rval = 0;
}
}
echo '<tr>
<td colspan="8"></td>
</tr>
<tr id="tebal">
<td colspan="4" align="center"><b>Grand Total </b> # <i>'.ucwords(strtolower($rsb->fields['usr_nama'])).'</i></td>
<td align="right" class="alert alert-warning"><b>'.number_format($gran_tqty).'</b></td>
<td align="right" class="alert alert-warning"><b>'.number_format($gran_tval).'</b></td>
<td align="right" class="alert alert-warning"><b>'.number_format($gran_rqty).'</b></td>
<td align="right" class="alert alert-warning"><b>'.number_format($gran_rval).'</b></td>
<td align="right" class="alert alert-warning"><b>'.number_format(round($goal_nas,2),2).' %</b></td>
</tr>';
}else{
echo '<tr>
<td colspan="9" align="center">Pilih kriteria pencarian terlebih dahulu</td>
</td>';
}
たTHX @suraj、私はなし私のループを理解している初心者 – Muyana