  | 
		 		   | 
	  	    
          
            
			
	
			
			 
                  
  
 
ผมต้องการให้หน้ารายงานแสดงคอลัมแต่ละบรรทัดให้ตรงกับวันเดือนปีที่ส่งค่ามา เช่น วันลาเริ่มต้นตั้งแต่วันที่ 2018-07-11 ถึง 2018-07-13 แต่เมื่อแสดงแถวออกมาแล้ว กับแสดงคอลัมเกินไป ช่วยด้วยครับ ผมงง กับโค๊ดมาก 
 
<?php 
include("../../auth.inc.php"); 
ini_set("memory_limit","1024M"); 
ini_set('max_execution_time', 300); 
 
if((($_REQUEST['year']) || ($_REQUEST['mont']) || ($_REQUEST['off_po'])) == '' ) 
{ 
	print "<script>window.close();</script>"; 
	exit(0); 
} 
 
//ini_set("memory_limit","1024M"); 
//============================================================+ 
// File name   : example_048.php 
// Begin       : 2009-03-20 
// Last Update : 2013-05-14 
// 
// Description : Example 048 for TCPDF class 
//               HTML tables and table headers 
// 
// Author: Nicola Asuni 
// 
// (c) Copyright: 
//               Nicola Asuni 
//               Tecnick.com LTD 
//               www.tecnick.com 
//               [email protected] 
//============================================================+ 
 
/** 
 * Creates an example PDF TEST document using TCPDF 
 * @package com.tecnick.tcpdf 
 * @abstract TCPDF - Example: HTML tables and table headers 
 * @author Nicola Asuni 
 * @since 2009-03-20 
 */ 
 
// Include the main TCPDF library (search for installation path). 
require_once('tcpdf_include.php'); 
 
// create new PDF document 
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); 
 
// set document information 
$pdf->SetCreator(PDF_CREATOR); 
$pdf->SetAuthor('Suracech Keawtasang'); 
$pdf->SetTitle('ระบบประมวลผลเวลาปฏิบัติราชการและการลา'); 
$pdf->SetSubject('รายงานปฏิทินราชการ'); 
$pdf->SetKeywords('ฝ่ายบริหารงานบุคคล, องค์การบริหารส่วนจังหวัดสมุทรปราการ, สำนักปลัดองค์การบริหารส่วนจังหวัด'); 
 
// set default header data 
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.'', PDF_HEADER_STRING); 
 
// set header and footer fonts 
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); 
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); 
 
// set default monospaced font 
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); 
 
// set margins 
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); 
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER); 
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER); 
 
// set auto page breaks 
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); 
 
// set image scale factor 
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); 
 
// set some language-dependent strings (optional) 
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) { 
	require_once(dirname(__FILE__).'/lang/eng.php'); 
	$pdf->setLanguageArray($l); 
} 
 
// --------------------------------------------------------- 
 
// set font 
$pdf->SetFont('thsarabunnew', 'B', 16); 
 
// add a page 
$pdf->AddPage(); 
 
$YEAR = $_REQUEST['year']+543; 
 
if($_REQUEST['mont'] == 01) { $mont_thai = "มกราคม"; } else if($_REQUEST['mont'] == 02) { $mont_thai = "กุมภาพันธ์"; } else if($_REQUEST['mont'] == 03) { $mont_thai = "มีนาคม"; } else if($_REQUEST['mont'] == 04) { $mont_thai = "เมษายน"; } else if($_REQUEST['mont'] == 05) { $mont_thai = "พฤษภาคม"; } else if($_REQUEST['mont'] == 06) { $mont_thai = "มิถุนายน"; } else if($_REQUEST['mont'] == 07) { $mont_thai = "กรกฎาคม"; } else if($_REQUEST['mont'] == 08) { $mont_thai == "สิงหาคม"; } else if($_REQUEST['mont'] == 09) { $mont_thai = "กันยายน"; } else if($_REQUEST['mont'] == 10) { $mont_thai = "ตุลาคม"; } else if($_REQUEST['mont'] == 11) { $mont_thai = "พฤศจิกายน"; } else if($_REQUEST['mont'] == 12) { $mont_thai = "ธันวาคม"; } 
 
$pdf->Write(0, 'ประวัติการทำงาน ประจำเดือน '.$mont_thai.' ', '', 0, 'L', true, 0, false, false, 0); 
 
$pdf->SetFont('thsarabunnew', '',10); 
 
// ----------------------------------------------------------------------------- 
 
$tbl = <<<EOD 
<table width="100%" border="1" cellspacing="0" cellpadding="0"> 
	<thead> 
    <tr bgcolor="#F3F2F2"> 
      <td align="center" rowspan="2" width="2%">ที่</td> 
      <td align="center" rowspan="2" width="16%">ชื่อ สกุล</td> 
      <td align="center" width="56%" colspan="31">เดือน $mont_thai พ.ศ. $YEAR </td> 
      <td align="center" rowspan="2" width="3%">รวม\n(ลป)</td> 
      <td align="center" rowspan="2" width="3%">รวม\n(ลก)</td> 
      <td align="center" rowspan="2" width="3%">รวม\n(ลพ)</td> 
      <td align="center" rowspan="2" width="3%">รวม\n(ข)</td> 
      <td align="center" rowspan="2" width="3%">รวม\n(ส)</td> 
      <td align="center" rowspan="2" width="3%">รวม\n(ร)</td> 
      <td align="center" rowspan="2" width="4%">เซ็นต์\nทราบ</td> 
      <td align="center" rowspan="2" width="4%">หมาย\nเหตุ</td> 
    </tr> 
    <tr> 
EOD; 
$info = cal_days_in_month( CAL_GREGORIAN , $_REQUEST['mont'] , $_REQUEST['year'] ) ; 
$num = (56/$info); 
for($i=1;$i<=$info;$i++) 
{ 
$tbl .='<td align="center" width="'.$num.'%">'.$i.'</td>'; 
} 
$tbl .= <<<EOD 
    </tr> 
	</thead> 
<tbody>  
EOD; 
 
// 1. ให้แสดงหน่วยงานก่อน 
$sql="select DISTINCT off_po from table_position where off_po='".$_REQUEST['off_po']."' ORDER BY table_position.off_po ASC"; 
$result=mysql_query($sql); 
while($fetcharr=mysql_fetch_array($result)) 
{ 
	if($fetcharr['off_po'] == 101) { $off_po = "สำนักปลัดองค์การบริหารส่วนจังหวัด"; } else if($fetcharr['off_po'] == 102) { $off_po = "กองกิจการสภาองค์การบริหารส่วนจังหวัด"; } else if($fetcharr['off_po'] == 103) { $off_po = "กองแผนและงบประมาณ"; } else if($fetcharr['off_po'] == 104) { $off_po = "กองคลัง"; } else if($fetcharr['off_po'] == 105) { $off_po = "กองช่าง"; } else if($fetcharr['off_po'] == 106) { $off_po = "กองการศึกษา ศาสนาและวัฒนธรรม"; } else if($fetcharr['off_po'] == 107) { $off_po = "กองผังเมือง"; } else if($fetcharr['off_po'] == 108) { $off_po = "หน่วยตรวจสอบภายใน"; } 
	 
	$A++; 
	$col=$i+10; 
 
$tbl .= <<<EOD 
	<tr> 
      <td colspan="$col" bgcolor="#ECEFDE" align="center">$off_po</td> 
	</tr> 
EOD; 
 
// 2. แสดงรายชื่อทั้งหมด 
	 
$sql1="select table_personal.ID_per,table_personal.firstname,table_personal.name,table_personal.lassname from table_personal INNER JOIN table_position ON (table_personal.ID_po=table_position.ID_po) where table_position.off_po='".$fetcharr['off_po']."' ORDER BY table_position.type_po ASC, table_position.level_po ASC, table_position.depart_po ASC, table_personal.ID_po ASC"; 
$result1=mysql_query($sql1); 
while($fetcharr1=mysql_fetch_array($result1)) 
{ 
	$num_at++; 
	 
$tbl .= <<<EOD 
	<tr> 
      <td width="2%" align="center">$num_at</td> 
      <td width="16%">$fetcharr1[firstname]$fetcharr1[name] $fetcharr1[lassname]</td> 
EOD; 
	 
for($B=1;$B<=$info;$B++)  // พิมพ์คอลัมจำนวนเดือนออกมา 
{ 
	// แสดงข้อมูลวันต่อวันโดยเปรียบเทียบ วันที่มาทำงาน และวันที่ลาราชการ 
	 
	$date_time = $_REQUEST['year']."-".$_REQUEST['mont']."-".$B;  // ปี - เดือน - วัน 
	 
	$sql2="select day_com from table_off_celendar where ID_per='".$fetcharr1['ID_per']."' and day_com='".$date_time."' "; 
	$result2=mysql_query($sql2); 
	$fetcharr2=mysql_fetch_array($result2); 
	 
	$sql3="select day_late from table_off_celendar where ID_per='".$fetcharr1['ID_per']."' and day_com='".$date_time."' "; 
	$result3=mysql_query($sql3); 
	$fetcharr3=mysql_fetch_array($result3); 
	 
	$sql4="select day_service from table_off_celendar where ID_per='".$fetcharr1['ID_per']."' and day_com='".$date_time."' "; 
	$result4=mysql_query($sql4); 
	$fetcharr4=mysql_fetch_array($result4); 
	 
	$sql5="select * from table_leave_celendar where ID_per='".$fetcharr1['ID_per']."' and (day_ho_start BETWEEN ('".$date_time."') AND ('".$_REQUEST['year']."-".$_REQUEST['mont']."-".$info."')) and (day_ho_end BETWEEN ('".$date_time."') AND ('".$_REQUEST['year']."-".$_REQUEST['mont']."-".$info."'))"; 
//	print $sql5; 
//	die; 
	$result5=mysql_query($sql5); 
	$fetcharr5=mysql_fetch_array($result5); 
 
// เมื่อมาทำงานปกติ table_off_celendar หรือไม่มีข้อมูลในตาราง table_leave_celendar 
	 
if(($fetcharr2['day_com']) || ($fetcharr3['day_late']) || ($fetcharr4['day_service'])) 
{ 
	if($fetcharr2['day_com']) 
	{ 
		$daycom = "/"; 
	} else if($fetcharr3['day_late']) 
	{ 
		$daycom = "ส"; 
	} else if($fetcharr4['day_service']) 
	{ 
		$daycom = "ร"; 
	} 
$tbl .='<td width="'.$num.'%" align="center">'.$daycom.'</td>'; 
	 
} else { 
	 
	if(($fetcharr5['IDtype_ho'] == 11) and ($fetcharr5['day_ho_start'] == $date_time)) 
	{ 
		$dayend = (substr($fetcharr5['day_ho_end'],8,-1)); 
		$day11 = (strtotime($fetcharr5['day_ho_end']) - strtotime($fetcharr5['day_ho_start']))/  ( 60 * 60 * 24 );  // 1 วัน 
		$N=$B+$day11; 
		for($C=$B;$C<=$N;$C++) 
		{ 
			$daycom = "ลป"; 
			$tbl .='<td width="'.$num.'%" align="center">'.$daycom.'</td>'; 
		} 
	} else { 
		if($fetcharr5['day_ho_end'] == $date_time) 
		{ 
			$daycom = "ลป"; 
			$tbl .='<td width="'.$num.'%" align="center">'.$daycom.'</td>'; 
		} 
		 
	} 
if((!$fetcharr2['day_com']) || (!$fetcharr3['day_late']) || (!$fetcharr4['day_service']) || (!$fetcharr5['day_ho_start']) || (!$fetcharr5['day_ho_end'])) 
{ 
	$tbl .='<td width="'.$num.'%" align="center"> </td>';	 
} 
//$tbl .='<td width="'.$num.'%" align="center"> </td>';	 
} 
	 
//if((!$fetcharr2['day_com']) and (!$fetcharr3['day_late']) and (!$fetcharr4['day_service'])) { 
	 
//	if(($fetcharr5['IDtype_ho'] == '11') and ((!$fetcharr2['day_com']) || (!$fetcharr3['day_late']) || (!$fetcharr4['day_service'])) ) 
//	{ 
	//	$day11 = (strtotime($fetcharr5['day_ho_end']) - strtotime($fetcharr5['day_ho_start']))/  ( 60 * 60 * 24 );  // 1 วัน 
		 
	//	for($C=1;$C<=($day11+1);$C++) 
	//	{ 
	//		if(($fetcharr5['day_ho_start']) <= ($fetcharr5['day_ho_end'])) 
	//		{ 
		 
	//			$daycom = "ลป"; 
	//			$tbl .='<td width="'.$num.'%" align="center">'.$daycom.'</td>'; 
	//		} 
	//	} 
//	} 
	 
//} 
	 
//if((!$fetcharr2['day_com']) and (!$fetcharr3['day_late']) and (!$fetcharr4['day_service'])) 
//{ 
//	if($fetcharr5['IDtype_ho'] == 11) 
//	{ 
//			$daycom = "ลป"; 
//	} 
//} 
	 
//if((!$fetcharr2['day_com']) || (!$fetcharr3['day_late']) || (!$fetcharr4['day_service']) || (!$fetcharr5['IDtype_ho'])) { 
//	$tbl .='<td width="'.$num.'%" align="center">'.$daycom.'</td>';	 
//} 
 
 
	 
} 
	 
$tbl .= <<<EOD 
      <td width="3%"> </td> 
      <td width="3%"> </td> 
      <td width="3%"> </td> 
      <td width="3%"> </td> 
      <td width="3%"> </td> 
      <td width="3%"> </td> 
      <td width="4%"> </td> 
      <td width="4%"> </td> 
	</tr> 
EOD; 
	 
	 
	 
} // จบแสดงรายชื่อ 
	 
} // จบแสดงชื่อกอง 
 
$tbl .= <<<EOD 
</tbody> 
</table> 
EOD; 
 
/* 
$tbl = <<<EOD 
<table cellspacing="0" cellpadding="1" border="1"> 
    <tr> 
        <td rowspan="3">COL 1 - ROW 1<br />COLSPAN 3</td> 
        <td>COL 2 - ROW 1</td> 
        <td>COL 3 - ROW 1</td> 
    </tr> 
    <tr> 
    	<td rowspan="2">COL 2 - ROW 2 - COLSPAN 2<br />text line<br />text line<br />text line<br />text line</td> 
    	<td>COL 3 - ROW 2</td> 
    </tr> 
    <tr> 
       <td>COL 3 - ROW 3</td> 
    </tr> 
 
</table> 
EOD; 
 
$pdf->writeHTML($tbl, true, false, false, false, ''); 
 
// ----------------------------------------------------------------------------- 
 
$tbl = <<<EOD 
<table cellspacing="0" cellpadding="1" border="1"> 
    <tr> 
        <td rowspan="3">COL 1 - ROW 1<br />COLSPAN 3<br />text line<br />text line<br />text line<br />text line<br />text line<br />text line</td> 
        <td>COL 2 - ROW 1</td> 
        <td>COL 3 - ROW 1</td> 
    </tr> 
    <tr> 
    	<td rowspan="2">COL 2 - ROW 2 - COLSPAN 2<br />text line<br />text line<br />text line<br />text line</td> 
    	 <td>COL 3 - ROW 2</td> 
    </tr> 
    <tr> 
       <td>COL 3 - ROW 3</td> 
    </tr> 
 
</table> 
EOD; 
 
$pdf->writeHTML($tbl, true, false, false, false, ''); 
 
// ----------------------------------------------------------------------------- 
 
$tbl = <<<EOD 
<table cellspacing="0" cellpadding="1" border="1"> 
    <tr> 
        <td rowspan="3">COL 1 - ROW 1<br />COLSPAN 3<br />text line<br />text line<br />text line<br />text line<br />text line<br />text line</td> 
        <td>COL 2 - ROW 1</td> 
        <td>COL 3 - ROW 1</td> 
    </tr> 
    <tr> 
    	<td rowspan="2">COL 2 - ROW 2 - COLSPAN 2<br />text line<br />text line<br />text line<br />text line</td> 
    	 <td>COL 3 - ROW 2<br />text line<br />text line</td> 
    </tr> 
    <tr> 
       <td>COL 3 - ROW 3</td> 
    </tr> 
 
</table> 
EOD; 
 
$pdf->writeHTML($tbl, true, false, false, false, ''); 
 
// ----------------------------------------------------------------------------- 
 
$tbl = <<<EOD 
<table border="1"> 
<tr> 
<th rowspan="3">Left column</th> 
<th colspan="5">Heading Column Span 5</th> 
<th colspan="9">Heading Column Span 9</th> 
</tr> 
<tr> 
<th rowspan="2">Rowspan 2<br />This is some text that fills the table cell.</th> 
<th colspan="2">span 2</th> 
<th colspan="2">span 2</th> 
<th rowspan="2">2 rows</th> 
<th colspan="8">Colspan 8</th> 
</tr> 
<tr> 
<th>1a</th> 
<th>2a</th> 
<th>1b</th> 
<th>2b</th> 
<th>1</th> 
<th>2</th> 
<th>3</th> 
<th>4</th> 
<th>5</th> 
<th>6</th> 
<th>7</th> 
<th>8</th> 
</tr> 
</table> 
EOD; 
 
$pdf->writeHTML($tbl, true, false, false, false, ''); 
 
// ----------------------------------------------------------------------------- 
 
// Table with rowspans and THEAD 
$tbl = <<<EOD 
<table border="1" cellpadding="2" cellspacing="2"> 
<thead> 
 <tr style="background-color:#FFFF00;color:#0000FF;"> 
  <td width="30" align="center"><b>A</b></td> 
  <td width="140" align="center"><b>XXXX</b></td> 
  <td width="140" align="center"><b>XXXX</b></td> 
  <td width="80" align="center"> <b>XXXX</b></td> 
  <td width="80" align="center"><b>XXXX</b></td> 
  <td width="45" align="center"><b>XXXX</b></td> 
 </tr> 
 <tr style="background-color:#FF0000;color:#FFFF00;"> 
  <td width="30" align="center"><b>B</b></td> 
  <td width="140" align="center"><b>XXXX</b></td> 
  <td width="140" align="center"><b>XXXX</b></td> 
  <td width="80" align="center"> <b>XXXX</b></td> 
  <td width="80" align="center"><b>XXXX</b></td> 
  <td width="45" align="center"><b>XXXX</b></td> 
 </tr> 
</thead> 
 <tr> 
  <td width="30" align="center">1.</td> 
  <td width="140" rowspan="6">XXXX<br />XXXX<br />XXXX<br />XXXX<br />XXXX<br />XXXX<br />XXXX<br />XXXX</td> 
  <td width="140">XXXX<br />XXXX</td> 
  <td width="80">XXXX<br />XXXX</td> 
  <td width="80">XXXX</td> 
  <td align="center" width="45">XXXX<br />XXXX</td> 
 </tr> 
 <tr> 
  <td width="30" align="center" rowspan="3">2.</td> 
  <td width="140" rowspan="3">XXXX<br />XXXX</td> 
  <td width="80">XXXX<br />XXXX</td> 
  <td width="80">XXXX<br />XXXX</td> 
  <td align="center" width="45">XXXX<br />XXXX</td> 
 </tr> 
 <tr> 
  <td width="80">XXXX<br />XXXX<br />XXXX<br />XXXX</td> 
  <td width="80">XXXX<br />XXXX</td> 
  <td align="center" width="45">XXXX<br />XXXX</td> 
 </tr> 
 <tr> 
  <td width="80" rowspan="2" >RRRRRR<br />XXXX<br />XXXX<br />XXXX<br />XXXX<br />XXXX<br />XXXX<br />XXXX</td> 
  <td width="80">XXXX<br />XXXX</td> 
  <td align="center" width="45">XXXX<br />XXXX</td> 
 </tr> 
 <tr> 
  <td width="30" align="center">3.</td> 
  <td width="140">XXXX1<br />XXXX</td> 
  <td width="80">XXXX<br />XXXX</td> 
  <td align="center" width="45">XXXX<br />XXXX</td> 
 </tr> 
 <tr> 
  <td width="30" align="center">4.</td> 
  <td width="140">XXXX<br />XXXX</td> 
  <td width="80">XXXX<br />XXXX</td> 
  <td width="80">XXXX<br />XXXX</td> 
  <td align="center" width="45">XXXX<br />XXXX</td> 
 </tr> 
</table> 
EOD; 
 
$pdf->writeHTML($tbl, true, false, false, false, ''); 
 
$pdf->writeHTML($tbl, true, false, false, false, ''); 
 
// ----------------------------------------------------------------------------- 
 
// NON-BREAKING TABLE (nobr="true") 
 
$tbl = <<<EOD 
<table border="1" cellpadding="2" cellspacing="2" nobr="true"> 
 <tr> 
  <th colspan="3" align="center">NON-BREAKING TABLE</th> 
 </tr> 
 <tr> 
  <td>1-1</td> 
  <td>1-2</td> 
  <td>1-3</td> 
 </tr> 
 <tr> 
  <td>2-1</td> 
  <td>3-2</td> 
  <td>3-3</td> 
 </tr> 
 <tr> 
  <td>3-1</td> 
  <td>3-2</td> 
  <td>3-3</td> 
 </tr> 
</table> 
EOD; 
 
$pdf->writeHTML($tbl, true, false, false, false, ''); 
 
// ----------------------------------------------------------------------------- 
 
// NON-BREAKING ROWS (nobr="true") 
 
$tbl = <<<EOD 
<table border="1" cellpadding="2" cellspacing="2" align="center"> 
 <tr nobr="true"> 
  <th colspan="3">NON-BREAKING ROWS</th> 
 </tr> 
 <tr nobr="true"> 
  <td>ROW 1<br />COLUMN 1</td> 
  <td>ROW 1<br />COLUMN 2</td> 
  <td>ROW 1<br />COLUMN 3</td> 
 </tr> 
 <tr nobr="true"> 
  <td>ROW 2<br />COLUMN 1</td> 
  <td>ROW 2<br />COLUMN 2</td> 
  <td>ROW 2<br />COLUMN 3</td> 
 </tr> 
 <tr nobr="true"> 
  <td>ROW 3<br />COLUMN 1</td> 
  <td>ROW 3<br />COLUMN 2</td> 
  <td>ROW 3<br />COLUMN 3</td> 
 </tr> 
</table> 
EOD; 
*/ 
 
 
$pdf->writeHTML($tbl, true, false, false, false, ''); 
 
// ----------------------------------------------------------------------------- 
 
//Close and output PDF document 
$pdf->Output('reportALL.pdf', 'I'); 
 
//============================================================+ 
// END OF FILE 
//============================================================+
 
 
  Tag : PHP, MySQL               
                        | 
           
          
            | 
			
                             | 
           
          
            
              
                   | 
                   | 
                   | 
               
              
                   | 
                
                    
                      | Date :
                          2018-07-12 09:26:20 | 
                      By :
                          AB253 | 
                      View :
                          2180 | 
                      Reply :
                          1 | 
                     
                  | 
                   | 
               
              
                   | 
                   | 
                   | 
               
              | 
           
          
            | 
			 | 
           
         
	    
		             | 
		
			  |