소스 검색

update

master
CANCERYS\kw093 11 시간 전
부모
커밋
a3ab65dbb6
3개의 변경된 파일1154개의 추가작업 그리고 0개의 파일을 삭제
  1. +418
    -0
      src/main/java/com/ffii/fpsms/modules/report/service/StockTakeVarianceReportService.kt
  2. +81
    -0
      src/main/java/com/ffii/fpsms/modules/report/web/StockTakeVarianceReportController.kt
  3. +655
    -0
      src/main/resources/jasper/StockTakeVarianceReport.jrxml

+ 418
- 0
src/main/java/com/ffii/fpsms/modules/report/service/StockTakeVarianceReportService.kt 파일 보기

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

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

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

/**
* Stock Take Variance 報表查詢
*
* 條件設計與 Stock Ledger 報表類似:
* - stockCategory : items.type,可逗號分隔(精確匹配)
* - itemCode : items.code,可逗號分隔(LIKE)
* - storeLocation : warehouse.code,模糊匹配
* - lastInDate* : 依 inventory_lot.stockInDate 過濾
*
* 資料來源以 stocktakerecord 為主,欄位對應 `StockTakeVarianceReport.jrxml`:
* - currentBookBalance : bookQty
* - stockTakeQty : 以 approverStockTakeQty > pickerSecondStockTakeQty > pickerFirstStockTakeQty 為準
* - variance : stockTakeQty - bookQty
* - variancePercentage : variance / bookQty(%),bookQty 為 0 則輸出空字串
*
* 期初 / 累計存入 / 累計存出(openingBalance / cumStockIn / cumStockOut):
* - 開始存貨 openingBalance:僅統計 stock_ledger.type = 'OPEN' 的 inQty - outQty
* - 累計存入量 cumStockIn:僅包含 type IN ('NOR', 'Miss', 'Bad') 的 inQty
* - 累計存出量 cumStockOut:僅包含 type IN ('NOR', 'Miss', 'Bad') 的 outQty
* - 調整 Adj:不計入 cumStockIn / cumStockOut,但因為 ledger.balance 已含 Adj,
* currentBookBalance 直接取該 item 最後一筆的 balance。
*
* totalOpeningBalance / totalCumStockIn / totalCumStockOut 目前先維持為空字串;
* totalCurrentBalance 則為各 item 的 currentBookBalance 加總(但在本報表中只用到明細)。
*/
fun searchStockTakeVarianceReport(
stockCategory: String?,
itemCode: String?,
storeLocation: String?,
lastInDateStart: String?,
lastInDateEnd: String?,
): List<Map<String, Any>> {
val args = mutableMapOf<String, Any>()

// items.type 精確多選
val stockCategorySql = buildMultiValueExactClause(
stockCategory,
"it.type",
"stockCategory",
args
)

// itemCode 模糊多選(用 items.code)
val itemCodeSql = buildMultiValueLikeClause(
itemCode,
"it.code",
"itemCode",
args
)

// 倉庫位置:用 warehouse.code 模糊
val storeLocationSql = if (!storeLocation.isNullOrBlank()) {
args["storeLocation"] = "%$storeLocation%"
"AND wh.code LIKE :storeLocation"
} else {
""
}

// 最後入倉日區間:以 sl_agg.lastInDate(來自 stock_in_line.receiptDate)過濾
val lastInDateStartSql = if (!lastInDateStart.isNullOrBlank()) {
args["lastInDateStart"] = lastInDateStart
"AND sl_agg.lastInDate >= :lastInDateStart"
} else ""

val lastInDateEndSql = if (!lastInDateEnd.isNullOrBlank()) {
args["lastInDateEnd"] = lastInDateEnd
"AND sl_agg.lastInDate < :lastInDateEnd"
} else ""

val sql = """
SELECT
/* ====== 基本資料 ====== */
COALESCE(it.type, '') AS stockSubCategory,
COALESCE(it.code, '') AS itemNo,
COALESCE(
CONCAT(
it.name,
CASE
WHEN it.description IS NULL OR it.description = '' THEN ''
ELSE CONCAT('\n', it.description)
END
),
''
) AS itemName,
COALESCE(uc.udfudesc, '') AS unitOfMeasure,
COALESCE(il.lotNo, '') AS lotNo,
COALESCE(DATE_FORMAT(il.expiryDate, '%Y-%m-%d'), '') AS expiryDate,

/* ====== 庫存相關:依 stock_ledger 聚合 ====== */
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM FORMAT(
COALESCE(sl_agg.openingBalance, 0), 2
))) AS openingBalance,

TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM FORMAT(
COALESCE(sl_agg.cumStockIn, 0), 2
))) AS cumStockIn,

TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM FORMAT(
COALESCE(sl_agg.cumStockOut, 0), 2
))) AS cumStockOut,

-- 現存存量 = 期初 + 累計存入量 - 累計存出量
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM FORMAT(
COALESCE(sl_agg.openingBalance, 0)
+ COALESCE(sl_agg.cumStockIn, 0)
- COALESCE(sl_agg.cumStockOut, 0), 2
))) AS currentBookBalance,

/* 小計欄位(貨品總量):以 itemNo 為單位彙總所有批號 */
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM FORMAT(
COALESCE(
SUM(sl_agg.cumStockIn) OVER (PARTITION BY it.code),
0
),
2
))) AS totalCumStockIn,

TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM FORMAT(
COALESCE(
SUM(sl_agg.openingBalance) OVER (PARTITION BY it.code),
0
),
2
))) AS totalOpeningBalance,

TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM FORMAT(
COALESCE(
SUM(sl_agg.cumStockOut) OVER (PARTITION BY it.code),
0
),
2
))) AS totalCumStockOut,

TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM FORMAT(
COALESCE(
SUM(
sl_agg.openingBalance
+ sl_agg.cumStockIn
- sl_agg.cumStockOut
) OVER (PARTITION BY it.code),
0
),
2
))) AS totalCurrentBalance,

/* 最後入/出倉日期:來自 stock_in_line.receiptDate / stock_out_line.endTime */
COALESCE(DATE_FORMAT(sl_agg.lastInDate, '%Y-%m-%d'), '') AS lastInDate,
COALESCE(DATE_FORMAT(sl_agg.lastOutDate, '%Y-%m-%d'), '') AS lastOutDate,

/* 倉庫位置:使用 warehouse.code */
COALESCE(wh.code, '') AS storeLocation,

/* 取貨量(Stock Take Qty [b]):若無 stocktake 則為空字串,有則 = bookQty + varianceQty */
CASE
WHEN str.id IS NULL THEN ''
ELSE TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM FORMAT(
COALESCE(str.bookQty, 0) + COALESCE(str.varianceQty, 0),
2
)))
END AS stockTakeQty,

/* 差異量 = 盤點量[b] - 現存存量[a];若無 stocktake 則為空字串 */
CASE
WHEN str.id IS NULL THEN ''
ELSE TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM FORMAT(
COALESCE(
(
COALESCE(str.bookQty, 0) + COALESCE(str.varianceQty, 0)
) - (
COALESCE(sl_agg.openingBalance, 0)
+ COALESCE(sl_agg.cumStockIn, 0)
- COALESCE(sl_agg.cumStockOut, 0)
),
0
),
2
)))
END AS variance,

/* 差異百分比:((b - a)/a),若無 stocktake 或 a=0 則為空字串 */
CASE
WHEN str.id IS NULL THEN ''
WHEN COALESCE(
COALESCE(sl_agg.openingBalance, 0)
+ COALESCE(sl_agg.cumStockIn, 0)
- COALESCE(sl_agg.cumStockOut, 0),
0
) = 0 THEN ''
ELSE CONCAT(
TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM FORMAT(
(
(
COALESCE(str.bookQty, 0) + COALESCE(str.varianceQty, 0)
) - (
COALESCE(sl_agg.openingBalance, 0)
+ COALESCE(sl_agg.cumStockIn, 0)
- COALESCE(sl_agg.cumStockOut, 0)
)
) / NULLIF(
COALESCE(
COALESCE(sl_agg.openingBalance, 0)
+ COALESCE(sl_agg.cumStockIn, 0)
- COALESCE(sl_agg.cumStockOut, 0),
0
),
0
) * 100,
2
))),
'%'
)
END AS variancePercentage

FROM inventory_lot il
LEFT JOIN inventory_lot_line ill
ON ill.inventoryLotId = il.id
AND ill.deleted = 0

LEFT JOIN items it
ON il.itemId = it.id
AND it.deleted = 0

LEFT JOIN warehouse wh
ON ill.warehouseId = wh.id
AND wh.deleted = 0

/* 盤點記錄:以 lotId + warehouseId 對應,若沒有盤點則為 NULL */
LEFT JOIN stocktakerecord str
ON str.lotId = il.id
AND str.warehouseId = ill.warehouseId
AND str.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

/* ====== 從 stock_ledger 按 lot + warehouse 聚合 ====== */
LEFT JOIN (
SELECT
COALESCE(il_in.id, il_out.id) AS lotId,
COALESCE(wh_in.id, wh_out.id) AS warehouseId,

/* 期初存貨:只有 OPEN 的 inQty - outQty */
SUM(
CASE
WHEN sl.type = 'OPEN'
THEN COALESCE(sl.inQty, 0) - COALESCE(sl.outQty, 0)
ELSE 0
END
) AS openingBalance,

/* 累計存入量:只算 NOR / Miss / Bad 的 inQty */
SUM(
CASE
WHEN sl.type IN ('NOR', 'Miss', 'Bad')
THEN COALESCE(sl.inQty, 0)
ELSE 0
END
) AS cumStockIn,

/* 累計存出量:只算 NOR / Miss / Bad 的 outQty */
SUM(
CASE
WHEN sl.type IN ('NOR', 'Miss', 'Bad')
THEN COALESCE(sl.outQty, 0)
ELSE 0
END
) AS cumStockOut,
/* ADJ 調整量(取貨量):只算 Adj 的 outQty */
SUM(
CASE
WHEN sl.type = 'Adj'
THEN COALESCE(sl.outQty, 0)
ELSE 0
END
) AS adjOutQty,

/* 最後入倉日期:最近一次有 inQty 的收貨日 */
MAX(
CASE
WHEN sl.inQty IS NOT NULL AND sil.receiptDate IS NOT NULL
THEN DATE(sil.receiptDate)
ELSE NULL
END
) AS lastInDate,

/* 最後出倉日期:最近一次有 outQty 的出庫完成時間 */
MAX(
CASE
WHEN sl.outQty IS NOT NULL AND sol.endTime IS NOT NULL
THEN DATE(sol.endTime)
ELSE NULL
END
) AS lastOutDate,

/* 現存存量:此處只作為差異計算基礎 = 期初 + 累計入 - 累計出 */
SUM(
CASE
WHEN sl.type = 'OPEN'
THEN COALESCE(sl.inQty, 0) - COALESCE(sl.outQty, 0)
WHEN sl.type IN ('NOR', 'Miss', 'Bad')
THEN COALESCE(sl.inQty, 0) - COALESCE(sl.outQty, 0)
ELSE 0
END
) AS currentBookBalance

FROM stock_ledger sl
/* 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 sil.inventoryLotLineId = ill_in.id
AND ill_in.deleted = 0
LEFT JOIN warehouse wh_in
ON ill_in.warehouseId = wh_in.id
AND wh_in.deleted = 0

/* OUT 方向:透過 stock_out_line → inventory_lot_line → inventory_lot → warehouse */
LEFT JOIN stock_out_line sol
ON sl.stockOutLineId = sol.id
AND sol.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 <> ''

GROUP BY
COALESCE(il_in.id, il_out.id),
COALESCE(wh_in.id, wh_out.id)
) sl_agg
ON sl_agg.lotId = il.id
AND sl_agg.warehouseId = ill.warehouseId

WHERE
il.deleted = 0
$stockCategorySql
$itemCodeSql
$storeLocationSql
$lastInDateStartSql
$lastInDateEndSql

ORDER BY
it.type,
it.code,
il.lotNo,
wh.code
""".trimIndent()

return jdbcDao.queryForList(sql, args)
}

/** 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 ")})"
}
}


+ 81
- 0
src/main/java/com/ffii/fpsms/modules/report/web/StockTakeVarianceReportController.kt 파일 보기

@@ -0,0 +1,81 @@
package com.ffii.fpsms.modules.report.web

import com.ffii.fpsms.modules.report.service.ReportService
import com.ffii.fpsms.modules.report.service.StockTakeVarianceReportService
import org.springframework.http.HttpHeaders
import org.springframework.http.HttpStatus
import org.springframework.http.MediaType
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestParam
import org.springframework.web.bind.annotation.RestController
import java.time.LocalDate
import java.time.LocalTime
import java.time.format.DateTimeFormatter

@RestController
@RequestMapping("/report")
class StockTakeVarianceReportController(
private val reportService: ReportService,
private val stockTakeVarianceReportService: StockTakeVarianceReportService,
) {

/**
* 產生 Stock Take Variance 報表 PDF
*
* 查詢條件與 Stock Ledger 報表保持一致:
* - stockCategory
* - itemCode
* - storeLocation
* - lastInDateStart / lastInDateEnd
*/
@GetMapping("/print-stock-take-variance")
fun generateStockTakeVarianceReport(
@RequestParam(required = false) stockCategory: String?,
@RequestParam(required = false) itemCode: String?,
@RequestParam(required = false) storeLocation: String?,
@RequestParam(name = "lastInDateStart", required = false) lastInDateStart: String?,
@RequestParam(name = "lastInDateEnd", required = false) lastInDateEnd: 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["lastInDateStart"] = lastInDateStart ?: ""
parameters["lastInDateEnd"] = lastInDateEnd ?: ""
parameters["lastOutDateStart"] = ""
parameters["lastOutDateEnd"] = ""

val dbData = stockTakeVarianceReportService.searchStockTakeVarianceReport(
stockCategory = stockCategory,
itemCode = itemCode,
storeLocation = storeLocation,
lastInDateStart = lastInDateStart,
lastInDateEnd = lastInDateEnd,
)

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

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


+ 655
- 0
src/main/resources/jasper/StockTakeVarianceReport.jrxml 파일 보기

@@ -0,0 +1,655 @@
<?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="StockTakeVarianceReport" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="f00b4a24-af11-4263-9e82-3966acf01017">
<parameter name="stockSubCategory" class="java.lang.String">
<defaultValueExpression><![CDATA["stockSubCategory"]]></defaultValueExpression>
</parameter>
<parameter name="stockCategory" class="java.lang.String">
<defaultValueExpression><![CDATA["stockCategory"]]></defaultValueExpression>
</parameter>
<parameter name="itemNo" class="java.lang.String">
<defaultValueExpression><![CDATA["itemCode"]]></defaultValueExpression>
</parameter>
<parameter name="year" class="java.lang.String"/>
<parameter name="reportDate" class="java.lang.String"/>
<parameter name="reportTime" 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="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="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="currentBookBalance" class="java.lang.String"/>
<field name="totalCumStockIn" class="java.lang.String"/>
<field name="totalOpeningBalance" class="java.lang.String"/>
<field name="totalCumStockOut" class="java.lang.String"/>
<field name="totalCurrentBalance" class="java.lang.String"/>
<field name="lastOutDate" class="java.lang.String"/>
<field name="lastInDate" class="java.lang.String"/>
<field name="storeLocation" class="java.lang.String"/>
<field name="stockTakeQty" class="java.lang.String"/>
<field name="variance" class="java.lang.String"/>
<field name="variancePercentage" class="java.lang.String"/>
<group name="Group1">
<groupExpression><![CDATA[$F{itemNo}]]></groupExpression>
<groupHeader>
<band height="69">
<staticText>
<reportElement x="162" y="50" width="60" height="18" uuid="c43ed9ca-fc56-45ec-b0ee-226cfcff8aa3">
<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="222" y="50" width="59" height="18" uuid="03e2ea49-2624-4d3d-a8a5-5ddb555cf70c">
<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="281" y="50" width="61" height="18" uuid="8e6ca12d-b2e5-422e-96e1-71f547b00e8b">
<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="0" y="50" width="72" height="18" uuid="9b1a4488-b6df-4700-8016-83b36aa7e295">
<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="72" y="50" width="90" height="18" uuid="c88c7ca8-d64c-46b6-9725-f12734d6796a">
<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="342" y="50" width="60" height="18" uuid="dc169b7d-17b6-4d09-b222-c8f7a3e594ec">
<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="402" y="50" width="80" height="18" uuid="ed517641-4204-4b0d-8bd8-c5c2a2d880c5">
<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="642" y="50" width="80" height="18" uuid="2a6b0aa8-6959-4850-a55c-76d3a1236619">
<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="722" y="50" width="78" height="18" uuid="c4154ab0-b050-4007-a9a5-617cb45395a5">
<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="60" y="12" width="119" height="18" uuid="147aafe2-44f4-4ad2-82bc-f280d0d1cf3b">
<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="279" y="12" width="61" height="18" uuid="3bde86a7-2374-42e3-ae4d-d723d8c26d59">
<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="30" width="60" height="18" uuid="19e1fecf-2351-4256-acbd-3c532ecd3053">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement verticalAlignment="Top">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<textFieldExpression><![CDATA[$F{stockSubCategory}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="179" y="12" width="100" height="18" uuid="7dae262b-f67c-4e41-b377-4309e64966e3">
<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="279" y="30" width="61" height="18" uuid="9c1a6ce6-e459-4be8-8caa-eee298377f0a">
<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>
<textField>
<reportElement x="179" y="30" width="100" height="18" uuid="4ba9a34e-fdbb-4e81-8826-c741c60e5776">
<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>
<staticText>
<reportElement x="0" y="12" width="60" height="18" uuid="92479227-2add-4390-a07c-b3d740dc74f4">
<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="60" y="30" width="119" height="18" uuid="aeb5fe9d-7092-46d6-b990-591f95388d80">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement verticalAlignment="Top">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<textFieldExpression><![CDATA[$F{itemNo}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="580" y="50" width="62" height="18" uuid="cc9aeff5-5e31-442c-97af-344d62028419">
<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="530" y="50" width="50" height="18" uuid="e4ad84ad-9203-464f-a21c-b9c1214eabfb">
<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="482" y="50" width="48" height="18" uuid="d27b0108-c671-44ac-8af3-3c5f68a5ff4f">
<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>
<line>
<reportElement x="0" y="68" width="800" height="1" uuid="3d8c17c8-9bfb-4d3a-9513-1fd1e0cfa876">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
</line>
</band>
</groupHeader>
<groupFooter>
<band height="25">
<staticText>
<reportElement x="0" y="0" width="72" height="18" uuid="73e4fded-40e2-44d5-b789-34a33978ed5a">
<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="Middle">
<font fontName="微軟正黑體" size="10"/>
</textElement>
<text><![CDATA[貨品總量:]]></text>
</staticText>
<line>
<reportElement x="0" y="19" width="799" height="1" uuid="4747ef1b-701f-4214-aabc-ebd21ac1983a">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
</line>
<textField>
<reportElement x="222" y="0" width="59" height="18" uuid="f5110679-17e7-4ebe-91c7-d121585e8cb3"/>
<textElement textAlignment="Right" verticalAlignment="Top">
<font fontName="微軟正黑體"/>
</textElement>
<textFieldExpression><![CDATA[$F{totalCumStockIn}]]></textFieldExpression>
</textField>
<line>
<reportElement x="0" y="22" width="799" height="1" uuid="24f54c66-bb75-492f-935b-80025aa7c0c1">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
</line>
<textField>
<reportElement x="342" y="0" width="60" height="18" uuid="2a6656d2-98da-4b90-9c3b-e26f05ac07e2"/>
<textElement textAlignment="Right" verticalAlignment="Top">
<font fontName="微軟正黑體"/>
</textElement>
<textFieldExpression><![CDATA[$F{totalCurrentBalance}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="281" y="0" width="61" height="18" uuid="a3ba77c5-a47a-4add-8c47-c2b68d409643"/>
<textElement textAlignment="Right" verticalAlignment="Top">
<font fontName="微軟正黑體"/>
</textElement>
<textFieldExpression><![CDATA[$F{totalCumStockOut}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="162" y="0" width="60" height="18" uuid="4ff62b11-988c-4bf8-a851-203770c8206b"/>
<textElement textAlignment="Right" verticalAlignment="Top">
<font fontName="微軟正黑體"/>
</textElement>
<textFieldExpression><![CDATA[$F{totalOpeningBalance}]]></textFieldExpression>
</textField>
<line>
<reportElement x="0" y="-1" width="799" height="1" uuid="bb5e28fc-6ecd-4fd2-aef9-0729f29b8154">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
</line>
</band>
</groupFooter>
</group>
<background>
<band splitType="Stretch"/>
</background>
<pageHeader>
<band height="177" splitType="Stretch">
<textField>
<reportElement x="90" y="58" width="390" height="23" uuid="055d995c-21f5-4c0f-877b-01e3f5b5bcee">
<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>
<staticText>
<reportElement x="0" y="58" width="90" height="23" uuid="29921a47-81f3-4a87-a028-9774a52d9d11">
<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 evaluationTime="Report">
<reportElement x="780" y="12" width="20" height="18" uuid="3ab4080e-cc8d-4dfa-88f5-735d07ddc468">
<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="700" y="12" width="40" height="18" uuid="c956dfbd-62a5-4622-8d39-2650f1715ed2">
<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="821a1a2d-c892-40bd-b83a-70664069267e">
<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="3ed436a1-f986-4ced-a106-d8753f4500dc">
<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>
<line>
<reportElement x="0" y="90" width="800" height="1" uuid="1798b029-2455-47f7-bc74-71a510296848">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
</line>
<line>
<reportElement x="0" y="176" width="799" height="1" uuid="f513c3ec-7fbf-471f-a2e4-253a28919190">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
</line>
<line>
<reportElement x="0" y="172" width="799" height="1" uuid="351a15c1-61e4-4af3-bb48-dea07b8df3c2">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
</line>
<staticText>
<reportElement x="0" y="35" width="90" height="23" uuid="9f0deae9-2ec2-4216-98a2-048ab9a5ef75">
<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="e6b7b1f0-1979-4784-ba94-1472a0227945"/>
<textElement verticalAlignment="Middle">
<font fontName="微軟正黑體" size="16" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[$P{reportDate}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="570" y="35" width="228" height="23" uuid="8480fa52-ad91-40da-99dc-43963f4435e8"/>
<textElement verticalAlignment="Middle">
<font fontName="微軟正黑體" size="16" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[$P{reportTime}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="480" y="35" width="90" height="23" uuid="72e0e86b-38e1-44cf-94dc-718a683005a0">
<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="290" y="0" width="220" height="23" uuid="ae59d134-591e-4212-b594-6388bc15e629">
<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 Take Variance Report]]></text>
</staticText>
<textField>
<reportElement x="462" y="154" width="336" height="18" uuid="5f48b4ac-c22a-4021-b248-aebd1b92d034">
<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="136" width="716" height="18" uuid="6623c592-7ad7-47a1-88d5-fb090e696173">
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textElement verticalAlignment="Top">
<font fontName="微軟正黑體" size="12"/>
</textElement>
<textFieldExpression><![CDATA[$P{storeLocation}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="0" y="154" width="82" height="18" uuid="87ef77ed-11ea-4b39-8a6d-3d59ff6237c5">
<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="0" y="136" width="82" height="18" uuid="d996cf2f-4d33-4670-847c-92972493dfa3">
<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="100" width="716" height="18" uuid="ac6afeca-fefd-4bd0-bff4-eea61fe8466a">
<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="100" width="82" height="18" uuid="2458c6d8-ccd9-4681-85e4-282758424b65">
<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="154" width="298" height="18" uuid="6fa32fce-a0ee-4d45-9493-4dc2e7a285cb">
<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="118" width="82" height="18" uuid="31dcbc27-d256-4a03-af5b-9ee67096c433">
<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="118" width="716" height="18" uuid="a71100ea-1dd7-493a-b0cc-13d505825b89">
<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="380" y="154" width="82" height="18" uuid="a967dd17-63af-4315-9421-634ed6063bf8">
<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="31" splitType="Stretch">
<textField>
<reportElement x="281" y="0" width="61" height="30" uuid="19f83771-8676-4dea-8fe4-d17293cbc904"/>
<textElement textAlignment="Right" verticalAlignment="Top">
<font fontName="微軟正黑體"/>
</textElement>
<textFieldExpression><![CDATA[$F{cumStockOut}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="72" y="0" width="90" height="30" uuid="608e1ba1-d37b-492e-a6c5-c8e97dfaf14a"/>
<textElement textAlignment="Right" verticalAlignment="Top">
<font fontName="微軟正黑體"/>
</textElement>
<textFieldExpression><![CDATA[$F{expiryDate}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="162" y="0" width="60" height="30" uuid="f37e22a9-1ddd-4f18-82ca-07007187ecd5"/>
<textElement textAlignment="Right" verticalAlignment="Top">
<font fontName="微軟正黑體"/>
</textElement>
<textFieldExpression><![CDATA[$F{openingBalance}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="0" y="0" width="72" height="30" uuid="1d7293e1-dab1-473e-bdb9-f13cc2b29e19">
<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="10"/>
</textElement>
<textFieldExpression><![CDATA[$F{lotNo}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="222" y="0" width="59" height="30" uuid="f885d459-39e5-49d4-9e7e-fad313f5858a"/>
<textElement textAlignment="Right" verticalAlignment="Top">
<font fontName="微軟正黑體"/>
</textElement>
<textFieldExpression><![CDATA[$F{cumStockIn}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="342" y="0" width="60" height="30" uuid="48601d57-e240-4390-9ec7-71c77773ee86"/>
<textElement textAlignment="Right" verticalAlignment="Top">
<font fontName="微軟正黑體"/>
</textElement>
<textFieldExpression><![CDATA[$F{currentBookBalance}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="402" y="0" width="80" height="30" uuid="f8664cfc-0eb6-497a-bce6-2171e3d9e43a"/>
<textElement textAlignment="Left" verticalAlignment="Top">
<font fontName="微軟正黑體"/>
</textElement>
<textFieldExpression><![CDATA[$F{storeLocation}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="722" y="0" width="78" height="30" uuid="f77b71a5-fd51-4d0b-86cd-fe556b5abfa0"/>
<textElement textAlignment="Right" verticalAlignment="Top">
<font fontName="微軟正黑體"/>
</textElement>
<textFieldExpression><![CDATA[$F{lastOutDate}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="642" y="0" width="80" height="30" uuid="19641d4c-43f5-42ef-b76a-1efc06f9805a"/>
<textElement textAlignment="Right" verticalAlignment="Top">
<font fontName="微軟正黑體"/>
</textElement>
<textFieldExpression><![CDATA[$F{lastInDate}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="482" y="0" width="48" height="30" uuid="02d11283-5166-45fd-a900-6ae62315ac0a"/>
<textElement textAlignment="Right" verticalAlignment="Top">
<font fontName="微軟正黑體"/>
</textElement>
<textFieldExpression><![CDATA[$F{stockTakeQty}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="530" y="0" width="50" height="30" uuid="68b8a311-ac96-4df6-9b9f-fb0db60c8a2d"/>
<textElement textAlignment="Right" verticalAlignment="Top">
<font fontName="微軟正黑體"/>
</textElement>
<textFieldExpression><![CDATA[$F{variance}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="580" y="0" width="62" height="30" uuid="c49f3615-0417-4724-a048-127fafce1d10"/>
<textElement textAlignment="Right" verticalAlignment="Top">
<font fontName="微軟正黑體"/>
</textElement>
<textFieldExpression><![CDATA[$F{variancePercentage}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>

불러오는 중...
취소
저장