瀏覽代碼

update

master
CANCERYS\kw093 12 小時之前
父節點
當前提交
632069090b
共有 3 個文件被更改,包括 1141 次插入0 次删除
  1. +385
    -0
      src/main/java/com/ffii/fpsms/modules/report/service/StockLedgerReportService.kt
  2. +63
    -0
      src/main/java/com/ffii/fpsms/modules/report/web/StockLedgerReportController.kt
  3. +693
    -0
      src/main/resources/jasper/StockLedgarReport.jrxml

+ 385
- 0
src/main/java/com/ffii/fpsms/modules/report/service/StockLedgerReportService.kt 查看文件

@@ -0,0 +1,385 @@
package com.ffii.fpsms.modules.report.service

import com.ffii.core.support.JdbcDao
import org.springframework.stereotype.Service

@Service
open class StockLedgerReportService(
private val jdbcDao: JdbcDao,
) {

/**
* Stock Ledger 報表查詢
*
* - stockSubCategory = items.type
* - trnDate = stock_ledger.date
* - trnRefNo = stock_ledger.type
*/
fun searchStockLedgerReport(
stockCategory: String?, // items.type,可逗號分隔
itemCode: String?, // item code,可逗號分隔,模糊
storeLocation: String?, // warehouse.code,模糊
reportPeriodStart: String?, // 過濾 stock_ledger.date >=
reportPeriodEnd: String?, // 過濾 stock_ledger.date <
): List<Map<String, Any>> {
val args = mutableMapOf<String, Any>()
// items.type 精確多選
val stockCategorySql = buildMultiValueExactClause(
stockCategory,
"it.type",
"stockCategory",
args
)
// itemCode 模糊多選(用 stock_ledger.itemCode)
val itemCodeSql = buildMultiValueLikeClause(
itemCode,
"sl.itemCode",
"itemCode",
args
)
// 倉庫位置
val storeLocationSql = if (!storeLocation.isNullOrBlank()) {
args["storeLocation"] = "%$storeLocation%"
"AND (wh_in.code LIKE :storeLocation OR wh_out.code LIKE :storeLocation)"
} else {
""
}
// 報表期間:按 stock_ledger.date 過濾
val reportPeriodStartSql = if (!reportPeriodStart.isNullOrBlank()) {
args["reportPeriodStart"] = reportPeriodStart
"AND DATE(sl.date) >= :reportPeriodStart"
} else {
""
}
val reportPeriodEndSql = if (!reportPeriodEnd.isNullOrBlank()) {
args["reportPeriodEnd"] = reportPeriodEnd
"AND DATE(sl.date) < :reportPeriodEnd"
} else {
""
}
val sql = """
SELECT
/* ====== 基本資料 ====== */
COALESCE(it.type, '') AS stockSubCategory,
COALESCE(sl.itemCode, '') AS itemNo,
COALESCE(it.name, '') AS itemName,
COALESCE(uc.udfudesc, '') AS unitOfMeasure,
COALESCE(il_in.lotNo, il_out.lotNo, '') AS lotNo,
COALESCE(
DATE_FORMAT(COALESCE(il_in.expiryDate, il_out.expiryDate), '%Y-%m-%d'),
''
) AS expiryDate,
/* ====== 累計期初 / 入庫 / 出庫 / 累計存量(全部輸出字串)====== */
-- 累計期初存量:只有每個 item 的第一行顯示(值 = 第一行的累計餘量),其餘為空字串
COALESCE(
CAST(
CASE
WHEN ROW_NUMBER() OVER (
PARTITION BY sl.itemCode
ORDER BY DATE(sl.date), sl.id
) = 1 THEN
CAST(
SUM(COALESCE(sl.inQty, 0) - COALESCE(sl.outQty, 0))
OVER (
PARTITION BY sl.itemCode
ORDER BY DATE(sl.date), sl.id
) AS DECIMAL(20, 0)
)
ELSE NULL
END AS CHAR
),
''
) AS cumOpeningBal,
-- 本筆入庫(排除 OPEN)
COALESCE(
CAST(
CAST(
CASE
WHEN COALESCE(sl.inQty, 0) > 0 AND sl.type <> 'OPEN'
THEN COALESCE(sl.inQty, 0)
ELSE 0
END AS DECIMAL(20, 0)
) AS CHAR
),
''
) AS stockIn,
-- 本筆出庫
COALESCE(
CAST(
CAST(COALESCE(sl.outQty, 0) AS DECIMAL(20, 0)) AS CHAR
),
''
) AS stockOut,
-- 本筆之後的累計存量(running balance)
COALESCE(
CAST(
CAST(
SUM(COALESCE(sl.inQty, 0) - COALESCE(sl.outQty, 0))
OVER (
PARTITION BY sl.itemCode
ORDER BY DATE(sl.date), sl.id
) AS DECIMAL(20, 0)
) AS CHAR
),
''
) AS cumBalance,
/* ====== 組小計(Item Code Balance)====== */
COALESCE(
CAST(
CAST(0 AS DECIMAL(20, 0)) AS CHAR
),
''
) AS totalCumOpeningBal,
COALESCE(
CAST(
CAST(
SUM(
CASE
WHEN COALESCE(sl.inQty, 0) > 0 AND sl.type <> 'OPEN'
THEN COALESCE(sl.inQty, 0)
ELSE 0
END
) OVER (PARTITION BY sl.itemCode) AS DECIMAL(20, 0)
) AS CHAR
),
''
) AS totalStockIn,
COALESCE(
CAST(
CAST(
SUM(COALESCE(sl.outQty, 0))
OVER (PARTITION BY sl.itemCode) AS DECIMAL(20, 0)
) AS CHAR
),
''
) AS totalStockOut,
COALESCE(
CAST(
CAST(
SUM(COALESCE(sl.inQty, 0) - COALESCE(sl.outQty, 0))
OVER (PARTITION BY sl.itemCode) AS DECIMAL(20, 0)
) AS CHAR
),
''
) AS totalCumBalance,
/* ====== 最後入/出倉日期(按 item 彙總)====== */
COALESCE(
DATE_FORMAT(
MAX(
CASE WHEN COALESCE(sl.inQty, 0) > 0 THEN DATE(sl.date) END
) OVER (PARTITION BY sl.itemCode),
'%Y-%m-%d'
),
''
) AS lastInDate,
COALESCE(
DATE_FORMAT(
MAX(
CASE WHEN COALESCE(sl.outQty, 0) > 0 THEN DATE(sl.date) END
) OVER (PARTITION BY sl.itemCode),
'%Y-%m-%d'
),
''
) AS lastOutDate,
'' AS reOrderLevel,
'' AS reOrderQty,
COALESCE(wh_in.code, wh_out.code, '') AS storeLocation,
/* ====== 單據來源:透過 pickOrderLineId → pick_order → DO / JO ====== */
COALESCE(do.code, '') AS deliveryOrderNo,
COALESCE(jo.code, '') AS jobOrderNo,
CASE
WHEN do.code IS NOT NULL THEN do.code
WHEN jo.code IS NOT NULL THEN jo.code
ELSE ''
END AS orderRefNo,
/* ====== 報表要求的兩個欄位 ====== */
COALESCE(sl.date, '') AS trnDate,
COALESCE(sl.type, '') AS trnRefNo,
/* jrxml 額外定義但目前未使用的欄位,給預設字串 "0" or "" */
'0' AS openingBalance,
'0' AS totalStockInDummy,
'0' AS totalStockOutDummy,
'' AS jobOrderCodeDummy
FROM stock_ledger sl
LEFT JOIN items it
ON sl.itemId = it.id
AND it.deleted = 0
LEFT JOIN item_uom iu
ON it.id = iu.itemId
AND iu.stockUnit = 1
AND iu.deleted = 0
LEFT JOIN uom_conversion uc
ON iu.uomId = uc.id
/* IN 方向:stock_in_line → inventory_lot → inventory_lot_line → warehouse */
LEFT JOIN stock_in_line sil
ON sl.stockInLineId = sil.id
AND sil.deleted = 0
LEFT JOIN inventory_lot il_in
ON sil.inventoryLotId = il_in.id
AND il_in.deleted = 0
LEFT JOIN inventory_lot_line ill_in
ON il_in.id = ill_in.inventoryLotId
AND ill_in.deleted = 0
LEFT JOIN warehouse wh_in
ON ill_in.warehouseId = wh_in.id
AND wh_in.deleted = 0
LEFT JOIN stock_out_line sol
ON sl.stockOutLineId = sol.id
AND sol.deleted = 0

LEFT JOIN stock_out so
ON sol.stockOutId = so.id
AND so.deleted = 0

LEFT JOIN pick_order_line pol
ON sol.pickOrderLineId = pol.id
AND pol.deleted = 0

LEFT JOIN pick_order po
ON pol.poId = po.id
AND po.deleted = 0

LEFT JOIN delivery_order do
ON po.doId = do.id
AND do.deleted = 0

LEFT JOIN job_order jo
ON po.joId = jo.id
AND jo.deleted = 0
LEFT JOIN inventory_lot_line ill_out
ON sol.inventoryLotLineId = ill_out.id
AND ill_out.deleted = 0
LEFT JOIN inventory_lot il_out
ON ill_out.inventoryLotId = il_out.id
AND il_out.deleted = 0
LEFT JOIN warehouse wh_out
ON ill_out.warehouseId = wh_out.id
AND wh_out.deleted = 0
WHERE
sl.deleted = 0
AND sl.itemCode IS NOT NULL
AND sl.itemCode <> ''
$stockCategorySql
$itemCodeSql
$storeLocationSql
$reportPeriodStartSql
$reportPeriodEndSql
ORDER BY
it.type,
sl.itemCode,
lotNo,
DATE(sl.date),
sl.id
""".trimIndent()
val result = jdbcDao.queryForList(sql, args)
println("stockSubCategory: ${result[0]["stockSubCategory"]}")
println("itemNo: ${result[0]["itemNo"]}")
println("itemName: ${result[0]["itemName"]}")
println("unitOfMeasure: ${result[0]["unitOfMeasure"]}")
println("lotNo: ${result[0]["lotNo"]}")
println("expiryDate: ${result[0]["expiryDate"]}")
println("cumOpeningBal: ${result[0]["cumOpeningBal"]}")
println("stockIn: ${result[0]["stockIn"]}")
println("stockOut: ${result[0]["stockOut"]}")
println("cumBalance: ${result[0]["cumBalance"]}")
println("totalCumOpeningBal: ${result[0]["totalCumOpeningBal"]}")
println("totalStockIn: ${result[0]["totalStockIn"]}")
println("totalStockOut: ${result[0]["totalStockOut"]}")
println("totalCumBalance: ${result[0]["totalCumBalance"]}")
println("lastInDate: ${result[0]["lastInDate"]}")
println("lastOutDate: ${result[0]["lastOutDate"]}")
println("storeLocation: ${result[0]["storeLocation"]}")
println("jobOrderNo: ${result[0]["jobOrderNo"]}")
println("deliveryOrderNo: ${result[0]["deliveryOrderNo"]}")

println("stockSubCategory: ${result[1]["stockSubCategory"]}")
println("itemNo: ${result[1]["itemNo"]}")
println("itemName: ${result[1]["itemName"]}")
println("unitOfMeasure: ${result[1]["unitOfMeasure"]}")
println("lotNo: ${result[1]["lotNo"]}")
println("expiryDate: ${result[1]["expiryDate"]}")
println("cumOpeningBal: ${result[1]["cumOpeningBal"]}")
println("stockIn: ${result[1]["stockIn"]}")
println("stockOut: ${result[1]["stockOut"]}")
println("cumBalance: ${result[1]["cumBalance"]}")
println("totalCumOpeningBal: ${result[1]["totalCumOpeningBal"]}")
println("totalStockIn: ${result[1]["totalStockIn"]}")
println("totalStockOut: ${result[1]["totalStockOut"]}")
println("totalCumBalance: ${result[1]["totalCumBalance"]}")
println("lastInDate: ${result[1]["lastInDate"]}")
println("lastOutDate: ${result[1]["lastOutDate"]}")
println("storeLocation: ${result[1]["storeLocation"]}")
println("jobOrderNo: ${result[1]["jobOrderNo"]}")
println("deliveryOrderNo: ${result[1]["deliveryOrderNo"]}")
return result
}

/** LIKE 多值工具方法 */
private fun buildMultiValueLikeClause(
paramValue: String?,
columnName: String,
paramPrefix: String,
args: MutableMap<String, Any>
): String {
if (paramValue.isNullOrBlank()) return ""
val values = paramValue.split(",").map { it.trim() }.filter { it.isNotBlank() }
if (values.isEmpty()) return ""

val conditions = values.mapIndexed { index, value ->
val paramName = "${paramPrefix}_$index"
args[paramName] = "%$value%"
"$columnName LIKE :$paramName"
}
return "AND (${conditions.joinToString(" OR ")})"
}

/** = 多值工具方法 */
private fun buildMultiValueExactClause(
paramValue: String?,
columnName: String,
paramPrefix: String,
args: MutableMap<String, Any>
): String {
if (paramValue.isNullOrBlank()) return ""
val values = paramValue.split(",").map { it.trim() }.filter { it.isNotBlank() }
if (values.isEmpty()) return ""

val conditions = values.mapIndexed { index, value ->
val paramName = "${paramPrefix}_$index"
args[paramName] = value
"$columnName = :$paramName"
}
return "AND (${conditions.joinToString(" OR ")})"
}
}

+ 63
- 0
src/main/java/com/ffii/fpsms/modules/report/web/StockLedgerReportController.kt 查看文件

@@ -0,0 +1,63 @@
package com.ffii.fpsms.modules.report.web
import org.springframework.web.bind.annotation.*
import org.springframework.http.*
import java.time.LocalDate
import java.time.LocalTime
import java.time.format.DateTimeFormatter
import com.ffii.fpsms.modules.report.service.StockLedgerReportService
import com.ffii.fpsms.modules.report.service.ReportService

@RestController
@RequestMapping("/report")
class StockLedgerReportController(
private val reportService: ReportService,
private val stockLedgerReportService: StockLedgerReportService,
) {

@GetMapping("/print-stock-ledger")
fun generateStockLedgerReport(
@RequestParam(required = false) stockCategory: String?,
@RequestParam(required = false) itemCode: String?,
@RequestParam(required = false) storeLocation: String?,
// URL 參數名仍然是 lastInDateStart / lastInDateEnd
@RequestParam(name = "lastInDateStart", required = false) reportPeriodStart: String?,
@RequestParam(name = "lastInDateEnd", required = false) reportPeriodEnd: String?,
): ResponseEntity<ByteArray> {
val parameters = mutableMapOf<String, Any>()

parameters["stockCategory"] = stockCategory ?: "All"
parameters["stockSubCategory"] = stockCategory ?: "All"
parameters["itemNo"] = itemCode ?: "All"
parameters["year"] = LocalDate.now().year.toString()
parameters["reportDate"] = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))
parameters["reportTime"] = LocalTime.now().format(DateTimeFormatter.ofPattern("HH:mm:ss"))

parameters["storeLocation"] = storeLocation ?: ""
parameters["balanceFilterStart"] = ""
parameters["balanceFilterEnd"] = ""
parameters["reportPeriodStart"] = reportPeriodStart ?: ""
parameters["reportPeriodEnd"] = reportPeriodEnd ?: ""


val dbData = stockLedgerReportService.searchStockLedgerReport(
stockCategory = stockCategory,
itemCode = itemCode,
storeLocation = storeLocation,
reportPeriodStart = reportPeriodStart,
reportPeriodEnd = reportPeriodEnd,
)

val pdfBytes = reportService.createPdfResponse(
"/jasper/StockLedgarReport.jrxml",
parameters,
dbData
)

val headers = HttpHeaders().apply {
contentType = MediaType.APPLICATION_PDF
setContentDispositionFormData("attachment", "StockLedgerReport.pdf")
set("filename", "StockLedgerReport.pdf")
}
return ResponseEntity(pdfBytes, headers, HttpStatus.OK)
}
}

+ 693
- 0
src/main/resources/jasper/StockLedgarReport.jrxml 查看文件

@@ -0,0 +1,693 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.17.0.final using JasperReports Library version 6.17.0-6d93193241dd8cc42629e188b94f9e0bc5722efd -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="StockLedgar" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="974e3bea-4152-4549-a4d3-4aff6abf0b82">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<parameter name="reportDate" class="java.lang.String"/>
<parameter name="reportTime" class="java.lang.String"/>
<parameter name="stockCategory" class="java.lang.String">
<defaultValueExpression><![CDATA["stockCategory"]]></defaultValueExpression>
</parameter>
<parameter name="stockSubCategory" class="java.lang.String">
<defaultValueExpression><![CDATA["stockSubCategory"]]></defaultValueExpression>
</parameter>
<parameter name="itemNo" class="java.lang.String">
<defaultValueExpression><![CDATA["itemCode"]]></defaultValueExpression>
</parameter>
<parameter name="year" class="java.lang.String"/>
<parameter name="storeLocation" class="java.lang.String">
<parameterDescription><![CDATA["storeLocation"]]></parameterDescription>
</parameter>
<parameter name="balanceFilterStart" class="java.lang.String">
<parameterDescription><![CDATA["balanceFilterStart"]]></parameterDescription>
</parameter>
<parameter name="balanceFilterEnd" class="java.lang.String">
<parameterDescription><![CDATA["balanceFilterEnd"]]></parameterDescription>
</parameter>
<parameter name="lastInDate" class="java.lang.String">
<parameterDescription><![CDATA["lastInDate"]]></parameterDescription>
</parameter>
<parameter name="lastOutDate" class="java.lang.String">
<parameterDescription><![CDATA["lastOutDate"]]></parameterDescription>
</parameter>
<parameter name="reportPeriodStart" class="java.lang.String"/>
<parameter name="reportPeriodEnd" class="java.lang.String"/>
<parameter name="lastInDateStart" class="java.lang.String">
<parameterDescription><![CDATA["lastInDateStart"]]></parameterDescription>
</parameter>
<parameter name="lastOutDateStart" class="java.lang.String">
<parameterDescription><![CDATA["lastOutDateStart"]]></parameterDescription>
</parameter>
<parameter name="lastInDateEnd" class="java.lang.String">
<parameterDescription><![CDATA["lastInDateStart"]]></parameterDescription>
</parameter>
<parameter name="lastOutDateEnd" class="java.lang.String">
<parameterDescription><![CDATA["lastOutDateStart"]]></parameterDescription>
</parameter>
<queryString>
<![CDATA[]]>
</queryString>
<field name="trnDate" class="java.lang.String"/>
<field name="stockSubCategory" class="java.lang.String"/>
<field name="itemNo" class="java.lang.String"/>
<field name="itemName" class="java.lang.String"/>
<field name="unitOfMeasure" class="java.lang.String"/>
<field name="lotNo" class="java.lang.String"/>
<field name="expiryDate" class="java.lang.String"/>
<field name="openingBalance" class="java.lang.String"/>
<field name="cumStockIn" class="java.lang.String"/>
<field name="cumStockOut" class="java.lang.String"/>
<field name="currentBalance" class="java.lang.String"/>
<field name="totalStockIn" class="java.lang.String"/>
<field name="totalCumOpeningBal" class="java.lang.String"/>
<field name="totalStockOut" class="java.lang.String"/>
<field name="totalCumBalance" class="java.lang.String"/>
<field name="lastOutDate" class="java.lang.String"/>
<field name="lastInDate" class="java.lang.String"/>
<field name="reOrderLevel" class="java.lang.String"/>
<field name="reOrderQty" class="java.lang.String"/>
<field name="storeLocation" class="java.lang.String"/>
<field name="trnRefNo" class="java.lang.String"/>
<field name="cumOpeningBal" class="java.lang.String"/>
<field name="stockIn" class="java.lang.String"/>
<field name="stockOut" class="java.lang.String"/>
<field name="cumBalance" class="java.lang.String"/>
<field name="jobOrderNo" class="java.lang.String"/>
<field name="orderRefNo" class="java.lang.String"/>
<group name="Group1">
<groupExpression><![CDATA[$F{itemNo}]]></groupExpression>
<groupHeader>
<band height="38">
<staticText>
<reportElement x="0" y="4" width="74" height="18" uuid="395a4da7-e0b7-4cab-a91f-54b8cc66fb3b">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Top">
<font fontName="微軟正黑體" size="12"/>
</textElement>
<text><![CDATA[貨物子分類]]></text>
</staticText>
<staticText>
<reportElement x="74" y="4" width="74" height="18" uuid="9c6f4add-cf69-4116-902f-56f96fdcbadb">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Top">
<font fontName="微軟正黑體" size="12"/>
</textElement>
<text><![CDATA[貨品編號]]></text>
</staticText>
<staticText>
<reportElement x="148" y="4" width="74" height="18" uuid="210c795d-cc22-490f-95c0-6f82bc4ed2dd">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Top">
<font fontName="微軟正黑體" size="12"/>
</textElement>
<text><![CDATA[貨品名稱]]></text>
</staticText>
<staticText>
<reportElement x="222" y="4" width="74" height="18" uuid="33c54473-a6be-42b5-ae6d-9768cc4cb0f1">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Top">
<font fontName="微軟正黑體" size="12"/>
</textElement>
<text><![CDATA[單位]]></text>
</staticText>
<textField>
<reportElement x="0" y="22" width="74" height="16" uuid="e9cc2f94-185d-4a7a-ab46-fee2a8a37d8d">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement verticalAlignment="Top">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<textFieldExpression><![CDATA[$F{stockSubCategory}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="74" y="22" width="74" height="16" uuid="ab2f7e72-1286-4959-81d5-493a95caece1">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement verticalAlignment="Top">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<textFieldExpression><![CDATA[$F{itemNo}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="148" y="22" width="74" height="16" uuid="7527156f-8f91-4d41-8a60-3c711d14366f">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement verticalAlignment="Top">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<textFieldExpression><![CDATA[$F{itemName}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="222" y="22" width="74" height="16" uuid="615c58fe-f614-4285-a46e-434d8203ec45">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Top">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<textFieldExpression><![CDATA[$F{unitOfMeasure}]]></textFieldExpression>
</textField>
</band>
</groupHeader>
<groupFooter>
<band height="8">
<staticText>
<reportElement x="225" y="-14" width="75" height="18" uuid="518b1512-2f82-48ca-b334-652fe5991b72">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement textAlignment="Right" verticalAlignment="Top">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<text><![CDATA[貨品總量:]]></text>
</staticText>
<textField>
<reportElement x="300" y="-14" width="75" height="18" uuid="44b1dc52-ca89-43b5-9828-31db7207ad22">
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement textAlignment="Right" verticalAlignment="Top">
<font fontName="微軟正黑體"/>
</textElement>
<textFieldExpression><![CDATA[$F{totalCumOpeningBal}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="375" y="-14" width="75" height="18" uuid="6c141d7d-766e-49bf-b987-e790312573a5">
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement textAlignment="Right" verticalAlignment="Top">
<font fontName="微軟正黑體"/>
</textElement>
<textFieldExpression><![CDATA[$F{totalStockIn}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="450" y="-14" width="75" height="18" uuid="f6be72ca-650f-4c37-a149-26d5502be17a">
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement textAlignment="Right" verticalAlignment="Top">
<font fontName="微軟正黑體"/>
</textElement>
<textFieldExpression><![CDATA[$F{totalStockOut}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="525" y="-14" width="75" height="18" uuid="636bf782-3020-4b49-837e-53ede91d1443">
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement textAlignment="Right" verticalAlignment="Top">
<font fontName="微軟正黑體"/>
</textElement>
<textFieldExpression><![CDATA[$F{totalCumBalance}]]></textFieldExpression>
</textField>
<line>
<reportElement x="0" y="4" width="799" height="1" uuid="c31c2ebe-c7c9-4ad1-abc2-fa0ba99dd77f">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
</line>
<line>
<reportElement x="0" y="7" width="799" height="1" uuid="14daf4f0-8b99-4577-a6a3-9af9c9fb25ad">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
</line>
</band>
</groupFooter>
</group>
<title>
<band height="104" splitType="Stretch">
<staticText>
<reportElement x="319" y="0" width="165" height="23" uuid="1666285e-2b4b-4017-810f-fa9a0a9165b6">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Left" verticalAlignment="Middle">
<font fontName="微軟正黑體" size="16" isBold="true"/>
</textElement>
<text><![CDATA[Stock Ledgar Report
]]></text>
</staticText>
<staticText>
<reportElement x="700" y="12" width="40" height="18" uuid="e212b74e-2e71-4547-9e4a-e4ab2ce64462">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="微軟正黑體" size="12"/>
</textElement>
<text><![CDATA[頁數]]></text>
</staticText>
<textField>
<reportElement x="740" y="12" width="20" height="18" uuid="1b209da7-33e2-4e04-a663-f6170c806ef4">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="微軟正黑體"/>
</textElement>
<textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="760" y="12" width="20" height="18" uuid="542731ff-0b34-401f-af74-5d96753f4a3a">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="微軟正黑體" size="12"/>
</textElement>
<text><![CDATA[/]]></text>
</staticText>
<textField evaluationTime="Report">
<reportElement x="780" y="12" width="20" height="18" uuid="7124635c-e046-4d7a-9e56-b6a73502a772">
<property name="com.jaspersoft.studio.unit.width" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="微軟正黑體"/>
</textElement>
<textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="0" y="35" width="90" height="23" uuid="a00368d1-1269-4721-9e9f-e8c4a3c7f779">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Left" verticalAlignment="Middle">
<font fontName="微軟正黑體" size="16" isBold="true"/>
</textElement>
<text><![CDATA[報告日期:]]></text>
</staticText>
<staticText>
<reportElement x="0" y="58" width="90" height="23" uuid="a0ece46c-52e7-41dd-ace6-85bf08d98db7">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
</reportElement>
<textElement textAlignment="Left" verticalAlignment="Middle">
<font fontName="微軟正黑體" size="16" isBold="true"/>
</textElement>
<text><![CDATA[貨物分類:]]></text>
</staticText>
<staticText>
<reportElement x="480" y="35" width="90" height="23" uuid="c5cc9643-ab3a-4c5c-9435-589a28f93101">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Left" verticalAlignment="Middle">
<font fontName="微軟正黑體" size="16" isBold="true"/>
</textElement>
<text><![CDATA[報告時間:]]></text>
</staticText>
<textField>
<reportElement x="90" y="35" width="390" height="23" uuid="a4cfc094-4af4-4ce5-acfa-534c17eeadfd"/>
<textElement verticalAlignment="Middle">
<font fontName="微軟正黑體" size="16" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[$P{reportDate}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="90" y="58" width="390" height="23" uuid="9e3719fc-6434-4119-ad51-54f56cb0c110">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement verticalAlignment="Middle">
<font fontName="微軟正黑體" size="16" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[$P{stockCategory}]]></textFieldExpression>
</textField>
<line>
<reportElement x="0" y="103" width="800" height="1" uuid="54929fda-881e-428a-830c-1c06d8d72e67">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
</line>
<textField>
<reportElement x="570" y="35" width="228" height="23" uuid="fb55961e-94b2-4011-aaa7-834497b4d352"/>
<textElement verticalAlignment="Middle">
<font fontName="微軟正黑體" size="16" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[$P{reportTime}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="0" y="81" width="90" height="23" uuid="083407c6-4fec-4ebe-8791-630b25bdd7e5">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
</reportElement>
<textElement textAlignment="Left" verticalAlignment="Middle">
<font fontName="微軟正黑體" size="16" isBold="true"/>
</textElement>
<text><![CDATA[查詢期間:]]></text>
</staticText>
<textField>
<reportElement x="90" y="81" width="490" height="23" uuid="76037c74-490e-4afe-936d-dd8b70230e4c">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement verticalAlignment="Middle">
<font fontName="微軟正黑體" size="16" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[$P{reportPeriodStart}+ " 到 " + $P{reportPeriodEnd}]]></textFieldExpression>
</textField>
</band>
</title>
<pageHeader>
<band height="87" splitType="Stretch">
<textField>
<reportElement x="82" y="10" width="716" height="18" uuid="9af5a79d-6d4c-4c9b-b264-1ed593636ee7">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement verticalAlignment="Top">
<font fontName="微軟正黑體" size="12"/>
</textElement>
<textFieldExpression><![CDATA[$P{stockSubCategory}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="0" y="10" width="82" height="18" uuid="564a8032-1054-444b-b560-d83f6690c7fa">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Left" verticalAlignment="Top">
<font fontName="微軟正黑體" size="12"/>
</textElement>
<text><![CDATA[貨物子分類:]]></text>
</staticText>
<staticText>
<reportElement x="0" y="28" width="82" height="18" uuid="408079da-43e7-436f-b6b6-f3ddb01a5c8b">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Left" verticalAlignment="Top">
<font fontName="微軟正黑體" size="12"/>
</textElement>
<text><![CDATA[存量:]]></text>
</staticText>
<textField>
<reportElement x="82" y="28" width="716" height="18" uuid="893c7965-bea5-44c4-bfb7-e8eec95d1a23">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement verticalAlignment="Top">
<font fontName="微軟正黑體" size="12"/>
</textElement>
<textFieldExpression><![CDATA[$P{balanceFilterStart}+"件"+ " ~ " + $P{balanceFilterEnd}+"件"]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="0" y="46" width="82" height="18" uuid="1467adc9-9df2-4089-8425-e0e2f9b7d5aa">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Left" verticalAlignment="Top">
<font fontName="微軟正黑體" size="12"/>
</textElement>
<text><![CDATA[店鋪位置:]]></text>
</staticText>
<textField>
<reportElement x="82" y="46" width="716" height="18" uuid="4570462e-6802-4ce3-b794-fd3640edb2a3">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement verticalAlignment="Top">
<font fontName="微軟正黑體" size="12"/>
</textElement>
<textFieldExpression><![CDATA[$P{storeLocation}]]></textFieldExpression>
</textField>
<line>
<reportElement x="0" y="86" width="799" height="1" uuid="f96b760b-49ac-4bdf-b3c1-6d2980da396d">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
</line>
<line>
<reportElement x="0" y="82" width="799" height="1" uuid="4ce11626-0675-44b6-9853-03ac3a7ef745">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
</line>
<textField>
<reportElement x="462" y="64" width="336" height="18" uuid="3174e21b-a637-407f-870c-489aef0a5792">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Left" verticalAlignment="Top">
<font fontName="微軟正黑體" size="12"/>
</textElement>
<textFieldExpression><![CDATA[$P{lastOutDateStart} + " 到 " + $P{lastOutDateEnd} ]]></textFieldExpression>
</textField>
<textField>
<reportElement x="82" y="64" width="298" height="18" uuid="bccff937-d5e6-4f85-995b-f832ae1d3c07">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Left" verticalAlignment="Top">
<font fontName="微軟正黑體" size="12"/>
</textElement>
<textFieldExpression><![CDATA[$P{lastInDateStart} + " 到 " + $P{lastInDateEnd} ]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="0" y="64" width="82" height="18" uuid="2fd1dc30-1085-46a0-b240-9074d95f90d2">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement textAlignment="Left" verticalAlignment="Top">
<font fontName="微軟正黑體" size="12"/>
</textElement>
<text><![CDATA[最後入倉日期:]]></text>
</staticText>
<staticText>
<reportElement x="380" y="64" width="82" height="18" uuid="a1322eea-6ff1-4749-a106-e642400407b3">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement textAlignment="Left" verticalAlignment="Top">
<font fontName="微軟正黑體" size="12"/>
</textElement>
<text><![CDATA[最後出倉日期:]]></text>
</staticText>
</band>
</pageHeader>
<detail>
<band height="56" splitType="Stretch">
<staticText>
<reportElement x="0" y="7" width="75" height="18" uuid="29d7c8b3-689f-46c6-8283-ebc81c12e3b9">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<text><![CDATA[出入賬日期]]></text>
</staticText>
<textField>
<reportElement x="0" y="25" width="75" height="16" uuid="5fbbcd25-b23a-4c47-a71c-ba7c8d8f1b83">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Top">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<textFieldExpression><![CDATA[$F{trnDate}]]></textFieldExpression>
</textField>

<staticText>
<reportElement x="75" y="7" width="75" height="18" uuid="8fde28bc-907f-406e-9efc-b1e2ff54d819">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<text><![CDATA[出入賬參考編號]]></text>
</staticText>

<staticText>
<reportElement x="150" y="7" width="75" height="18" uuid="1a37e08c-8c54-462f-9a2d-876fc665cdba">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<text><![CDATA[批號]]></text>
</staticText>
<textField>
<reportElement x="150" y="25" width="75" height="16" uuid="c4015ede-c0e8-440f-86c9-05f0d446c774">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Left" verticalAlignment="Top">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<textFieldExpression><![CDATA[$F{lotNo}]]></textFieldExpression>
</textField>

<staticText>
<reportElement x="225" y="7" width="75" height="18" uuid="42332f71-1b1f-4cef-a8c8-c2e66f125cb7">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<text><![CDATA[到期日]]></text>
</staticText>

<staticText>
<reportElement x="300" y="7" width="75" height="18" uuid="9bfc6cdc-28da-4533-a349-5951fd3bdb8d">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<text><![CDATA[累計期初存量]]></text>
</staticText>
<textField>
<reportElement x="300" y="25" width="75" height="16" uuid="1984acde-9076-4256-a580-e5b5842fa849">
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement textAlignment="Right" verticalAlignment="Top">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<textFieldExpression><![CDATA[
$F{cumOpeningBal} == null || $F{cumOpeningBal}.trim().length() == 0
? ""
: new java.text.DecimalFormat("#,##0")
.format(new java.math.BigDecimal($F{cumOpeningBal}))
]]></textFieldExpression>
</textField>

<staticText>
<reportElement x="375" y="7" width="75" height="18" uuid="75d5ce02-8001-4f6f-85ae-88c6c21c038a">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<text><![CDATA[入庫]]></text>
</staticText>
<textField>
<reportElement x="375" y="25" width="75" height="16" uuid="97a63f6a-781a-4c8c-a44f-88e24774c0d6">
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement textAlignment="Right" verticalAlignment="Top">
<font fontName="微軟正黑體" size="10" isBold="false"/>
</textElement>
<textFieldExpression><![CDATA[
$F{stockIn} == null || $F{stockIn}.trim().length() == 0
? ""
: new java.text.DecimalFormat("#,##0")
.format(new java.math.BigDecimal($F{stockIn}))
]]></textFieldExpression>
</textField>

<staticText>
<reportElement x="450" y="7" width="75" height="18" uuid="86dcb3cb-197d-458e-9530-d2f4de6e5980">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<text><![CDATA[出庫]]></text>
</staticText>
<textField>
<reportElement x="450" y="25" width="75" height="16" uuid="ca781a08-f648-41bc-a44f-b4d3fc05bf24">
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement textAlignment="Right" verticalAlignment="Top">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<textFieldExpression><![CDATA[
$F{stockOut} == null || $F{stockOut}.trim().length() == 0
? ""
: new java.text.DecimalFormat("#,##0")
.format(new java.math.BigDecimal($F{stockOut}))
]]></textFieldExpression>
</textField>

<staticText>
<reportElement x="525" y="7" width="75" height="18" uuid="12c55779-4875-4d8b-914c-9bbf4dcd64ff">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<text><![CDATA[累計存量]]></text>
</staticText>
<textField>
<reportElement x="525" y="25" width="75" height="16" uuid="0011e1ab-a161-46d8-af84-629e955e5461">
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement textAlignment="Right" verticalAlignment="Top">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<textFieldExpression><![CDATA[
$F{cumBalance} == null || $F{cumBalance}.trim().length() == 0
? ""
: new java.text.DecimalFormat("#,##0")
.format(new java.math.BigDecimal($F{cumBalance}))
]]></textFieldExpression>
</textField>

<staticText>
<reportElement x="600" y="7" width="75" height="18" uuid="19e06f3b-0c2a-4e9e-b436-79c21d497ebb">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<text><![CDATA[工單/提料單編號]]></text>
</staticText>
<textField>
<reportElement x="600" y="25" width="75" height="16" uuid="abcf9c0b-8e93-44b0-af99-8b7fe7812ff8">
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement textAlignment="Left" verticalAlignment="Top">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<textFieldExpression><![CDATA[$F{orderRefNo}]]></textFieldExpression>
</textField>

<staticText>
<reportElement x="675" y="7" width="122" height="18" uuid="bb54ccd3-e003-4eba-9d95-d2c9c84767a5">
<property name="com.jaspersoft.studio.unit.y" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<text><![CDATA[店鋪位置]]></text>
</staticText>
<textField>
<reportElement x="675" y="25" width="122" height="16" uuid="ce3e11a6-b071-4825-aa2c-ecd03f83c976">
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement textAlignment="Left" verticalAlignment="Top">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<textFieldExpression><![CDATA[$F{storeLocation}]]></textFieldExpression>
</textField>

<textField>
<reportElement x="75" y="25" width="75" height="16" uuid="e2282f48-5570-4344-aff3-cd3eee96bcb2">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement verticalAlignment="Top">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<textFieldExpression><![CDATA[$F{trnRefNo}]]></textFieldExpression>
</textField>

<textField>
<reportElement x="225" y="25" width="75" height="16" uuid="93210fc7-291c-453f-b543-b3da906c90ca">
<property name="com.jaspersoft.studio.unit.width" value="px"/>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Top">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<textFieldExpression><![CDATA[$F{expiryDate}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>

Loading…
取消
儲存