ขอตอบด้วยคน โดยไม่ต้องติดตั้ง COM ของ crystal report แค้สามารถออกรายงาน crystal report command line เข้าไปที่ http://www.rainforestnet.com/crystal-reports-exporter/ สามารถเชื่อมต่อกับ mysql ผ่าน myodbc 3.51 ได้ทั้งส่งแบบส่งค่า paramerter และ ผ่านstore procedure โดยใช้โปรแกรม crexport สามารถพิมพ์รูปออกในรายงาน pdf ได้
ตัวอย่าง โปรแกรมที่ได้ทดลองแล้วผ่าน
Code (PHP)
<?php
// you define this variable here so that it exists for the call to exec
$output = null;
// Windows users: 'dir c:\\' or something similar
$filename='rpt\\'.date ( "YmdHis" ).'.pdf';
$equip = '"equip:%แบบอื่น%"';
//echo $equip;
exec('crexport -F daomysqlparasp.rpt -a '.$equip.' -E pdf -O '.$filename, $output);
//echo "<pre>" . var_export($output, TRUE) . "</pre>\\n";
$my_pdf = "C:\\appserv\www\\cr8.5\\".$filename;
$len = filesize($my_pdf);
header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=".$filename);
readfile($filename);
?>
1. Start -> Control Panel -> Administrative Tools -> Data Sources (ODBC)
2. ODBC Data Source Administrator
2.1 ที่ TAB User DSN
2.2 กดปุ่ม Add
2.3 เลือก MySQL ODBC 3.51 Driver
2.3.1 Data Source Name : dao
2.3.2 Description : -
2.3.3 x TCP/IP Server : localhost port 3306
2.3.4 User : root
2.3.4 Password : 1234
2.3.5 Database : Test
2.3.6 กดปุ่ม Detail
2.3.6.1 ที่ TAB Connection :
2.3.6.2 เลือก x Interaction Client
2.3.6.3 เลือก Character Set : tis620
2.4 กดปุ่ม Test จะปรากฎ Test Result "Connection sussessful"
ขั้นที่ 3 สร้างแฟ้ม Crystal reports ทดลองโดยใช้โปรแกรม Crystal reports XI Professional
แบบไม่มี parameter และไม่มี store procedure (เพื่อทำความเข้าใจก่อน)
1. Start -> Crystal Reports 11
2. File -> New -> Blank Report
3. tab Data -> Create New Connection -> ODBC (RDO)
4. ODBC (RDO) -> เลือก Enter Connection String
5. Connection String ป้อน
Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=dao;User=root;Password=1234;Option=3;charset=tis620;Trusted_Connection=YES
6. กดปุ่ม print preview จะได้รูปตามที่ต้องการ
8. File -> Options...
8.1 Tab Reporting
8.2 ติ๊กเลือก Update Enterprise Report Properties on Save (check)
8.3 ติ๊กเลือก Update Connected Repository Objects on Open (check)
8.4 ไม่เลือก Save Data With Report (uncheck)
9. File -> Save
ขั้นที่ 4 ทดสอบ dos command
1. เข้าสู่ dos prompt โดย Start -> พิมพ์ cmd
2. เปลี่ยนไป folder ที่ต้องการ เช่น cd \appserv\www\cr8.5
3. copy file crexport.exe ไว้ที่ folder \appserv\www\cr8.5
4. C:\AppServ\www\CR8.5>crexport /?
C:\AppServ\www\CR8.5>crexport /?
Crystal Reports Exporter Command Line Utility. Version 2.1.11.1103
Copyright(c) 2011 Rainforest Software Solution http://www.rainforestnet.com
crexport Arguments Listing
---------------------------------------------------
-U database login username
-P database login password
-F Crystal reports path and filename (Mandatory)
-S Database Server Name (instance name)
-D Database Name
-O Crystal reports Output path and filename
-E Export file type.(pdf,doc,xls,rtf,htm,rpt,txt,csv...) If print to printer sim
ply specify "print"
-a Parameter value
-N Printer Name (Network printer : \\PrintServer\Printername or Local printer :
printername)
-C Number of copy to be printed
-l To write a log file. filename crexport-yyyyMMddHHmmss.log
---------------------------------------------------
Example: C:\> crexport -U user1 -P mypass -S Server01 -D "ExtremeDB" -F c:\test.
rpt -O d:\test.pdf -a "Supplier Name:Active Outdoors" -a "Date Range:(12-01-2001
,12-04-2002)"
Learn more in http://www.rainforestnet.com/crystal-reports-exporter/
C:\AppServ\www\CR8.5>
5. ทดลองรัน dos command
C:\AppServ\www\CR8.5>crexport -F daomysql.rpt -O daomysql.rpt -E pdf
Crystal Reports Exporter Command Line Utility. Version 2.1.11.1103
Copyright(c) 2011 Rainforest Software Solution http://www.rainforestnet.com
C:\AppServ\www\CR8.5>
6. จะได้ผลลัพธ์ daomysql.pdf