There are two syntax expressions for parameter referencing in JasperReports: $P{} and $P!{}.
$P{paramName} syntax is using mostly for setting WHERE input parameters values. The replacement algorithm is "smart", its implementation uses java.sql.PreparedStatement: for java.lang.String parameter the engine will replace $P{parameterName} with quoted value, for java.lang.Integer - with numeric value and so on.
The sample:
| Parameter name | Parameter type | Parameter value |
|:---------------|-------------------|:---------------:|
| eventName | java.lang.String | Olympic Games |
| eventType | java.lang.Integer | 2 |
Original expression (to replace):
SELECT startDate, endDate, rating FROM events WHERE name=$P{eventName} AND type=$P{eventType}
The result will be:
SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND type=2
$P!{paramName} syntax is using mostly for doing the "simple" replace.
The sample:
| Parameter name | Parameter type | Parameter value |
|:---------------|------------------:|:---------------:|
| tableName | java.lang.String | events |
| eventName | java.lang.String | Olympic Games |
| channel | java.lang.String | 'BBC' |
| type | java.lang.String | sport |
Original expression (to replace):
SELECT startDate, endDate, rating FROM $P!{tableName} WHERE name='$P!{eventName}' AND channel=$P!{channel} AND type=$P!{type}
The result will be:
SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND channel='BBC' AND type=sport
For more information you can read this Using report parameters post and look at this Query sample.
In your case the right expression may be like this:
SELECT name, phone, email FROM company WHERE $P!{clause} = $P{key} ORDER BY $P!{order}
where $P{key} is a java.lang.String parameter
or like this (it depends on $P!{clause} value)
SELECT name, phone, email FROM company WHERE $P!{clause} = $P!{key} ORDER BY $P!{order}
where $P{key} is a java.lang.String parameter
มีสองแสดงออกไวยากรณ์สำหรับพารามิเตอร์อ้างอิงใน JasperReports เป็น: $ P {} และ $ P {}.
$ P {} paramName ไวยากรณ์ที่ใช้ส่วนใหญ่สำหรับการป้อนข้อมูลการตั้งค่าตำแหน่งค่าพารามิเตอร์ วิธีเปลี่ยนคือ "สมาร์ท" การดำเนินงานของใช้ java.sql.PreparedStatement: สำหรับพารามิเตอร์ java.lang.String เครื่องยนต์จะแทนที่ $ P {} parameterName มีค่าที่ยกมาสำหรับ java.lang.Integer - มีค่าตัวเลขและอื่น ๆ .
ตัวอย่าง:
| ชื่อพารามิเตอร์ | ชนิดของพารามิเตอร์ | ค่าพารามิเตอร์ |
|: --------------- | ------------------- |: -------- -------: |
| EventName | java.lang.String | การแข่งขันกีฬาโอลิมปิก |
| eventType | java.lang.Integer | 2 |
แสดงออก (Original เพื่อแทนที่):
SELECT STARTDATE, endDate คะแนนจากการแข่งขันที่ชื่อ = $ P {EventName} และประเภท = $ P {eventType}
ผลจะเป็น:
SELECT STARTDATE, endDate คะแนนจากการแข่งขันที่ชื่อ = ' การแข่งขันกีฬาโอลิมปิก 'และประเภท = 2
! $ P {} paramName ไวยากรณ์ที่ใช้ส่วนใหญ่สำหรับการทำ "ง่าย" แทนที่.
ตัวอย่าง:
| ชื่อพารามิเตอร์ | ชนิดของพารามิเตอร์ | ค่าพารามิเตอร์ |
|: --------------- | ------------------: |: -------- -------: |
| tableName | java.lang.String | เหตุการณ์ |
| EventName | java.lang.String | การแข่งขันกีฬาโอลิมปิก |
| ช่อง | java.lang.String | 'บีบีซี' |
| พิมพ์ | java.lang.String | กีฬา |
แสดงออก (Original เพื่อแทนที่):
! SELECT STARTDATE, endDate คะแนนจาก $ P {tableName} ที่ชื่อ = '! $ P {EventName} "และช่อง = $ P {ช่อง} และประเภท = $ P {ประเภท }
ผลจะเป็น:
SELECT STARTDATE, endDate คะแนนจากการแข่งขันที่ชื่อ = 'โอลิมปิกเกมส์' และช่อง = 'บีบีซี' และประเภท = กีฬา
สำหรับข้อมูลเพิ่มเติมคุณสามารถอ่านนี้โดยใช้พารามิเตอร์รายงานโพสต์และดูตัวอย่างแบบสอบถามนี้.
ใน กรณีของคุณการแสดงออกที่เหมาะสมอาจเป็นเช่นนี้
SELECT ชื่อโทรศัพท์, อีเมล์จาก บริษัท WHERE $ P {} ข้อ = $ P {สำคัญ} ORDER BY $ P {} สั่งซื้อ!
ที่ $ P {สำคัญ} เป็น java.lang .String พารามิเตอร์
หรือเช่นนี้ (มันขึ้นอยู่กับ $ P! {} ข้อค่า)
SELECT ชื่อโทรศัพท์, อีเมล์จาก บริษัท WHERE $ P! {} ข้อ = $ P! {สำคัญ} ORDER BY $ P! {} การสั่งซื้อ
ที่ $ P {สำคัญ} เป็นพารามิเตอร์ที่ java.lang.String
การแปล กรุณารอสักครู่..

มี 2 สำนวนไวยากรณ์สำหรับพารามิเตอร์อ้างอิงใน jasperreports : P $ { } $ P ! { }$ P } { paramname ไวยากรณ์จะใช้ส่วนใหญ่สำหรับการตั้งค่าที่ค่าพารามิเตอร์การป้อนข้อมูล เปลี่ยนอัลกอริทึมคือ " สมาร์ท " , การใช้ java.sql.preparedstatement : java.lang.string พารามิเตอร์เครื่องยนต์จะแทนที่ $ P { parametername } ด้วยยกมาค่า สำหรับ java.lang.integer - ด้วยค่า ตัวเลข และอื่น ๆตัวอย่าง :| พารามิเตอร์ชื่อ | พารามิเตอร์ชนิด | พารามิเตอร์ค่า || : --------------- | ------------------- | : --------------- : || eventname | java.lang.string | | โอลิมปิคเกมส์| eventtype | java.lang.integer | 2 |สีหน้าเดิม ( แทน )เริ่มวันที่ enddate เลือก , คะแนนจากกิจกรรมที่ชื่อ = $ P { eventname } และพิมพ์ = $ P { eventtype }ผลที่ได้จะเป็นเริ่มวันที่ enddate เลือก , คะแนนจากกิจกรรมที่ชื่อ = " เกม "olympic และพิมพ์ = 2$ P ! paramname } { การใช้ส่วนใหญ่เพื่อทำ " ง่าย " แทนตัวอย่าง :| พารามิเตอร์ชื่อ | พารามิเตอร์ชนิด | พารามิเตอร์ค่า || : --------------- | ------------------ : | : --------------- : || tablename | java.lang.string | เหตุการณ์ || eventname | java.lang.string | | โอลิมปิคเกมส์| ช่อง | java.lang.string | " บีบีซี " || | java.lang.string | | ประเภทกีฬาสีหน้าเดิม ( แทน )เลือก เริ่มวันที่ enddate , คะแนน , จากการ $ P ! tablename } { ที่ชื่อ = " $ P ! { eventname } " และช่อง = $ P ! ช่อง } { และพิมพ์ = $ P ! { type }ผลที่ได้จะเป็นเริ่มวันที่ enddate เลือก , คะแนนจากกิจกรรมที่ชื่อ = " "olympic เกมและช่อง = "bbc " และพิมพ์ = กีฬาสำหรับข้อมูลเพิ่มเติมคุณสามารถอ่านรายงานนี้ใช้พารามิเตอร์โพสต์และดูแบบสอบถามตัวอย่างในกรณีของคุณ การแสดงออกที่เหมาะสม อาจเป็นเช่นนี้เลือกชื่อ , โทรศัพท์ , อีเมลจาก บริษัท ที่ $ P ! { วรรค } = $ P { สำคัญ } สั่งซื้อ $ P ! { คำสั่ง }ที่ $ P { สำคัญ } เป็น java.lang.string พารามิเตอร์หรือแบบนี้ ( มันขึ้นอยู่กับ $ P ! { วรรค } ค่า )เลือกชื่อ , โทรศัพท์ , อีเมลจาก บริษัท ที่ $ P ! { วรรค } = $ P ! { สำคัญ } สั่งซื้อ $ P ! { คำสั่ง }ที่ $ P { สำคัญ } เป็น java.lang.string พารามิเตอร์
การแปล กรุณารอสักครู่..
