| @@ -10,10 +10,13 @@ import java.util.List; | |||||
| import net.sf.jasperreports.engine.JRDataSource; | import net.sf.jasperreports.engine.JRDataSource; | ||||
| import net.sf.jasperreports.engine.JREmptyDataSource; | import net.sf.jasperreports.engine.JREmptyDataSource; | ||||
| import net.sf.jasperreports.engine.JRParameter; | |||||
| import net.sf.jasperreports.engine.JasperFillManager; | import net.sf.jasperreports.engine.JasperFillManager; | ||||
| import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; | import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; | ||||
| import net.sf.jasperreports.engine.data.JRMapCollectionDataSource; | import net.sf.jasperreports.engine.data.JRMapCollectionDataSource; | ||||
| import java.util.HashMap; | |||||
| public class PdfUtils { | public class PdfUtils { | ||||
| public static JasperReport loadJasperReport(String path) throws Exception { | public static JasperReport loadJasperReport(String path) throws Exception { | ||||
| @@ -34,7 +37,12 @@ public class PdfUtils { | |||||
| } else { | } else { | ||||
| dataSources = new JRBeanCollectionDataSource(loopList); | dataSources = new JRBeanCollectionDataSource(loopList); | ||||
| } | } | ||||
| JasperPrint jasperPrint = JasperFillManager.fillReport(report, params, dataSources); | |||||
| Map<String, Object> filled = new HashMap<>(); | |||||
| if (params != null) { | |||||
| filled.putAll(params); | |||||
| } | |||||
| filled.put(JRParameter.REPORT_RESOURCE_BUNDLE, ReportMessages.bundle()); | |||||
| JasperPrint jasperPrint = JasperFillManager.fillReport(report, filled, dataSources); | |||||
| return jasperPrint; | return jasperPrint; | ||||
| } | } | ||||
| @@ -0,0 +1,13 @@ | |||||
| package com.ffii.core.utils | |||||
| import java.util.Locale | |||||
| import java.util.ResourceBundle | |||||
| /** Jasper label bundle for the current request locale. Root bundle is Chinese. */ | |||||
| object ReportMessages { | |||||
| @JvmStatic | |||||
| fun bundle(): ResourceBundle { | |||||
| val locale = if (UiText.isEnglish()) Locale.ENGLISH else Locale.CHINESE | |||||
| return ResourceBundle.getBundle("i18n.reports", locale) | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,17 @@ | |||||
| package com.ffii.core.utils | |||||
| import org.springframework.context.i18n.LocaleContextHolder | |||||
| /** | |||||
| * User-facing copy for the request locale. | |||||
| * Chinese is the default. English is used only when the request language is English. | |||||
| * Do not use this for values stored in the database or compared with stored data. | |||||
| */ | |||||
| object UiText { | |||||
| @JvmStatic | |||||
| fun isEnglish(): Boolean = | |||||
| LocaleContextHolder.getLocale().language.equals("en", ignoreCase = true) | |||||
| @JvmStatic | |||||
| fun t(zh: String, en: String): String = if (isEnglish()) en else zh | |||||
| } | |||||
| @@ -0,0 +1,24 @@ | |||||
| package com.ffii.fpsms.config; | |||||
| import java.util.Locale; | |||||
| import org.springframework.beans.factory.config.BeanPostProcessor; | |||||
| import org.springframework.stereotype.Component; | |||||
| import org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver; | |||||
| /** | |||||
| * The MVC config already creates {@code localeResolver}. A second bean with that | |||||
| * name is rejected. This sets the existing resolver's default to Chinese when | |||||
| * the request has no Accept-Language header. | |||||
| */ | |||||
| @Component | |||||
| public class DefaultChineseLocale implements BeanPostProcessor { | |||||
| @Override | |||||
| public Object postProcessAfterInitialization(Object bean, String beanName) { | |||||
| if (bean instanceof AcceptHeaderLocaleResolver resolver && "localeResolver".equals(beanName)) { | |||||
| resolver.setDefaultLocale(Locale.CHINESE); | |||||
| } | |||||
| return bean; | |||||
| } | |||||
| } | |||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.jobOrder.service | package com.ffii.fpsms.modules.jobOrder.service | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.core.support.JdbcDao | import com.ffii.core.support.JdbcDao | ||||
| import com.ffii.fpsms.modules.jobOrder.entity.OnPackTemplateFile | import com.ffii.fpsms.modules.jobOrder.entity.OnPackTemplateFile | ||||
| import com.ffii.fpsms.modules.jobOrder.entity.OnPackTemplateFileRepository | import com.ffii.fpsms.modules.jobOrder.entity.OnPackTemplateFileRepository | ||||
| @@ -67,15 +69,15 @@ open class OnPackTemplateFileService( | |||||
| open fun upload(machineRaw: String, itemCodeRaw: String, files: List<MultipartFile>): OnPackTemplateUploadResponse { | open fun upload(machineRaw: String, itemCodeRaw: String, files: List<MultipartFile>): OnPackTemplateUploadResponse { | ||||
| val machine = normalizeMachine(machineRaw) | val machine = normalizeMachine(machineRaw) | ||||
| val itemCode = normalizeItemCode(itemCodeRaw) | val itemCode = normalizeItemCode(itemCodeRaw) | ||||
| require(files.isNotEmpty()) { "請選擇要上傳的檔案(.image / .bmp / .job)" } | |||||
| require(files.isNotEmpty()) { UiText.t("請選擇要上傳的檔案(.image / .bmp / .job)", "Choose a file to upload (.image / .bmp / .job)") } | |||||
| val saved = mutableListOf<String>() | val saved = mutableListOf<String>() | ||||
| files.forEach { part -> | files.forEach { part -> | ||||
| if (part.isEmpty) return@forEach | if (part.isEmpty) return@forEach | ||||
| val original = part.originalFilename ?: part.name | val original = part.originalFilename ?: part.name | ||||
| val storedName = storedFileName(machine, itemCode, original) | val storedName = storedFileName(machine, itemCode, original) | ||||
| val bytes = part.bytes | val bytes = part.bytes | ||||
| require(bytes.isNotEmpty()) { "空檔案:$original" } | |||||
| require(bytes.size <= MAX_BYTES) { "檔案過大(上限 ${MAX_BYTES / (1024 * 1024)}MB):$original" } | |||||
| require(bytes.isNotEmpty()) { UiText.t("空檔案:", "Empty file: ") + original } | |||||
| require(bytes.size <= MAX_BYTES) { UiText.t("檔案過大(上限 ", "File is too large (limit ") + (MAX_BYTES / (1024 * 1024)) + "MB):" + original } | |||||
| val row = try { | val row = try { | ||||
| repository.findByMachineAndItemCodeIgnoreCaseAndFileNameIgnoreCase( | repository.findByMachineAndItemCodeIgnoreCaseAndFileNameIgnoreCase( | ||||
| machine, | machine, | ||||
| @@ -88,7 +90,7 @@ open class OnPackTemplateFileService( | |||||
| } | } | ||||
| } catch (e: DataAccessException) { | } catch (e: DataAccessException) { | ||||
| throw IllegalArgumentException( | throw IllegalArgumentException( | ||||
| "無法儲存 OnPack 模板。請重啟後端以執行 Liquibase(建立 onpack_template_file)。", | |||||
| UiText.t("無法儲存 OnPack 模板。請重啟後端以執行 Liquibase(建立 onpack_template_file)。", "Could not save the OnPack template. Restart the backend so Liquibase can create onpack_template_file."), | |||||
| e, | e, | ||||
| ) | ) | ||||
| } | } | ||||
| @@ -102,13 +104,13 @@ open class OnPackTemplateFileService( | |||||
| repository.save(row) | repository.save(row) | ||||
| } catch (e: DataAccessException) { | } catch (e: DataAccessException) { | ||||
| throw IllegalArgumentException( | throw IllegalArgumentException( | ||||
| "無法儲存 OnPack 模板。請重啟後端以執行 Liquibase(建立 onpack_template_file)。", | |||||
| UiText.t("無法儲存 OnPack 模板。請重啟後端以執行 Liquibase(建立 onpack_template_file)。", "Could not save the OnPack template. Restart the backend so Liquibase can create onpack_template_file."), | |||||
| e, | e, | ||||
| ) | ) | ||||
| } | } | ||||
| saved.add(storedName) | saved.add(storedName) | ||||
| } | } | ||||
| require(saved.isNotEmpty()) { "沒有可儲存的檔案" } | |||||
| require(saved.isNotEmpty()) { UiText.t("沒有可儲存的檔案", "There is no file to save") } | |||||
| try { | try { | ||||
| ensureOnPackQrRow(itemCode, machine, saved) | ensureOnPackQrRow(itemCode, machine, saved) | ||||
| } catch (e: DataAccessException) { | } catch (e: DataAccessException) { | ||||
| @@ -120,10 +122,10 @@ open class OnPackTemplateFileService( | |||||
| @Transactional | @Transactional | ||||
| open fun softDelete(id: Long) { | open fun softDelete(id: Long) { | ||||
| val row = try { | val row = try { | ||||
| repository.findById(id).orElseThrow { IllegalArgumentException("找不到該模板檔") } | |||||
| repository.findById(id).orElseThrow { IllegalArgumentException(UiText.t("找不到該模板檔", "Template file not found")) } | |||||
| } catch (e: DataAccessException) { | } catch (e: DataAccessException) { | ||||
| throw IllegalArgumentException( | throw IllegalArgumentException( | ||||
| "無法刪除 OnPack 模板。請重啟後端以執行 Liquibase(建立 onpack_template_file)。", | |||||
| UiText.t("無法刪除 OnPack 模板。請重啟後端以執行 Liquibase(建立 onpack_template_file)。", "Could not delete the OnPack template. Restart the backend so Liquibase can create onpack_template_file."), | |||||
| e, | e, | ||||
| ) | ) | ||||
| } | } | ||||
| @@ -241,7 +243,7 @@ open class OnPackTemplateFileService( | |||||
| mapOf("machine" to machine, "code" to itemCode), | mapOf("machine" to machine, "code" to itemCode), | ||||
| ) | ) | ||||
| } catch (e: DataAccessException) { | } catch (e: DataAccessException) { | ||||
| throw IllegalStateException("無法儲存品號。請重啟後端以執行 Liquibase(建立 onpack_expiry_item_code)。", e) | |||||
| throw IllegalStateException(UiText.t("無法儲存品號。請重啟後端以執行 Liquibase(建立 onpack_expiry_item_code)。", "Could not save the item code. Restart the backend so Liquibase can create onpack_expiry_item_code."), e) | |||||
| } | } | ||||
| if (existing.isPresent) { | if (existing.isPresent) { | ||||
| val row = existing.get() | val row = existing.get() | ||||
| @@ -285,10 +287,10 @@ open class OnPackTemplateFileService( | |||||
| mapOf("machine" to machine, "code" to itemCode, "printName" to stored), | mapOf("machine" to machine, "code" to itemCode, "printName" to stored), | ||||
| ) | ) | ||||
| if (n == 0) { | if (n == 0) { | ||||
| throw IllegalArgumentException("清單中沒有 $itemCode") | |||||
| throw IllegalArgumentException(UiText.t("清單中沒有 ", "Item code is not in the list: ") + itemCode) | |||||
| } | } | ||||
| } catch (e: DataAccessException) { | } catch (e: DataAccessException) { | ||||
| throw IllegalStateException("無法儲存列印名稱。請重啟後端以執行 Liquibase(printName 欄位)。", e) | |||||
| throw IllegalStateException(UiText.t("無法儲存列印名稱。請重啟後端以執行 Liquibase(printName 欄位)。", "Could not save the print name. Restart the backend so Liquibase can add the printName column."), e) | |||||
| } | } | ||||
| } | } | ||||
| if (body.useMinus18 != null) { | if (body.useMinus18 != null) { | ||||
| @@ -311,7 +313,7 @@ open class OnPackTemplateFileService( | |||||
| mapOf("machine" to machine, "code" to itemCode), | mapOf("machine" to machine, "code" to itemCode), | ||||
| ) | ) | ||||
| } catch (e: DataAccessException) { | } catch (e: DataAccessException) { | ||||
| throw IllegalStateException("無法刪除品號。請重啟後端以執行 Liquibase(建立 onpack_expiry_item_code)。", e) | |||||
| throw IllegalStateException(UiText.t("無法刪除品號。請重啟後端以執行 Liquibase(建立 onpack_expiry_item_code)。", "Could not delete the item code. Restart the backend so Liquibase can create onpack_expiry_item_code."), e) | |||||
| } | } | ||||
| } | } | ||||
| @@ -499,13 +501,13 @@ open class OnPackTemplateFileService( | |||||
| return when (v) { | return when (v) { | ||||
| MACHINE_JUICE, "bmp", "onpack2030", "汁水機" -> MACHINE_JUICE | MACHINE_JUICE, "bmp", "onpack2030", "汁水機" -> MACHINE_JUICE | ||||
| MACHINE_LEMON, "text", "onpack2030_2", "檸檬機" -> MACHINE_LEMON | MACHINE_LEMON, "text", "onpack2030_2", "檸檬機" -> MACHINE_LEMON | ||||
| else -> throw IllegalArgumentException("machine 必須是 juice(汁水機)或 lemon(檸檬機)") | |||||
| else -> throw IllegalArgumentException(UiText.t("machine 必須是 juice(汁水機)或 lemon(檸檬機)", "machine must be juice or lemon")) | |||||
| } | } | ||||
| } | } | ||||
| fun normalizeItemCode(raw: String): String { | fun normalizeItemCode(raw: String): String { | ||||
| val code = raw.trim().uppercase() | val code = raw.trim().uppercase() | ||||
| require(ITEM_CODE.matches(code)) { "品號格式不正確:$raw" } | |||||
| require(ITEM_CODE.matches(code)) { UiText.t("品號格式不正確:", "Invalid item code: ") + raw } | |||||
| return code | return code | ||||
| } | } | ||||
| @@ -520,7 +522,7 @@ open class OnPackTemplateFileService( | |||||
| fun storedFileName(machine: String, itemCode: String, originalName: String): String { | fun storedFileName(machine: String, itemCode: String, originalName: String): String { | ||||
| val safe = sanitizeFileName(originalName) | val safe = sanitizeFileName(originalName) | ||||
| ?: throw IllegalArgumentException("不支援的檔名(只接受 .image / .bmp / .job):$originalName") | |||||
| ?: throw IllegalArgumentException(UiText.t("不支援的檔名(只接受 .image / .bmp / .job):", "Unsupported file name (only .image / .bmp / .job): ") + originalName) | |||||
| return if (safe.endsWith(".image", ignoreCase = true)) { | return if (safe.endsWith(".image", ignoreCase = true)) { | ||||
| if (machine == MACHINE_LEMON) "${itemCode.uppercase()}.image" | if (machine == MACHINE_LEMON) "${itemCode.uppercase()}.image" | ||||
| else "${itemCode.lowercase()}.image" | else "${itemCode.lowercase()}.image" | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.jobOrder.service | package com.ffii.fpsms.modules.jobOrder.service | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.core.support.JdbcDao | import com.ffii.core.support.JdbcDao | ||||
| import com.ffii.fpsms.modules.common.SettingNames | import com.ffii.fpsms.modules.common.SettingNames | ||||
| import com.ffii.fpsms.modules.jobOrder.entity.JobOrder | import com.ffii.fpsms.modules.jobOrder.entity.JobOrder | ||||
| @@ -348,7 +350,7 @@ class PlasticBagPrinterService( | |||||
| logger.error("sendLaserBag2Job unexpected error", e) | logger.error("sendLaserBag2Job unexpected error", e) | ||||
| LaserBag2SendResponse( | LaserBag2SendResponse( | ||||
| success = false, | success = false, | ||||
| message = "送出失敗:${e.message ?: e.javaClass.simpleName}", | |||||
| message = UiText.t("送出失敗:", "Send failed: ") + (e.message ?: e.javaClass.simpleName), | |||||
| ) | ) | ||||
| } | } | ||||
| } | } | ||||
| @@ -501,24 +503,24 @@ class PlasticBagPrinterService( | |||||
| if (laserAckLooksInvalid(ackRaw)) { | if (laserAckLooksInvalid(ackRaw)) { | ||||
| return LaserBag2TcpResult( | return LaserBag2TcpResult( | ||||
| false, | false, | ||||
| "檸檬機回覆 invalid,未接受指令。", | |||||
| UiText.t("檸檬機回覆 invalid,未接受指令。", "The lemon printer replied invalid and did not accept the command."), | |||||
| payload, | payload, | ||||
| ackRaw, | ackRaw, | ||||
| false, | false, | ||||
| ) | ) | ||||
| } | } | ||||
| val msg = if (receiveAck) { | val msg = if (receiveAck) { | ||||
| "已送出激光機:$payload(已確認)" | |||||
| UiText.t("已送出激光機:", "Sent to the laser printer: ") + payload + UiText.t("(已確認)", " (confirmed)") | |||||
| } else { | } else { | ||||
| "已送出激光機:$payload" | |||||
| UiText.t("已送出激光機:", "Sent to the laser printer: ") + payload | |||||
| } | } | ||||
| return LaserBag2TcpResult(true, msg, payload, ackRaw, receiveAck) | return LaserBag2TcpResult(true, msg, payload, ackRaw, receiveAck) | ||||
| } catch (e: ConnectException) { | } catch (e: ConnectException) { | ||||
| return LaserBag2TcpResult(false, "無法連線至 $ip:$port,請確認激光機已開機且 IP 正確。", payload, null, false) | |||||
| return LaserBag2TcpResult(false, UiText.t("無法連線至 ", "Could not connect to ") + ip + ":" + port + UiText.t(",請確認激光機已開機且 IP 正確。", ". Check that the printer is on and the IP is correct."), payload, null, false) | |||||
| } catch (e: SocketTimeoutException) { | } catch (e: SocketTimeoutException) { | ||||
| return LaserBag2TcpResult(false, "連線逾時 ($ip:$port),請檢查網路與連接埠。", payload, null, false) | |||||
| return LaserBag2TcpResult(false, UiText.t("連線逾時 (", "Connection timed out (") + ip + ":" + port + UiText.t("),請檢查網路與連接埠。", "). Check the network and port."), payload, null, false) | |||||
| } catch (e: Exception) { | } catch (e: Exception) { | ||||
| return LaserBag2TcpResult(false, "激光機送出失敗:${e.message}", payload, null, false) | |||||
| return LaserBag2TcpResult(false, UiText.t("激光機送出失敗:", "Laser printer send failed: ") + (e.message), payload, null, false) | |||||
| } finally { | } finally { | ||||
| try { | try { | ||||
| Thread.sleep(100) | Thread.sleep(100) | ||||
| @@ -590,9 +592,9 @@ class PlasticBagPrinterService( | |||||
| } | } | ||||
| return raw to null | return raw to null | ||||
| } catch (e: ConnectException) { | } catch (e: ConnectException) { | ||||
| return null to "無法連線" | |||||
| return null to UiText.t("無法連線", "Could not connect") | |||||
| } catch (e: SocketTimeoutException) { | } catch (e: SocketTimeoutException) { | ||||
| return null to "讀取逾時" | |||||
| return null to UiText.t("讀取逾時", "Read timed out") | |||||
| } catch (e: Exception) { | } catch (e: Exception) { | ||||
| return null to (e.message ?: e.javaClass.simpleName) | return null to (e.message ?: e.javaClass.simpleName) | ||||
| } finally { | } finally { | ||||
| @@ -611,9 +613,9 @@ class PlasticBagPrinterService( | |||||
| } | } | ||||
| private fun markStatusToLabel(v: Int?): String? = when (v) { | private fun markStatusToLabel(v: Int?): String? = when (v) { | ||||
| 0 -> "待機" | |||||
| 1 -> "打標中" | |||||
| 2 -> "其他狀態" | |||||
| 0 -> UiText.t("待機", "Idle") | |||||
| 1 -> UiText.t("打標中", "Marking") | |||||
| 2 -> UiText.t("其他狀態", "Other status") | |||||
| else -> null | else -> null | ||||
| } | } | ||||
| @@ -770,7 +772,7 @@ class PlasticBagPrinterService( | |||||
| .mapNotNull { (it["jobOrderId"] as? Number)?.toLong() } | .mapNotNull { (it["jobOrderId"] as? Number)?.toLong() } | ||||
| .toSet() | .toSet() | ||||
| val packagingJobOrders = normalizedJobOrders.filter { it.jobOrderId in allowedJobOrderIds } | val packagingJobOrders = normalizedJobOrders.filter { it.jobOrderId in allowedJobOrderIds } | ||||
| require(packagingJobOrders.isNotEmpty()) { "No 包裝 process job orders found for export" } | |||||
| require(packagingJobOrders.isNotEmpty()) { UiText.t("No 包裝 process job orders found for export", "No packing-process job orders found for export") } | |||||
| val expiryPrintNames = if (includeExpiry) { | val expiryPrintNames = if (includeExpiry) { | ||||
| onPackTemplateFileService.expiryPrintNames(OnPackTemplateFileService.MACHINE_JUICE) | onPackTemplateFileService.expiryPrintNames(OnPackTemplateFileService.MACHINE_JUICE) | ||||
| @@ -820,7 +822,7 @@ class PlasticBagPrinterService( | |||||
| require(exportItemsListed.isNotEmpty()) { | require(exportItemsListed.isNotEmpty()) { | ||||
| if (includeExpiry) { | if (includeExpiry) { | ||||
| "當日工單沒有在汁水機到期日 ZIP 品號清單中的項目(OnPack 模板可管理此清單)" | |||||
| UiText.t("當日工單沒有在汁水機到期日 ZIP 品號清單中的項目(OnPack 模板可管理此清單)", "Today's job orders have no item codes on the juice expiry ZIP list. Manage that list in OnPack templates.") | |||||
| } else { | } else { | ||||
| "No OnPack QR (bmp) rows in onpack_qr for the selected job orders, or no matching templates" | "No OnPack QR (bmp) rows in onpack_qr for the selected job orders, or no matching templates" | ||||
| } | } | ||||
| @@ -847,9 +849,9 @@ class PlasticBagPrinterService( | |||||
| require(exportItems.isNotEmpty()) { | require(exportItems.isNotEmpty()) { | ||||
| if (includeExpiry && skippedWithoutExpiry.isNotEmpty()) { | if (includeExpiry && skippedWithoutExpiry.isNotEmpty()) { | ||||
| "當日汁水機清單品號都沒有預設保質期,無法產生到期日 ZIP。請到設定 → 物品預設保質期新增:${skippedWithoutExpiry.joinToString("、")}" | |||||
| UiText.t("當日汁水機清單品號都沒有預設保質期,無法產生到期日 ZIP。請到設定 → 物品預設保質期新增:", "None of today's juice-list item codes have a default shelf life, so the expiry ZIP cannot be created. Add them under Settings, item default shelf life: ") + (skippedWithoutExpiry.joinToString("、")) | |||||
| } else if (includeExpiry) { | } else if (includeExpiry) { | ||||
| "當日工單沒有在汁水機到期日 ZIP 品號清單中的項目(OnPack 模板可管理此清單)" | |||||
| UiText.t("當日工單沒有在汁水機到期日 ZIP 品號清單中的項目(OnPack 模板可管理此清單)", "Today's job orders have no item codes on the juice expiry ZIP list. Manage that list in OnPack templates.") | |||||
| } else { | } else { | ||||
| "No OnPack QR (bmp) rows in onpack_qr for the selected job orders, or no matching templates" | "No OnPack QR (bmp) rows in onpack_qr for the selected job orders, or no matching templates" | ||||
| } | } | ||||
| @@ -858,7 +860,7 @@ class PlasticBagPrinterService( | |||||
| val expiryMasterImage = if (includeExpiry) loadPp1181ExpiryMasterImage() else null | val expiryMasterImage = if (includeExpiry) loadPp1181ExpiryMasterImage() else null | ||||
| val expiryMasterJob = if (includeExpiry) loadPp1181MasterJob() else null | val expiryMasterJob = if (includeExpiry) loadPp1181MasterJob() else null | ||||
| if (includeExpiry) { | if (includeExpiry) { | ||||
| require(expiryMasterImage != null) { "找不到 PP1181 到期日主模板(onpack2030_exp/pp1181.image)" } | |||||
| require(expiryMasterImage != null) { UiText.t("找不到 PP1181 到期日主模板(onpack2030_exp/pp1181.image)", "The PP1181 expiry master template was not found (onpack2030_exp/pp1181.image)") } | |||||
| } | } | ||||
| val baos = ByteArrayOutputStream() | val baos = ByteArrayOutputStream() | ||||
| @@ -1013,7 +1015,7 @@ class PlasticBagPrinterService( | |||||
| .mapNotNull { (it["jobOrderId"] as? Number)?.toLong() } | .mapNotNull { (it["jobOrderId"] as? Number)?.toLong() } | ||||
| .toSet() | .toSet() | ||||
| val packagingJobOrders = normalizedJobOrders.filter { it.jobOrderId in allowedJobOrderIds } | val packagingJobOrders = normalizedJobOrders.filter { it.jobOrderId in allowedJobOrderIds } | ||||
| require(packagingJobOrders.isNotEmpty()) { "No 包裝 process job orders found for export" } | |||||
| require(packagingJobOrders.isNotEmpty()) { UiText.t("No 包裝 process job orders found for export", "No packing-process job orders found for export") } | |||||
| val exportItemsRaw = packagingJobOrders | val exportItemsRaw = packagingJobOrders | ||||
| .groupBy { it.itemCode.trim().lowercase() } | .groupBy { it.itemCode.trim().lowercase() } | ||||
| @@ -1053,7 +1055,7 @@ class PlasticBagPrinterService( | |||||
| require(exportItems.isNotEmpty()) { | require(exportItems.isNotEmpty()) { | ||||
| if (includeExpiry && skippedWithoutExpiry.isNotEmpty()) { | if (includeExpiry && skippedWithoutExpiry.isNotEmpty()) { | ||||
| "當日檸檬機品號都沒有預設保質期,無法產生到期日 ZIP。請到設定 → 物品預設保質期新增:${skippedWithoutExpiry.joinToString("、")}" | |||||
| UiText.t("當日檸檬機品號都沒有預設保質期,無法產生到期日 ZIP。請到設定 → 物品預設保質期新增:", "None of today's lemon item codes have a default shelf life, so the expiry ZIP cannot be created. Add them under Settings, item default shelf life: ") + (skippedWithoutExpiry.joinToString("、")) | |||||
| } else { | } else { | ||||
| "No OnPack QR (text) rows in onpack_qr for the selected job orders, or no matching templates" | "No OnPack QR (text) rows in onpack_qr for the selected job orders, or no matching templates" | ||||
| } | } | ||||
| @@ -1484,14 +1486,14 @@ class PlasticBagPrinterService( | |||||
| return try { | return try { | ||||
| Socket().use { socket -> | Socket().use { socket -> | ||||
| socket.connect(InetSocketAddress(ip, port), 3000) | socket.connect(InetSocketAddress(ip, port), 3000) | ||||
| true to "$printerName 已連線($ip:$port)" | |||||
| true to printerName + UiText.t(" 已連線(", " is connected (") + ip + ":" + port + ")" | |||||
| } | } | ||||
| } catch (e: SocketTimeoutException) { | } catch (e: SocketTimeoutException) { | ||||
| false to "$printerName 連線逾時($ip:$port)" | |||||
| false to printerName + UiText.t(" 連線逾時(", " timed out (") + ip + ":" + port + ")" | |||||
| } catch (e: ConnectException) { | } catch (e: ConnectException) { | ||||
| false to "$printerName 無法連線($ip:$port)" | |||||
| false to printerName + UiText.t(" 無法連線(", " could not connect (") + ip + ":" + port + ")" | |||||
| } catch (e: Exception) { | } catch (e: Exception) { | ||||
| false to "$printerName 連線失敗($ip:$port):${e.message}" | |||||
| false to printerName + UiText.t(" 連線失敗(", " connection failed (") + ip + ":" + port + "):" + (e.message) | |||||
| } | } | ||||
| } | } | ||||
| @@ -1719,7 +1721,7 @@ class PlasticBagPrinterService( | |||||
| var reader: BufferedReader? = null | var reader: BufferedReader? = null | ||||
| try { | try { | ||||
| println("Han's Laser TCP: 正在連接 $ip:$port ...") | |||||
| println(UiText.t("Han's Laser TCP: 正在連接 ", "Han's Laser TCP: connecting to ") + ip + ":" + port + " ...") | |||||
| socket = Socket(ip, port).apply { | socket = Socket(ip, port).apply { | ||||
| soTimeout = 8000 // 8秒超時,避免卡死 | soTimeout = 8000 // 8秒超時,避免卡死 | ||||
| } | } | ||||
| @@ -1734,7 +1736,7 @@ class PlasticBagPrinterService( | |||||
| Thread.sleep(300) // give device time to process | Thread.sleep(300) // give device time to process | ||||
| val resp = reader.readLine()?.trim() ?: "" | val resp = reader.readLine()?.trim() ?: "" | ||||
| println("命令: $cmd → 回應: $resp") | |||||
| println(UiText.t("命令: ", "Command: ") + cmd + UiText.t(" → 回應: ", " → response: ") + resp) | |||||
| return resp.startsWith("OK") | return resp.startsWith("OK") | ||||
| } | } | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.jobOrder.service | package com.ffii.fpsms.modules.jobOrder.service | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.core.support.JdbcDao | import com.ffii.core.support.JdbcDao | ||||
| import org.springframework.stereotype.Service | import org.springframework.stereotype.Service | ||||
| import java.time.DayOfWeek | import java.time.DayOfWeek | ||||
| @@ -132,13 +134,13 @@ open class PsScheduleRuleService( | |||||
| } | } | ||||
| fun savePlantRules(request: SavePsPlantRulesRequest) { | fun savePlantRules(request: SavePsPlantRulesRequest) { | ||||
| requireDays(request.redLineDays, request.safetyStockDays, "一般日") | |||||
| requireDays(request.prepareMoreRedLineDays, request.prepareMoreSafetyStockDays, "多備日") | |||||
| val coffee = requireProduceDays(request.coffeeDays, "類別 A") | |||||
| val tea = requireProduceDays(request.teaDays, "類別 B") | |||||
| val lemon = requireProduceDays(request.lemonDays, "類別 C") | |||||
| val prepareMore = parseDaysStrict(request.prepareMoreDays, "多備星期") | |||||
| val noProduction = parseDaysStrict(request.noProductionDays, "不生產星期") | |||||
| requireDays(request.redLineDays, request.safetyStockDays, UiText.t("一般日", "Normal days")) | |||||
| requireDays(request.prepareMoreRedLineDays, request.prepareMoreSafetyStockDays, UiText.t("多備日", "Extra-prep days")) | |||||
| val coffee = requireProduceDays(request.coffeeDays, UiText.t("類別 A", "Category A")) | |||||
| val tea = requireProduceDays(request.teaDays, UiText.t("類別 B", "Category B")) | |||||
| val lemon = requireProduceDays(request.lemonDays, UiText.t("類別 C", "Category C")) | |||||
| val prepareMore = parseDaysStrict(request.prepareMoreDays, UiText.t("多備星期", "Extra-prep weekdays")) | |||||
| val noProduction = parseDaysStrict(request.noProductionDays, UiText.t("不生產星期", "Non-production weekdays")) | |||||
| upsert(RED_LINE, formatNumber(request.redLineDays), "float") | upsert(RED_LINE, formatNumber(request.redLineDays), "float") | ||||
| upsert(SAFETY, formatNumber(request.safetyStockDays), "float") | upsert(SAFETY, formatNumber(request.safetyStockDays), "float") | ||||
| @@ -163,8 +165,8 @@ open class PsScheduleRuleService( | |||||
| if (red != null && safety != null) { | if (red != null && safety != null) { | ||||
| requireDays(red, safety, itemCode) | requireDays(red, safety, itemCode) | ||||
| } else { | } else { | ||||
| red?.let { requirePositive(it, "$itemCode 觸發日") } | |||||
| safety?.let { requirePositive(it, "$itemCode 補貨日") } | |||||
| red?.let { requirePositive(it, itemCode + UiText.t(" 觸發日", " trigger days")) } | |||||
| safety?.let { requirePositive(it, itemCode + UiText.t(" 補貨日", " replenishment days")) } | |||||
| } | } | ||||
| } | } | ||||
| val produceDays = if (request.useCustomProduceDays) { | val produceDays = if (request.useCustomProduceDays) { | ||||
| @@ -257,29 +259,29 @@ open class PsScheduleRuleService( | |||||
| } | } | ||||
| private fun requireDays(redLine: Double, safety: Double, label: String) { | private fun requireDays(redLine: Double, safety: Double, label: String) { | ||||
| requirePositive(redLine, "$label 觸發日") | |||||
| requirePositive(safety, "$label 補貨日") | |||||
| requirePositive(redLine, label + UiText.t(" 觸發日", " trigger days")) | |||||
| requirePositive(safety, label + UiText.t(" 補貨日", " replenishment days")) | |||||
| if (redLine > safety) { | if (redLine > safety) { | ||||
| throw IllegalArgumentException("$label:觸發日不可大於補貨日") | |||||
| throw IllegalArgumentException(label + UiText.t(":觸發日不可大於補貨日", ": trigger days cannot be greater than replenishment days")) | |||||
| } | } | ||||
| } | } | ||||
| private fun requirePositive(value: Double, label: String) { | private fun requirePositive(value: Double, label: String) { | ||||
| if (!value.isFinite() || value <= 0.0) { | if (!value.isFinite() || value <= 0.0) { | ||||
| throw IllegalArgumentException("$label 必須大於 0") | |||||
| throw IllegalArgumentException(label + UiText.t(" 必須大於 0", " must be greater than 0")) | |||||
| } | } | ||||
| } | } | ||||
| private fun requireProduceDays(tokens: List<String>, label: String): Set<DayOfWeek> { | private fun requireProduceDays(tokens: List<String>, label: String): Set<DayOfWeek> { | ||||
| val days = parseDaysStrict(tokens, label) | val days = parseDaysStrict(tokens, label) | ||||
| if (days.isEmpty()) throw IllegalArgumentException("$label 至少要選一天可生產") | |||||
| if (days.isEmpty()) throw IllegalArgumentException(label + UiText.t(" 至少要選一天可生產", " must include at least one production day")) | |||||
| return days | return days | ||||
| } | } | ||||
| private fun parseDaysStrict(tokens: List<String>, label: String): Set<DayOfWeek> { | private fun parseDaysStrict(tokens: List<String>, label: String): Set<DayOfWeek> { | ||||
| val unknown = tokens.map { it.trim().uppercase() }.filter { it.isNotEmpty() && it !in DAY_TOKENS } | val unknown = tokens.map { it.trim().uppercase() }.filter { it.isNotEmpty() && it !in DAY_TOKENS } | ||||
| if (unknown.isNotEmpty()) { | if (unknown.isNotEmpty()) { | ||||
| throw IllegalArgumentException("$label 有無法辨識的星期: ${unknown.joinToString(",")}") | |||||
| throw IllegalArgumentException(label + UiText.t(" 有無法辨識的星期: ", " has an unknown weekday: ") + (unknown.joinToString(","))) | |||||
| } | } | ||||
| return parseDays(tokens.joinToString(",")) | return parseDays(tokens.joinToString(",")) | ||||
| } | } | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.jobOrder.web | package com.ffii.fpsms.modules.jobOrder.web | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.fpsms.modules.jobOrder.service.LaserBag2AutoSendService | import com.ffii.fpsms.modules.jobOrder.service.LaserBag2AutoSendService | ||||
| import com.ffii.fpsms.modules.jobOrder.service.OnPackZipResult | import com.ffii.fpsms.modules.jobOrder.service.OnPackZipResult | ||||
| import com.ffii.fpsms.modules.jobOrder.service.PlasticBagPrinterService | import com.ffii.fpsms.modules.jobOrder.service.PlasticBagPrinterService | ||||
| @@ -72,7 +74,7 @@ class PlasticBagPrinterController( | |||||
| logger.error("print-laser-bag2 failed", e) | logger.error("print-laser-bag2 failed", e) | ||||
| LaserBag2SendResponse( | LaserBag2SendResponse( | ||||
| success = false, | success = false, | ||||
| message = "送出失敗:${e.message ?: e.javaClass.simpleName}", | |||||
| message = UiText.t("送出失敗:", "Send failed: ") + (e.message ?: e.javaClass.simpleName), | |||||
| ) | ) | ||||
| } | } | ||||
| return if (resp.success) { | return if (resp.success) { | ||||
| @@ -368,18 +370,18 @@ class PlasticBagPrinterController( | |||||
| ip = request.printerIp, | ip = request.printerIp, | ||||
| port = request.printerPort.toInt(), | port = request.printerPort.toInt(), | ||||
| textChannel3 = request.textChannel3 | textChannel3 = request.textChannel3 | ||||
| ?: throw IllegalArgumentException("缺少 textChannel3"), | |||||
| ?: throw IllegalArgumentException(UiText.t("缺少 textChannel3", "textChannel3 is missing")), | |||||
| textChannel4 = request.textChannel4 | textChannel4 = request.textChannel4 | ||||
| ?: throw IllegalArgumentException("缺少 textChannel4"), | |||||
| ?: throw IllegalArgumentException(UiText.t("缺少 textChannel4", "textChannel4 is missing")), | |||||
| text3ObjectName = request.text3ObjectName ?: "Text3", | text3ObjectName = request.text3ObjectName ?: "Text3", | ||||
| text4ObjectName = request.text4ObjectName ?: "Text4" | text4ObjectName = request.text4ObjectName ?: "Text4" | ||||
| ) | ) | ||||
| if (success) { | if (success) { | ||||
| ResponseEntity.ok("Han's Laser TCP: 更新文字並觸發打標成功") | |||||
| ResponseEntity.ok(UiText.t("Han's Laser TCP: 更新文字並觸發打標成功", "Han's Laser TCP: text updated and marking started")) | |||||
| } else { | } else { | ||||
| ResponseEntity.status(500) | ResponseEntity.status(500) | ||||
| .body("Han's Laser TCP: 部分或全部命令失敗,請檢查連接、物件名稱或 EZCAD TCP Server") | |||||
| .body(UiText.t("Han's Laser TCP: 部分或全部命令失敗,請檢查連接、物件名稱或 EZCAD TCP Server", "Han's Laser TCP: one or more commands failed. Check the connection, object name, or EZCAD TCP server.")) | |||||
| } | } | ||||
| } catch (e: Exception) { | } catch (e: Exception) { | ||||
| ResponseEntity.status(500).body("Laser TCP Error: ${e.message}") | ResponseEntity.status(500).body("Laser TCP Error: ${e.message}") | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.master.service | package com.ffii.fpsms.modules.master.service | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.fpsms.modules.master.entity.ItemDefaultShelfLife | import com.ffii.fpsms.modules.master.entity.ItemDefaultShelfLife | ||||
| import com.ffii.fpsms.modules.master.entity.ItemDefaultShelfLifeRepository | import com.ffii.fpsms.modules.master.entity.ItemDefaultShelfLifeRepository | ||||
| import com.ffii.fpsms.modules.master.entity.ItemsRepository | import com.ffii.fpsms.modules.master.entity.ItemsRepository | ||||
| @@ -71,7 +73,7 @@ open class ItemDefaultShelfLifeService( | |||||
| val row = repository.findByDeletedFalseAndItemCodeIgnoreCase(code) | val row = repository.findByDeletedFalseAndItemCodeIgnoreCase(code) | ||||
| ?: throw ResponseStatusException( | ?: throw ResponseStatusException( | ||||
| HttpStatus.BAD_REQUEST, | HttpStatus.BAD_REQUEST, | ||||
| "找不到 $code 的預設保質期。請先到設定 → 物品預設保質期新增。", | |||||
| UiText.t("找不到 ", "No default shelf life for ") + code + UiText.t(" 的預設保質期。請先到設定 → 物品預設保質期新增。", ". Add it under Settings, item default shelf life."), | |||||
| ) | ) | ||||
| row.useMinus18 = useMinus18 | row.useMinus18 = useMinus18 | ||||
| return toRow(repository.save(row)) | return toRow(repository.save(row)) | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.master.service | package com.ffii.fpsms.modules.master.service | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.core.response.RecordsRes | import com.ffii.core.response.RecordsRes | ||||
| import com.ffii.core.support.AbstractBaseEntityService | import com.ffii.core.support.AbstractBaseEntityService | ||||
| import com.ffii.core.support.JdbcDao | import com.ffii.core.support.JdbcDao | ||||
| @@ -483,9 +485,9 @@ open class ProductionScheduleService( | |||||
| return MessageResponse( | return MessageResponse( | ||||
| id = request.id.toLong(), | id = request.id.toLong(), | ||||
| message = if (jobOrderCount == 0) | message = if (jobOrderCount == 0) | ||||
| "沒有建立新工單(可能因為成品已有生產中的工單)." | |||||
| UiText.t("沒有建立新工單(可能因為成品已有生產中的工單).", "No job order was created. The finished good may already have a job order in production.") | |||||
| else | else | ||||
| "成功建立 $jobOrderCount 張工單!", | |||||
| UiText.t("成功建立 ", "Created ") + jobOrderCount + UiText.t(" 張工單!", " job orders."), | |||||
| name = "", | name = "", | ||||
| code = jobOrderCount.toString(), | code = jobOrderCount.toString(), | ||||
| type = "psJobOrders", | type = "psJobOrders", | ||||
| @@ -1494,8 +1496,8 @@ open class ProductionScheduleService( | |||||
| val sheet = workbook.createSheet(safeSheetName) | val sheet = workbook.createSheet(safeSheetName) | ||||
| val headers = listOf( | val headers = listOf( | ||||
| "物料編號", "物料名稱", "每日平均出貨量", "出貨前預計存貨量", "可用日", | |||||
| "每批數量", "生產量(批)", "優先度" | |||||
| UiText.t("物料編號", "Material code"), UiText.t("物料名稱", "Material name"), UiText.t("每日平均出貨量", "Avg daily shipments"), UiText.t("出貨前預計存貨量", "Expected stock before shipment"), UiText.t("可用日", "Days of cover"), | |||||
| UiText.t("每批數量", "Qty per batch"), UiText.t("生產量(批)", "Production (batches)"), UiText.t("優先度", "Priority") | |||||
| ) | ) | ||||
| // Header row | // Header row | ||||
| @@ -1559,13 +1561,13 @@ open class ProductionScheduleService( | |||||
| } | } | ||||
| // ── MATERIAL SUMMARY SHEET ── | // ── MATERIAL SUMMARY SHEET ── | ||||
| val matSheet = workbook.createSheet("物料用量總結") | |||||
| val matSheet = workbook.createSheet(UiText.t("物料用量總結", "Material usage summary")) | |||||
| val matHeaders = listOf( | val matHeaders = listOf( | ||||
| "物料編號", "物料名稱", "需求量", "總用量", | |||||
| "單位", "數量(採購單位)", "採購單位", | |||||
| "已採購數量", "庫存數", "庫存單位", | |||||
| "相關成品編號", "相關成品名稱" | |||||
| UiText.t("物料編號", "Material code"), UiText.t("物料名稱", "Material name"), UiText.t("需求量", "Required qty"), UiText.t("總用量", "Total usage"), | |||||
| UiText.t("單位", "UOM"), UiText.t("數量(採購單位)", "Qty (purchase UOM)"), UiText.t("採購單位", "Purchase UOM"), | |||||
| UiText.t("已採購數量", "Purchased qty"), UiText.t("庫存數", "On hand"), UiText.t("庫存單位", "Stock UOM"), | |||||
| UiText.t("相關成品編號", "Related finished-good code"), UiText.t("相關成品名稱", "Related finished-good name") | |||||
| ) | ) | ||||
| val matHeaderRow = matSheet.createRow(0) | val matHeaderRow = matSheet.createRow(0) | ||||
| @@ -1651,7 +1653,7 @@ open class ProductionScheduleService( | |||||
| matSheet.setMargin(Sheet.BottomMargin, 0.7) | matSheet.setMargin(Sheet.BottomMargin, 0.7) | ||||
| // ── DAILY MATERIAL NEEDS SHEET ── | // ── DAILY MATERIAL NEEDS SHEET ── | ||||
| val dailySheet = workbook.createSheet("每天物料用量") | |||||
| val dailySheet = workbook.createSheet(UiText.t("每天物料用量", "Daily material usage")) | |||||
| val dateFormatterDayMonth = DateTimeFormatter.ofPattern("d MMM", Locale.ENGLISH) | val dateFormatterDayMonth = DateTimeFormatter.ofPattern("d MMM", Locale.ENGLISH) | ||||
| val dateFormatterDayName = DateTimeFormatter.ofPattern("EEEE", Locale.ENGLISH) | val dateFormatterDayName = DateTimeFormatter.ofPattern("EEEE", Locale.ENGLISH) | ||||
| @@ -1666,7 +1668,7 @@ open class ProductionScheduleService( | |||||
| val headerRow1 = dailySheet.createRow(0) | val headerRow1 = dailySheet.createRow(0) | ||||
| val headerRow2 = dailySheet.createRow(1) | val headerRow2 = dailySheet.createRow(1) | ||||
| val baseHeaders = listOf("物料編號", "物料名稱", "採購單位") | |||||
| val baseHeaders = listOf(UiText.t("物料編號", "Material code"), UiText.t("物料名稱", "Material name"), UiText.t("採購單位", "Purchase UOM")) | |||||
| baseHeaders.forEachIndexed { i, title -> | baseHeaders.forEachIndexed { i, title -> | ||||
| headerRow1.createCell(i).apply { setCellValue(title); cellStyle = headerStyle } | headerRow1.createCell(i).apply { setCellValue(title); cellStyle = headerStyle } | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.monitoring.service | package com.ffii.fpsms.modules.monitoring.service | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.core.support.JdbcDao | import com.ffii.core.support.JdbcDao | ||||
| import com.ffii.fpsms.modules.master.entity.Printer | import com.ffii.fpsms.modules.master.entity.Printer | ||||
| import com.ffii.fpsms.modules.master.entity.PrinterRepository | import com.ffii.fpsms.modules.master.entity.PrinterRepository | ||||
| @@ -395,7 +397,7 @@ open class LabelPrinterMonitorService( | |||||
| private fun probeTcp(ip: String, port: Int): ProbeResult { | private fun probeTcp(ip: String, port: Int): ProbeResult { | ||||
| if (ip.isBlank()) { | if (ip.isBlank()) { | ||||
| return ProbeResult(reachable = false, latencyMs = null, errorMessage = "未設定 IP") | |||||
| return ProbeResult(reachable = false, latencyMs = null, errorMessage = UiText.t("未設定 IP", "IP address is not set")) | |||||
| } | } | ||||
| val start = System.currentTimeMillis() | val start = System.currentTimeMillis() | ||||
| return try { | return try { | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.monitoring.service | package com.ffii.fpsms.modules.monitoring.service | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.core.support.JdbcDao | import com.ffii.core.support.JdbcDao | ||||
| import com.ffii.fpsms.modules.master.entity.Printer | import com.ffii.fpsms.modules.master.entity.Printer | ||||
| import com.ffii.fpsms.modules.master.entity.PrinterRepository | import com.ffii.fpsms.modules.master.entity.PrinterRepository | ||||
| @@ -208,7 +210,7 @@ open class PrinterMonitorService( | |||||
| status = "unconfigured", | status = "unconfigured", | ||||
| reachable = null, | reachable = null, | ||||
| latencyMs = null, | latencyMs = null, | ||||
| errorMessage = "未設定 IP", | |||||
| errorMessage = UiText.t("未設定 IP", "IP address is not set"), | |||||
| ) | ) | ||||
| } | } | ||||
| val port = printer.port ?: defaultPort | val port = printer.port ?: defaultPort | ||||
| @@ -1,5 +1,6 @@ | |||||
| package com.ffii.fpsms.modules.pickOrder.service | package com.ffii.fpsms.modules.pickOrder.service | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.fpsms.modules.pickOrder.entity.* | import com.ffii.fpsms.modules.pickOrder.entity.* | ||||
| import com.ffii.fpsms.modules.pickOrder.support.isOptimisticLockFailure | import com.ffii.fpsms.modules.pickOrder.support.isOptimisticLockFailure | ||||
| import com.ffii.fpsms.modules.pickOrder.web.models.CreateTruckLaneSnapshotRequest | import com.ffii.fpsms.modules.pickOrder.web.models.CreateTruckLaneSnapshotRequest | ||||
| @@ -75,7 +76,7 @@ open class TruckLaneScheduleApplier( | |||||
| truckLaneVersionService.createSnapshot( | truckLaneVersionService.createSnapshot( | ||||
| CreateTruckLaneSnapshotRequest( | CreateTruckLaneSnapshotRequest( | ||||
| truckLanceCode = null, | truckLanceCode = null, | ||||
| note = "排程 #${schedule.id} 套用前快照 ${schedule.executeAt}", | |||||
| note = UiText.t("排程 #", "Schedule #") + (schedule.id) + UiText.t(" 套用前快照 ", " pre-apply snapshot ") + (schedule.executeAt), | |||||
| createdBy = schedule.createdBy, | createdBy = schedule.createdBy, | ||||
| ), | ), | ||||
| ) | ) | ||||
| @@ -99,11 +100,11 @@ open class TruckLaneScheduleApplier( | |||||
| truckLaneVersionService.createSnapshot( | truckLaneVersionService.createSnapshot( | ||||
| CreateTruckLaneSnapshotRequest( | CreateTruckLaneSnapshotRequest( | ||||
| truckLanceCode = null, | truckLanceCode = null, | ||||
| note = "排程 #${schedule.id} 套用 (${ | |||||
| note = UiText.t("排程 #", "Schedule #") + (schedule.id) + UiText.t(" 套用 (", " applied (") + ( | |||||
| lines.count { | lines.count { | ||||
| it.lineStatus == TruckLaneScheduleLineStatus.APPLIED | it.lineStatus == TruckLaneScheduleLineStatus.APPLIED | ||||
| } | } | ||||
| } 列) ${schedule.executeAt}", | |||||
| ) + UiText.t(" 列) ", " rows) ") + (schedule.executeAt), | |||||
| createdBy = schedule.createdBy, | createdBy = schedule.createdBy, | ||||
| ), | ), | ||||
| ) | ) | ||||
| @@ -262,7 +263,7 @@ open class TruckLaneScheduleApplier( | |||||
| val restoreSuffix = | val restoreSuffix = | ||||
| if (preApplySnapshotId != null) { | if (preApplySnapshotId != null) { | ||||
| ";已還原 snapshot #$preApplySnapshotId${restoreNote?.let { " ($it)" } ?: ""}" | |||||
| UiText.t(";已還原 snapshot #", "; restored snapshot #") + preApplySnapshotId + (restoreNote?.let { " ($it)" } ?: "") | |||||
| } else { | } else { | ||||
| "" | "" | ||||
| } | } | ||||
| @@ -310,7 +311,7 @@ open class TruckLaneScheduleApplier( | |||||
| private fun applyEnsureLane(line: TruckLaneScheduleLine): String? { | private fun applyEnsureLane(line: TruckLaneScheduleLine): String? { | ||||
| val toKey = truckService.toBucketKey(line) | val toKey = truckService.toBucketKey(line) | ||||
| if (truckService.trucksInLaneBucket(toKey).isNotEmpty()) { | if (truckService.trucksInLaneBucket(toKey).isNotEmpty()) { | ||||
| return "車線已存在,跳過建立" | |||||
| return UiText.t("車線已存在,跳過建立", "Truck lane already exists. Creation was skipped.") | |||||
| } | } | ||||
| ensureTargetLaneIfEmpty(line, fallbackDeparture = null) | ensureTargetLaneIfEmpty(line, fallbackDeparture = null) | ||||
| return null | return null | ||||
| @@ -330,7 +331,7 @@ open class TruckLaneScheduleApplier( | |||||
| line.departureTime | line.departureTime | ||||
| ?: fallbackDeparture | ?: fallbackDeparture | ||||
| ?: throw IllegalArgumentException( | ?: throw IllegalArgumentException( | ||||
| "目標車線 ${toKey.truckLanceCode} 不存在或尚無任何列,且排程未提供 departureTime", | |||||
| UiText.t("目標車線 ", "Target truck lane ") + (toKey.truckLanceCode) + UiText.t(" 不存在或尚無任何列,且排程未提供 departureTime", " does not exist or has no rows, and the schedule has no departure time"), | |||||
| ) | ) | ||||
| truckService.createTruckWithoutShop( | truckService.createTruckWithoutShop( | ||||
| CreateTruckWithoutShopRequest( | CreateTruckWithoutShopRequest( | ||||
| @@ -343,15 +344,15 @@ open class TruckLaneScheduleApplier( | |||||
| logisticId = line.logisticId, | logisticId = line.logisticId, | ||||
| ), | ), | ||||
| ) | ) | ||||
| return "已自動建立空白車線 ${toKey.truckLanceCode}" | |||||
| return UiText.t("已自動建立空白車線 ", "Created a blank truck lane ") + (toKey.truckLanceCode) | |||||
| } | } | ||||
| private fun applyCreate( | private fun applyCreate( | ||||
| line: TruckLaneScheduleLine, | line: TruckLaneScheduleLine, | ||||
| createdTruckRowIds: MutableList<Long>, | createdTruckRowIds: MutableList<Long>, | ||||
| ): String? { | ): String? { | ||||
| val shopId = line.shopId ?: throw IllegalArgumentException("缺少 shopId") | |||||
| val departure = line.departureTime ?: throw IllegalArgumentException("缺少 departureTime") | |||||
| val shopId = line.shopId ?: throw IllegalArgumentException(UiText.t("缺少 shopId", "shopId is required")) | |||||
| val departure = line.departureTime ?: throw IllegalArgumentException(UiText.t("缺少 departureTime", "A departure time is required")) | |||||
| val toKey = truckService.toBucketKey(line) | val toKey = truckService.toBucketKey(line) | ||||
| val seq = line.toLoadingSequence ?: 0 | val seq = line.toLoadingSequence ?: 0 | ||||
| val saved = | val saved = | ||||
| @@ -370,22 +371,22 @@ open class TruckLaneScheduleApplier( | |||||
| logisticId = line.logisticId, | logisticId = line.logisticId, | ||||
| ), | ), | ||||
| ) | ) | ||||
| val rowId = saved.id ?: throw IllegalStateException("CREATE 未取得 truck id") | |||||
| val rowId = saved.id ?: throw IllegalStateException(UiText.t("CREATE 未取得 truck id", "CREATE did not return a truck id")) | |||||
| line.truckRowId = rowId | line.truckRowId = rowId | ||||
| createdTruckRowIds.add(rowId) | createdTruckRowIds.add(rowId) | ||||
| return null | return null | ||||
| } | } | ||||
| private fun applyMove(line: TruckLaneScheduleLine): String? { | private fun applyMove(line: TruckLaneScheduleLine): String? { | ||||
| val truckRowId = line.truckRowId ?: throw IllegalArgumentException("缺少 truckRowId") | |||||
| val truckRowId = line.truckRowId ?: throw IllegalArgumentException(UiText.t("缺少 truckRowId", "truckRowId is required")) | |||||
| var truck = | var truck = | ||||
| truckService.findTruckRowByIdIncludingDeleted(truckRowId) | truckService.findTruckRowByIdIncludingDeleted(truckRowId) | ||||
| ?: throw IllegalArgumentException("找不到 truck #$truckRowId") | |||||
| ?: throw IllegalArgumentException(UiText.t("找不到 truck #", "Truck not found: #") + truckRowId) | |||||
| val notes = mutableListOf<String>() | val notes = mutableListOf<String>() | ||||
| if (truck.deleted == true) { | if (truck.deleted == true) { | ||||
| truck = truckService.restoreTruckRowIfDeleted(truck) | truck = truckService.restoreTruckRowIfDeleted(truck) | ||||
| notes.add("店鋪列已從刪除狀態還原") | |||||
| notes.add(UiText.t("店鋪列已從刪除狀態還原", "Restored the shop row")) | |||||
| } | } | ||||
| val current = truckService.truckLaneBucketKeyOf(truck) | val current = truckService.truckLaneBucketKeyOf(truck) | ||||
| @@ -396,7 +397,7 @@ open class TruckLaneScheduleApplier( | |||||
| current.storeId != fromStore || | current.storeId != fromStore || | ||||
| (current.remark ?: "") != (fromRemark ?: "") | (current.remark ?: "") != (fromRemark ?: "") | ||||
| ) { | ) { | ||||
| notes.add("店鋪列已不在排程建立時的來源車線,仍依 truck.id 移至目標") | |||||
| notes.add(UiText.t("店鋪列已不在排程建立時的來源車線,仍依 truck.id 移至目標", "The shop row was no longer on the source lane. It was still moved by truck id.")) | |||||
| logger.info( | logger.info( | ||||
| "Schedule line {} truck {} moved from {} to target (was scheduled from {} {})", | "Schedule line {} truck {} moved from {} to target (was scheduled from {} {})", | ||||
| line.id, | line.id, | ||||
| @@ -408,7 +409,7 @@ open class TruckLaneScheduleApplier( | |||||
| } | } | ||||
| val toKey = truckService.toBucketKey(line) | val toKey = truckService.toBucketKey(line) | ||||
| val seq = line.toLoadingSequence ?: throw IllegalArgumentException("缺少 toLoadingSequence") | |||||
| val seq = line.toLoadingSequence ?: throw IllegalArgumentException(UiText.t("缺少 toLoadingSequence", "A loading sequence is required")) | |||||
| ensureTargetLaneIfEmpty(line, fallbackDeparture = truck.departureTime)?.let { notes.add(it) } | ensureTargetLaneIfEmpty(line, fallbackDeparture = truck.departureTime)?.let { notes.add(it) } | ||||
| truckService.applyScheduledTruckMove( | truckService.applyScheduledTruckMove( | ||||
| truckRowId, | truckRowId, | ||||
| @@ -421,7 +422,7 @@ open class TruckLaneScheduleApplier( | |||||
| } | } | ||||
| private fun applyDelete(line: TruckLaneScheduleLine): String? { | private fun applyDelete(line: TruckLaneScheduleLine): String? { | ||||
| val truckRowId = line.truckRowId ?: throw IllegalArgumentException("缺少 truckRowId") | |||||
| val truckRowId = line.truckRowId ?: throw IllegalArgumentException(UiText.t("缺少 truckRowId", "truckRowId is required")) | |||||
| truckService.deleteById(truckRowId) | truckService.deleteById(truckRowId) | ||||
| return null | return null | ||||
| } | } | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.pickOrder.service | package com.ffii.fpsms.modules.pickOrder.service | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.fpsms.modules.common.demo.DemoFloors | import com.ffii.fpsms.modules.common.demo.DemoFloors | ||||
| import com.ffii.fpsms.modules.pickOrder.entity.Truck | import com.ffii.fpsms.modules.pickOrder.entity.Truck | ||||
| import com.ffii.fpsms.modules.pickOrder.entity.TruckRepository | import com.ffii.fpsms.modules.pickOrder.entity.TruckRepository | ||||
| @@ -37,16 +39,16 @@ class TruckLaneScheduleExcelSupport( | |||||
| ): Pair<List<TruckLaneScheduleExcelPreviewRow>, List<TruckLaneScheduleExcelRowError>> { | ): Pair<List<TruckLaneScheduleExcelPreviewRow>, List<TruckLaneScheduleExcelRowError>> { | ||||
| if (workbook == null || workbook.numberOfSheets == 0) { | if (workbook == null || workbook.numberOfSheets == 0) { | ||||
| return emptyList<TruckLaneScheduleExcelPreviewRow>() to | return emptyList<TruckLaneScheduleExcelPreviewRow>() to | ||||
| listOf(TruckLaneScheduleExcelRowError(0, "Excel 無工作表")) | |||||
| listOf(TruckLaneScheduleExcelRowError(0, UiText.t("Excel 無工作表", "The workbook has no sheets"))) | |||||
| } | } | ||||
| val sheet = workbook.getSheetAt(0) | val sheet = workbook.getSheetAt(0) | ||||
| if (sheet.physicalNumberOfRows < 2) { | if (sheet.physicalNumberOfRows < 2) { | ||||
| return emptyList<TruckLaneScheduleExcelPreviewRow>() to | return emptyList<TruckLaneScheduleExcelPreviewRow>() to | ||||
| listOf(TruckLaneScheduleExcelRowError(0, "至少需要標題列與一筆資料")) | |||||
| listOf(TruckLaneScheduleExcelRowError(0, UiText.t("至少需要標題列與一筆資料", "A header row and one data row are required"))) | |||||
| } | } | ||||
| val headerRow = sheet.getRow(sheet.firstRowNum) ?: return emptyList<TruckLaneScheduleExcelPreviewRow>() to | val headerRow = sheet.getRow(sheet.firstRowNum) ?: return emptyList<TruckLaneScheduleExcelPreviewRow>() to | ||||
| listOf(TruckLaneScheduleExcelRowError(0, "缺少標題列")) | |||||
| listOf(TruckLaneScheduleExcelRowError(0, UiText.t("缺少標題列", "The header row is missing"))) | |||||
| val colIndex = mutableMapOf<String, Int>() | val colIndex = mutableMapOf<String, Int>() | ||||
| for (c in 0 until headerRow.lastCellNum) { | for (c in 0 until headerRow.lastCellNum) { | ||||
| @@ -64,7 +66,7 @@ class TruckLaneScheduleExcelSupport( | |||||
| return emptyList<TruckLaneScheduleExcelPreviewRow>() to listOf( | return emptyList<TruckLaneScheduleExcelPreviewRow>() to listOf( | ||||
| TruckLaneScheduleExcelRowError( | TruckLaneScheduleExcelRowError( | ||||
| 0, | 0, | ||||
| "缺少必要欄位:ShopID/ShopCode 與 TargetLane", | |||||
| UiText.t("缺少必要欄位:ShopID/ShopCode 與 TargetLane", "Required columns are missing: ShopID/ShopCode and TargetLane"), | |||||
| ), | ), | ||||
| ) | ) | ||||
| } | } | ||||
| @@ -93,17 +95,17 @@ class TruckLaneScheduleExcelSupport( | |||||
| ) | ) | ||||
| if (shopRaw.isBlank()) { | if (shopRaw.isBlank()) { | ||||
| errors.add(TruckLaneScheduleExcelRowError(rowIndex, "ShopID/ShopCode 不可為空")) | |||||
| errors.add(TruckLaneScheduleExcelRowError(rowIndex, UiText.t("ShopID/ShopCode 不可為空", "ShopID/ShopCode cannot be empty"))) | |||||
| continue | continue | ||||
| } | } | ||||
| if (laneRaw.isBlank()) { | if (laneRaw.isBlank()) { | ||||
| errors.add(TruckLaneScheduleExcelRowError(rowIndex, "TargetLane 不可為空")) | |||||
| errors.add(TruckLaneScheduleExcelRowError(rowIndex, UiText.t("TargetLane 不可為空", "TargetLane cannot be empty"))) | |||||
| continue | continue | ||||
| } | } | ||||
| val truck = resolveTruckByShopCode(shopRaw.trim()) | val truck = resolveTruckByShopCode(shopRaw.trim()) | ||||
| if (truck == null) { | if (truck == null) { | ||||
| errors.add(TruckLaneScheduleExcelRowError(rowIndex, "找不到店鋪:$shopRaw")) | |||||
| errors.add(TruckLaneScheduleExcelRowError(rowIndex, UiText.t("找不到店鋪:", "Shop not found: ") + shopRaw)) | |||||
| continue | continue | ||||
| } | } | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.pickOrder.service | package com.ffii.fpsms.modules.pickOrder.service | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.fpsms.modules.pickOrder.entity.* | import com.ffii.fpsms.modules.pickOrder.entity.* | ||||
| import com.ffii.fpsms.modules.pickOrder.web.models.* | import com.ffii.fpsms.modules.pickOrder.web.models.* | ||||
| import org.springframework.transaction.annotation.Transactional | import org.springframework.transaction.annotation.Transactional | ||||
| @@ -25,7 +27,7 @@ open class TruckLaneScheduleService( | |||||
| validateExecuteAt(request.executeAt) | validateExecuteAt(request.executeAt) | ||||
| val requestLines = resolveRequestLines(request) | val requestLines = resolveRequestLines(request) | ||||
| if (requestLines.isEmpty()) { | if (requestLines.isEmpty()) { | ||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, "lines 不可為空") | |||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, UiText.t("lines 不可為空", "Lines cannot be empty")) | |||||
| } | } | ||||
| val blocking = schedulePlanValidator.validatePlanLines(requestLines) | val blocking = schedulePlanValidator.validatePlanLines(requestLines) | ||||
| if (blocking.isNotEmpty()) { | if (blocking.isNotEmpty()) { | ||||
| @@ -72,7 +74,7 @@ open class TruckLaneScheduleService( | |||||
| note: String?, | note: String?, | ||||
| ): List<TruckLaneScheduleResponse> { | ): List<TruckLaneScheduleResponse> { | ||||
| if (rows.isEmpty()) { | if (rows.isEmpty()) { | ||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, "無有效資料列") | |||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, UiText.t("無有效資料列", "No valid data rows")) | |||||
| } | } | ||||
| val grouped = rows.groupBy { it.executeAt ?: defaultExecuteAt } | val grouped = rows.groupBy { it.executeAt ?: defaultExecuteAt } | ||||
| return grouped.map { (executeAt, group) -> | return grouped.map { (executeAt, group) -> | ||||
| @@ -135,7 +137,7 @@ open class TruckLaneScheduleService( | |||||
| open fun getById(id: Long): TruckLaneScheduleResponse { | open fun getById(id: Long): TruckLaneScheduleResponse { | ||||
| val s = scheduleRepository.findByIdAndDeletedFalse(id) | val s = scheduleRepository.findByIdAndDeletedFalse(id) | ||||
| ?: throw ResponseStatusException(HttpStatus.NOT_FOUND, "排程不存在") | |||||
| ?: throw ResponseStatusException(HttpStatus.NOT_FOUND, UiText.t("排程不存在", "Schedule not found")) | |||||
| return toResponse(s, includeLines = true) | return toResponse(s, includeLines = true) | ||||
| } | } | ||||
| @@ -158,9 +160,9 @@ open class TruckLaneScheduleService( | |||||
| @Transactional | @Transactional | ||||
| open fun cancel(id: Long): TruckLaneScheduleResponse { | open fun cancel(id: Long): TruckLaneScheduleResponse { | ||||
| val s = scheduleRepository.findByIdAndDeletedFalse(id) | val s = scheduleRepository.findByIdAndDeletedFalse(id) | ||||
| ?: throw ResponseStatusException(HttpStatus.NOT_FOUND, "排程不存在") | |||||
| ?: throw ResponseStatusException(HttpStatus.NOT_FOUND, UiText.t("排程不存在", "Schedule not found")) | |||||
| if (s.status != TruckLaneScheduleStatus.PENDING) { | if (s.status != TruckLaneScheduleStatus.PENDING) { | ||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, "僅 PENDING 可取消") | |||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, UiText.t("僅 PENDING 可取消", "Only a pending schedule can be cancelled")) | |||||
| } | } | ||||
| s.status = TruckLaneScheduleStatus.CANCELLED | s.status = TruckLaneScheduleStatus.CANCELLED | ||||
| val lineList = scheduleLineRepository.findAllBySchedule_IdAndDeletedFalseOrderByIdAsc(s.id ?: 0L) | val lineList = scheduleLineRepository.findAllBySchedule_IdAndDeletedFalseOrderByIdAsc(s.id ?: 0L) | ||||
| @@ -172,16 +174,16 @@ open class TruckLaneScheduleService( | |||||
| open fun applyNow(id: Long): TruckLaneScheduleResponse { | open fun applyNow(id: Long): TruckLaneScheduleResponse { | ||||
| return when (scheduleApplier.applyOne(id)) { | return when (scheduleApplier.applyOne(id)) { | ||||
| ScheduleApplyOutcome.NOT_FOUND -> | ScheduleApplyOutcome.NOT_FOUND -> | ||||
| throw ResponseStatusException(HttpStatus.NOT_FOUND, "排程不存在") | |||||
| throw ResponseStatusException(HttpStatus.NOT_FOUND, UiText.t("排程不存在", "Schedule not found")) | |||||
| ScheduleApplyOutcome.SKIPPED -> { | ScheduleApplyOutcome.SKIPPED -> { | ||||
| val current = scheduleRepository.findByIdAndDeletedFalse(id) | val current = scheduleRepository.findByIdAndDeletedFalse(id) | ||||
| val msg = | val msg = | ||||
| when (current?.status) { | when (current?.status) { | ||||
| TruckLaneScheduleStatus.APPLYING -> | TruckLaneScheduleStatus.APPLYING -> | ||||
| "排程正在執行中,請稍後再試" | |||||
| UiText.t("排程正在執行中,請稍後再試", "The schedule is running. Try again shortly.") | |||||
| TruckLaneScheduleStatus.PENDING -> | TruckLaneScheduleStatus.PENDING -> | ||||
| "無法認領排程(可能已被其他程序處理)" | |||||
| else -> "僅 PENDING 可立即執行" | |||||
| UiText.t("無法認領排程(可能已被其他程序處理)", "Could not claim the schedule. Another process may have taken it.") | |||||
| else -> UiText.t("僅 PENDING 可立即執行", "Only a pending schedule can be run now") | |||||
| } | } | ||||
| throw ResponseStatusException(HttpStatus.CONFLICT, msg) | throw ResponseStatusException(HttpStatus.CONFLICT, msg) | ||||
| } | } | ||||
| @@ -197,15 +199,15 @@ open class TruckLaneScheduleService( | |||||
| executeAt: LocalDateTime?, | executeAt: LocalDateTime?, | ||||
| ): TruckLaneScheduleResponse { | ): TruckLaneScheduleResponse { | ||||
| val s = scheduleRepository.findByIdAndDeletedFalse(id) | val s = scheduleRepository.findByIdAndDeletedFalse(id) | ||||
| ?: throw ResponseStatusException(HttpStatus.NOT_FOUND, "排程不存在") | |||||
| ?: throw ResponseStatusException(HttpStatus.NOT_FOUND, UiText.t("排程不存在", "Schedule not found")) | |||||
| if (s.status == TruckLaneScheduleStatus.PARTIAL) { | if (s.status == TruckLaneScheduleStatus.PARTIAL) { | ||||
| throw ResponseStatusException( | throw ResponseStatusException( | ||||
| HttpStatus.BAD_REQUEST, | HttpStatus.BAD_REQUEST, | ||||
| "PARTIAL 排程不可重試,請先還原看板後重新建立排程", | |||||
| UiText.t("PARTIAL 排程不可重試,請先還原看板後重新建立排程", "A partial schedule cannot be retried. Restore the board, then create a new schedule."), | |||||
| ) | ) | ||||
| } | } | ||||
| if (s.status != TruckLaneScheduleStatus.FAILED) { | if (s.status != TruckLaneScheduleStatus.FAILED) { | ||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, "僅 FAILED 可重試失敗列") | |||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, UiText.t("僅 FAILED 可重試失敗列", "Only a failed schedule can retry failed rows")) | |||||
| } | } | ||||
| val lines = | val lines = | ||||
| scheduleLineRepository.findAllBySchedule_IdAndDeletedFalseOrderByIdAsc(s.id ?: 0L) | scheduleLineRepository.findAllBySchedule_IdAndDeletedFalseOrderByIdAsc(s.id ?: 0L) | ||||
| @@ -215,14 +217,14 @@ open class TruckLaneScheduleService( | |||||
| it.lineStatus == TruckLaneScheduleLineStatus.PENDING | it.lineStatus == TruckLaneScheduleLineStatus.PENDING | ||||
| } | } | ||||
| if (retryLines.isEmpty()) { | if (retryLines.isEmpty()) { | ||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, "無可重試的失敗列") | |||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, UiText.t("無可重試的失敗列", "There are no failed rows to retry")) | |||||
| } | } | ||||
| val whenAt = executeAt ?: LocalDateTime.now().plusMinutes(1) | val whenAt = executeAt ?: LocalDateTime.now().plusMinutes(1) | ||||
| validateExecuteAt(whenAt) | validateExecuteAt(whenAt) | ||||
| val requestLines = | val requestLines = | ||||
| retryLines.mapNotNull { line -> lineToRequest(line) } | retryLines.mapNotNull { line -> lineToRequest(line) } | ||||
| if (requestLines.isEmpty()) { | if (requestLines.isEmpty()) { | ||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, "無可重試的失敗列") | |||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, UiText.t("無可重試的失敗列", "There are no failed rows to retry")) | |||||
| } | } | ||||
| val created = createManual( | val created = createManual( | ||||
| CreateTruckLaneScheduleRequest( | CreateTruckLaneScheduleRequest( | ||||
| @@ -234,7 +236,7 @@ open class TruckLaneScheduleService( | |||||
| // 重試排程已接手追蹤,原 FAILED 單標為 IGNORED 以免失敗徽章長亮。 | // 重試排程已接手追蹤,原 FAILED 單標為 IGNORED 以免失敗徽章長亮。 | ||||
| s.status = TruckLaneScheduleStatus.IGNORED | s.status = TruckLaneScheduleStatus.IGNORED | ||||
| s.errorMessage = | s.errorMessage = | ||||
| ((s.errorMessage?.let { "$it;" } ?: "") + "已由重試排程 #${created.id} 取代").take(2000) | |||||
| ((s.errorMessage?.let { "$it;" } ?: "") + UiText.t("已由重試排程 #", "Replaced by retry schedule #") + (created.id) + UiText.t(" 取代", "")).take(2000) | |||||
| scheduleRepository.save(s) | scheduleRepository.save(s) | ||||
| return created | return created | ||||
| } | } | ||||
| @@ -245,22 +247,22 @@ open class TruckLaneScheduleService( | |||||
| executeAt: LocalDateTime?, | executeAt: LocalDateTime?, | ||||
| ): TruckLaneScheduleResponse { | ): TruckLaneScheduleResponse { | ||||
| val s = scheduleRepository.findByIdAndDeletedFalse(id) | val s = scheduleRepository.findByIdAndDeletedFalse(id) | ||||
| ?: throw ResponseStatusException(HttpStatus.NOT_FOUND, "排程不存在") | |||||
| ?: throw ResponseStatusException(HttpStatus.NOT_FOUND, UiText.t("排程不存在", "Schedule not found")) | |||||
| if (s.status != TruckLaneScheduleStatus.CANCELLED) { | if (s.status != TruckLaneScheduleStatus.CANCELLED) { | ||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, "僅 CANCELLED 可重新排程") | |||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, UiText.t("僅 CANCELLED 可重新排程", "Only a cancelled schedule can be rescheduled")) | |||||
| } | } | ||||
| val lines = | val lines = | ||||
| scheduleLineRepository.findAllBySchedule_IdAndDeletedFalseOrderByIdAsc(s.id ?: 0L) | scheduleLineRepository.findAllBySchedule_IdAndDeletedFalseOrderByIdAsc(s.id ?: 0L) | ||||
| val reactivatable = | val reactivatable = | ||||
| lines.filter { it.lineStatus == TruckLaneScheduleLineStatus.SKIPPED } | lines.filter { it.lineStatus == TruckLaneScheduleLineStatus.SKIPPED } | ||||
| if (reactivatable.isEmpty()) { | if (reactivatable.isEmpty()) { | ||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, "無可重新排程的明細") | |||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, UiText.t("無可重新排程的明細", "There are no rows to reschedule")) | |||||
| } | } | ||||
| val whenAt = executeAt ?: LocalDateTime.now().plusMinutes(1) | val whenAt = executeAt ?: LocalDateTime.now().plusMinutes(1) | ||||
| validateExecuteAt(whenAt) | validateExecuteAt(whenAt) | ||||
| val requestLines = reactivatable.mapNotNull { line -> lineToRequest(line) } | val requestLines = reactivatable.mapNotNull { line -> lineToRequest(line) } | ||||
| if (requestLines.isEmpty()) { | if (requestLines.isEmpty()) { | ||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, "無可重新排程的明細") | |||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, UiText.t("無可重新排程的明細", "There are no rows to reschedule")) | |||||
| } | } | ||||
| val blocking = schedulePlanValidator.validatePlanLines(requestLines) | val blocking = schedulePlanValidator.validatePlanLines(requestLines) | ||||
| if (blocking.isNotEmpty()) { | if (blocking.isNotEmpty()) { | ||||
| @@ -285,12 +287,12 @@ open class TruckLaneScheduleService( | |||||
| @Transactional | @Transactional | ||||
| open fun ignore(id: Long): TruckLaneScheduleResponse { | open fun ignore(id: Long): TruckLaneScheduleResponse { | ||||
| val s = scheduleRepository.findByIdAndDeletedFalse(id) | val s = scheduleRepository.findByIdAndDeletedFalse(id) | ||||
| ?: throw ResponseStatusException(HttpStatus.NOT_FOUND, "排程不存在") | |||||
| ?: throw ResponseStatusException(HttpStatus.NOT_FOUND, UiText.t("排程不存在", "Schedule not found")) | |||||
| if (s.status == TruckLaneScheduleStatus.IGNORED) { | if (s.status == TruckLaneScheduleStatus.IGNORED) { | ||||
| return toResponse(s, includeLines = true) | return toResponse(s, includeLines = true) | ||||
| } | } | ||||
| if (s.status == TruckLaneScheduleStatus.CANCELLED) { | if (s.status == TruckLaneScheduleStatus.CANCELLED) { | ||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, "已取消的排程無法忽略") | |||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, UiText.t("已取消的排程無法忽略", "A cancelled schedule cannot be ignored")) | |||||
| } | } | ||||
| val lines = | val lines = | ||||
| scheduleLineRepository.findAllBySchedule_IdAndDeletedFalseOrderByIdAsc(s.id ?: 0L) | scheduleLineRepository.findAllBySchedule_IdAndDeletedFalseOrderByIdAsc(s.id ?: 0L) | ||||
| @@ -301,7 +303,7 @@ open class TruckLaneScheduleService( | |||||
| s.status == TruckLaneScheduleStatus.PARTIAL || | s.status == TruckLaneScheduleStatus.PARTIAL || | ||||
| failedLineCount > 0 | failedLineCount > 0 | ||||
| if (!canIgnore) { | if (!canIgnore) { | ||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, "僅含失敗明細的排程可忽略") | |||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, UiText.t("僅含失敗明細的排程可忽略", "Only a schedule with failed rows can be ignored")) | |||||
| } | } | ||||
| s.status = TruckLaneScheduleStatus.IGNORED | s.status = TruckLaneScheduleStatus.IGNORED | ||||
| return toResponse(scheduleRepository.save(s), includeLines = true) | return toResponse(scheduleRepository.save(s), includeLines = true) | ||||
| @@ -334,7 +336,7 @@ open class TruckLaneScheduleService( | |||||
| for (schedule in stale) { | for (schedule in stale) { | ||||
| schedule.status = TruckLaneScheduleStatus.FAILED | schedule.status = TruckLaneScheduleStatus.FAILED | ||||
| schedule.errorMessage = | schedule.errorMessage = | ||||
| "排程執行逾時(>${staleMinutes} 分鐘仍為 APPLYING),請依 runbook 手動還原".take(2000) | |||||
| UiText.t("排程執行逾時(>", "Schedule timed out (still applying after ") + (staleMinutes) + UiText.t(" 分鐘仍為 APPLYING),請依 runbook 手動還原", " minutes). Restore it manually using the runbook.").take(2000) | |||||
| scheduleRepository.save(schedule) | scheduleRepository.save(schedule) | ||||
| } | } | ||||
| } | } | ||||
| @@ -381,11 +383,11 @@ open class TruckLaneScheduleService( | |||||
| if (bucket.isNotEmpty()) { | if (bucket.isNotEmpty()) { | ||||
| throw ResponseStatusException( | throw ResponseStatusException( | ||||
| HttpStatus.BAD_REQUEST, | HttpStatus.BAD_REQUEST, | ||||
| "車線 ${toKey.truckLanceCode} 已存在,無需 ENSURE_LANE", | |||||
| UiText.t("車線 ", "Truck lane ") + (toKey.truckLanceCode) + UiText.t(" 已存在,無需 ENSURE_LANE", " already exists. ENSURE_LANE is not needed."), | |||||
| ) | ) | ||||
| } | } | ||||
| val departure = req.departureTime | val departure = req.departureTime | ||||
| ?: throw ResponseStatusException(HttpStatus.BAD_REQUEST, "ENSURE_LANE 缺少 departureTime") | |||||
| ?: throw ResponseStatusException(HttpStatus.BAD_REQUEST, UiText.t("ENSURE_LANE 缺少 departureTime", "ENSURE_LANE is missing a departure time")) | |||||
| TruckLaneScheduleLine().apply { | TruckLaneScheduleLine().apply { | ||||
| lineAction = TruckLaneScheduleLineAction.ENSURE_LANE | lineAction = TruckLaneScheduleLineAction.ENSURE_LANE | ||||
| toTruckLanceCode = toKey.truckLanceCode | toTruckLanceCode = toKey.truckLanceCode | ||||
| @@ -400,14 +402,14 @@ open class TruckLaneScheduleService( | |||||
| TruckLaneScheduleLineAction.CREATE -> { | TruckLaneScheduleLineAction.CREATE -> { | ||||
| val shopId = req.shopId | val shopId = req.shopId | ||||
| ?: throw ResponseStatusException(HttpStatus.BAD_REQUEST, "CREATE 缺少 shopId") | |||||
| ?: throw ResponseStatusException(HttpStatus.BAD_REQUEST, UiText.t("CREATE 缺少 shopId", "CREATE is missing shopId")) | |||||
| val departure = req.departureTime | val departure = req.departureTime | ||||
| ?: throw ResponseStatusException(HttpStatus.BAD_REQUEST, "CREATE 缺少 departureTime") | |||||
| ?: throw ResponseStatusException(HttpStatus.BAD_REQUEST, UiText.t("CREATE 缺少 departureTime", "CREATE is missing a departure time")) | |||||
| val bucket = truckService.trucksInLaneBucket(toKey) | val bucket = truckService.trucksInLaneBucket(toKey) | ||||
| if (bucket.isEmpty() && !allowEmptyTarget) { | if (bucket.isEmpty() && !allowEmptyTarget) { | ||||
| throw ResponseStatusException( | throw ResponseStatusException( | ||||
| HttpStatus.BAD_REQUEST, | HttpStatus.BAD_REQUEST, | ||||
| "目標車線 ${toKey.truckLanceCode} 不存在,需先 ENSURE_LANE", | |||||
| UiText.t("目標車線 ", "Target truck lane ") + (toKey.truckLanceCode) + UiText.t(" 不存在,需先 ENSURE_LANE", " does not exist. Run ENSURE_LANE first."), | |||||
| ) | ) | ||||
| } | } | ||||
| val seq = req.toLoadingSequence ?: 0 | val seq = req.toLoadingSequence ?: 0 | ||||
| @@ -429,12 +431,12 @@ open class TruckLaneScheduleService( | |||||
| TruckLaneScheduleLineAction.DELETE -> { | TruckLaneScheduleLineAction.DELETE -> { | ||||
| val truckRowId = req.truckRowId | val truckRowId = req.truckRowId | ||||
| ?: throw ResponseStatusException(HttpStatus.BAD_REQUEST, "DELETE 缺少 truckRowId") | |||||
| ?: throw ResponseStatusException(HttpStatus.BAD_REQUEST, UiText.t("DELETE 缺少 truckRowId", "DELETE is missing truckRowId")) | |||||
| assertNoOpenPending(truckRowId) | assertNoOpenPending(truckRowId) | ||||
| val truck = truckService.findTruckById(truckRowId) | val truck = truckService.findTruckById(truckRowId) | ||||
| ?: throw ResponseStatusException(HttpStatus.BAD_REQUEST, "找不到 truck #$truckRowId") | |||||
| ?: throw ResponseStatusException(HttpStatus.BAD_REQUEST, UiText.t("找不到 truck #", "Truck not found: #") + truckRowId) | |||||
| if (truckService.isPlaceholderTruckRow(truck)) { | if (truckService.isPlaceholderTruckRow(truck)) { | ||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, "無法刪除空白占位列") | |||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, UiText.t("無法刪除空白占位列", "A blank placeholder row cannot be deleted")) | |||||
| } | } | ||||
| val fromKey = truckService.truckLaneBucketKeyOf(truck) | val fromKey = truckService.truckLaneBucketKeyOf(truck) | ||||
| TruckLaneScheduleLine().apply { | TruckLaneScheduleLine().apply { | ||||
| @@ -454,17 +456,17 @@ open class TruckLaneScheduleService( | |||||
| TruckLaneScheduleLineAction.MOVE -> { | TruckLaneScheduleLineAction.MOVE -> { | ||||
| val truckRowId = req.truckRowId | val truckRowId = req.truckRowId | ||||
| ?: throw ResponseStatusException(HttpStatus.BAD_REQUEST, "MOVE 缺少 truckRowId") | |||||
| ?: throw ResponseStatusException(HttpStatus.BAD_REQUEST, UiText.t("MOVE 缺少 truckRowId", "MOVE is missing truckRowId")) | |||||
| assertNoOpenPending(truckRowId) | assertNoOpenPending(truckRowId) | ||||
| val truck = truckService.findTruckById(truckRowId) | val truck = truckService.findTruckById(truckRowId) | ||||
| ?: throw ResponseStatusException(HttpStatus.BAD_REQUEST, "找不到 truck #$truckRowId") | |||||
| ?: throw ResponseStatusException(HttpStatus.BAD_REQUEST, UiText.t("找不到 truck #", "Truck not found: #") + truckRowId) | |||||
| val fromKey = truckService.truckLaneBucketKeyOf(truck) | val fromKey = truckService.truckLaneBucketKeyOf(truck) | ||||
| val err = truckService.validateMoveToLane(truckRowId, toKey, allowEmptyTarget) | val err = truckService.validateMoveToLane(truckRowId, toKey, allowEmptyTarget) | ||||
| if (err != null) { | if (err != null) { | ||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, "truck #$truckRowId: $err") | throw ResponseStatusException(HttpStatus.BAD_REQUEST, "truck #$truckRowId: $err") | ||||
| } | } | ||||
| val seq = req.toLoadingSequence | val seq = req.toLoadingSequence | ||||
| ?: throw ResponseStatusException(HttpStatus.BAD_REQUEST, "MOVE 缺少 toLoadingSequence") | |||||
| ?: throw ResponseStatusException(HttpStatus.BAD_REQUEST, UiText.t("MOVE 缺少 toLoadingSequence", "MOVE is missing a loading sequence")) | |||||
| TruckLaneScheduleLine().apply { | TruckLaneScheduleLine().apply { | ||||
| lineAction = TruckLaneScheduleLineAction.MOVE | lineAction = TruckLaneScheduleLineAction.MOVE | ||||
| this.truckRowId = truckRowId | this.truckRowId = truckRowId | ||||
| @@ -498,7 +500,7 @@ open class TruckLaneScheduleService( | |||||
| ) { | ) { | ||||
| throw ResponseStatusException( | throw ResponseStatusException( | ||||
| HttpStatus.BAD_REQUEST, | HttpStatus.BAD_REQUEST, | ||||
| "truck #$truckRowId 已有待執行排程", | |||||
| "truck #" + truckRowId + UiText.t(" 已有待執行排程", " already has a pending schedule"), | |||||
| ) | ) | ||||
| } | } | ||||
| } | } | ||||
| @@ -536,7 +538,7 @@ open class TruckLaneScheduleService( | |||||
| private fun validateExecuteAt(executeAt: LocalDateTime) { | private fun validateExecuteAt(executeAt: LocalDateTime) { | ||||
| val min = LocalDateTime.now().minusMinutes(2) | val min = LocalDateTime.now().minusMinutes(2) | ||||
| if (executeAt.isBefore(min)) { | if (executeAt.isBefore(min)) { | ||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, "執行時間不可早於目前時間") | |||||
| throw ResponseStatusException(HttpStatus.BAD_REQUEST, UiText.t("執行時間不可早於目前時間", "The run time cannot be earlier than now")) | |||||
| } | } | ||||
| } | } | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.pickOrder.service | package com.ffii.fpsms.modules.pickOrder.service | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.fpsms.modules.common.demo.DemoFloors | import com.ffii.fpsms.modules.common.demo.DemoFloors | ||||
| import com.ffii.core.support.AbstractBaseEntityService | import com.ffii.core.support.AbstractBaseEntityService | ||||
| import com.ffii.core.support.JdbcDao | import com.ffii.core.support.JdbcDao | ||||
| @@ -546,12 +548,12 @@ open class TruckService( | |||||
| allowEmptyTarget: Boolean, | allowEmptyTarget: Boolean, | ||||
| ): String? { | ): String? { | ||||
| val truck = truckRepository.findById(truckRowId).orElse(null) | val truck = truckRepository.findById(truckRowId).orElse(null) | ||||
| ?: return "找不到 truck 列 id=$truckRowId" | |||||
| if (truck.deleted == true) return "truck 列已刪除" | |||||
| if (isLanePlaceholderTruck(truck)) return "無法排程移動空白占位列" | |||||
| ?: return UiText.t("找不到 truck 列 id=", "Truck row not found, id=") + truckRowId | |||||
| if (truck.deleted == true) return UiText.t("truck 列已刪除", "The truck row is deleted") | |||||
| if (isLanePlaceholderTruck(truck)) return UiText.t("無法排程移動空白占位列", "A blank placeholder row cannot be scheduled for a move") | |||||
| val toCode = to.truckLanceCode.trim() | val toCode = to.truckLanceCode.trim() | ||||
| if (toCode.isEmpty()) return "目標車線編號不可為空" | |||||
| if (toCode.isEmpty()) return UiText.t("目標車線編號不可為空", "The target truck lane code cannot be empty") | |||||
| val fromKey = truckLaneBucketKeyOf(truck) | val fromKey = truckLaneBucketKeyOf(truck) | ||||
| val sameLane = | val sameLane = | ||||
| @@ -563,11 +565,11 @@ open class TruckService( | |||||
| val targetBucket = trucksInLaneBucket(to) | val targetBucket = trucksInLaneBucket(to) | ||||
| if (targetBucket.isEmpty()) { | if (targetBucket.isEmpty()) { | ||||
| if (allowEmptyTarget) return null | if (allowEmptyTarget) return null | ||||
| return "目標車線不存在或尚無任何列:$toCode" | |||||
| return UiText.t("目標車線不存在或尚無任何列:", "The target truck lane does not exist or has no rows: ") + toCode | |||||
| } | } | ||||
| if (laneHasShopConflict(truck, targetBucket, excludeTruckRowId = truckRowId)) { | if (laneHasShopConflict(truck, targetBucket, excludeTruckRowId = truckRowId)) { | ||||
| return "目標車線已有相同店鋪" | |||||
| return UiText.t("目標車線已有相同店鋪", "The target truck lane already has this shop") | |||||
| } | } | ||||
| return null | return null | ||||
| } | } | ||||
| @@ -658,7 +660,7 @@ open class TruckService( | |||||
| ): List<Truck> { | ): List<Truck> { | ||||
| assertNotScheduleLocked(truckRowId) | assertNotScheduleLocked(truckRowId) | ||||
| var truck = findTruckRowByIdIncludingDeleted(truckRowId) | var truck = findTruckRowByIdIncludingDeleted(truckRowId) | ||||
| ?: throw IllegalArgumentException("找不到 truck #$truckRowId") | |||||
| ?: throw IllegalArgumentException(UiText.t("找不到 truck #", "Truck not found: #") + truckRowId) | |||||
| truck = restoreTruckRowIfDeleted(truck) | truck = restoreTruckRowIfDeleted(truck) | ||||
| val err = validateMoveToLane(truckRowId, to) | val err = validateMoveToLane(truckRowId, to) | ||||
| @@ -994,12 +996,12 @@ open class TruckService( | |||||
| rr.createCell(RouteLaneExcelSupport.COL_META_C).setCellValue(remark ?: "") | rr.createCell(RouteLaneExcelSupport.COL_META_C).setCellValue(remark ?: "") | ||||
| rr = sheet.createRow(RouteLaneExcelSupport.ROW_STORE) | rr = sheet.createRow(RouteLaneExcelSupport.ROW_STORE) | ||||
| rr.createCell(RouteLaneExcelSupport.COL_META_A).setCellValue("樓層") | |||||
| rr.createCell(RouteLaneExcelSupport.COL_META_A).setCellValue(UiText.t("樓層", "Floor")) | |||||
| rr.createCell(RouteLaneExcelSupport.COL_META_B) | rr.createCell(RouteLaneExcelSupport.COL_META_B) | ||||
| .setCellValue(trucks.first().storeId ?: "") | .setCellValue(trucks.first().storeId ?: "") | ||||
| rr = sheet.createRow(RouteLaneExcelSupport.ROW_DEPARTURE_DEFAULT) | rr = sheet.createRow(RouteLaneExcelSupport.ROW_DEPARTURE_DEFAULT) | ||||
| rr.createCell(RouteLaneExcelSupport.COL_META_A).setCellValue("出車時間") | |||||
| rr.createCell(RouteLaneExcelSupport.COL_META_A).setCellValue(UiText.t("出車時間", "Departure time")) | |||||
| rr.createCell(RouteLaneExcelSupport.COL_META_B).setCellValue( | rr.createCell(RouteLaneExcelSupport.COL_META_B).setCellValue( | ||||
| formatDepartureForExcel(trucks.first().departureTime), | formatDepartureForExcel(trucks.first().departureTime), | ||||
| ) | ) | ||||
| @@ -1046,7 +1048,7 @@ open class TruckService( | |||||
| fun buildRouteReportFilename(): String { | fun buildRouteReportFilename(): String { | ||||
| val d = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) | val d = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) | ||||
| return "車線Report_${d}.xlsx" | |||||
| return UiText.t("車線Report_", "TruckLaneReport_") + (d) + ".xlsx" | |||||
| } | } | ||||
| private fun normalizeRemarkForLaneGroup(raw: String?): String { | private fun normalizeRemarkForLaneGroup(raw: String?): String { | ||||
| @@ -1103,7 +1105,7 @@ open class TruckService( | |||||
| val byCompanyId = trucks.groupBy { t -> | val byCompanyId = trucks.groupBy { t -> | ||||
| val id = t.logistic?.id | val id = t.logistic?.id | ||||
| val nameRaw = t.logistic?.logisticName?.trim().orEmpty() | val nameRaw = t.logistic?.logisticName?.trim().orEmpty() | ||||
| val name = if (nameRaw.isNotEmpty()) nameRaw else "未命名物流" | |||||
| val name = if (nameRaw.isNotEmpty()) nameRaw else UiText.t("未命名物流", "Unnamed logistics") | |||||
| CompanyKey(id, name) | CompanyKey(id, name) | ||||
| } | } | ||||
| @@ -1124,8 +1126,8 @@ open class TruckService( | |||||
| RouteReportExcelSupport.writeTitle( | RouteReportExcelSupport.writeTitle( | ||||
| sheet, | sheet, | ||||
| st, | st, | ||||
| "新車綫($today)更改車線", | |||||
| "製表: $preparedBy", | |||||
| UiText.t("新車綫(", "New truck lanes (") + today + UiText.t(")更改車線", ") lane changes"), | |||||
| UiText.t("製表: ", "Prepared by: ") + preparedBy, | |||||
| companies.size, | companies.size, | ||||
| ) | ) | ||||
| @@ -1300,13 +1302,13 @@ open class TruckService( | |||||
| val summaryRows = buildSummaryRows(fromLines, toLines, diffLines, logisticNameById) | val summaryRows = buildSummaryRows(fromLines, toLines, diffLines, logisticNameById) | ||||
| val createdDate = (toV.created?.toString() ?: "").take(10) | val createdDate = (toV.created?.toString() ?: "").take(10) | ||||
| val title = "車線報告(${createdDate.ifBlank { "—" }})更改車線" | |||||
| val title = UiText.t("車線報告(", "Truck lane report (") + (createdDate.ifBlank { "—" }) + UiText.t(")更改車線", ") lane changes") | |||||
| val editor = (toV.modifiedBy ?: input.preparedBy).trim().ifBlank { input.preparedBy } | val editor = (toV.modifiedBy ?: input.preparedBy).trim().ifBlank { input.preparedBy } | ||||
| val created = toV.created?.toString() ?: "—" | val created = toV.created?.toString() ?: "—" | ||||
| val stats = summarizeSummaryRows(summaryRows) | val stats = summarizeSummaryRows(summaryRows) | ||||
| val statsText = | val statsText = | ||||
| "新增 ${stats.added} · 移動 ${stats.moved} · 刪除 ${stats.deleted} · 欄位變更 ${stats.fieldChanged}" | |||||
| UiText.t("新增 ", "Added ") + (stats.added) + UiText.t(" · 移動 ", " · Moved ") + (stats.moved) + UiText.t(" · 刪除 ", " · Deleted ") + (stats.deleted) + UiText.t(" · 欄位變更 ", " · Field changes ") + (stats.fieldChanged) | |||||
| TruckLaneVersionReportExcelSupport.writeSummarySheet( | TruckLaneVersionReportExcelSupport.writeSummarySheet( | ||||
| wb, | wb, | ||||
| @@ -1420,15 +1422,15 @@ open class TruckService( | |||||
| } | } | ||||
| private val FIELD_LABEL = mapOf( | private val FIELD_LABEL = mapOf( | ||||
| "departureTime" to "發車時段", | |||||
| "loadingSequence" to "裝載順序", | |||||
| "branchName" to "分店名稱", | |||||
| "districtReference" to "區域", | |||||
| "shopCode" to "店鋪代碼", | |||||
| "storeId" to "樓層/店別", | |||||
| "remark" to "備註", | |||||
| "truckLanceCode" to "車線代碼", | |||||
| "logisticId" to "物流公司", | |||||
| "departureTime" to UiText.t("發車時段", "Departure window"), | |||||
| "loadingSequence" to UiText.t("裝載順序", "Loading sequence"), | |||||
| "branchName" to UiText.t("分店名稱", "Shop name"), | |||||
| "districtReference" to UiText.t("區域", "Area"), | |||||
| "shopCode" to UiText.t("店鋪代碼", "Shop code"), | |||||
| "storeId" to UiText.t("樓層/店別", "Floor / shop type"), | |||||
| "remark" to UiText.t("備註", "Notes"), | |||||
| "truckLanceCode" to UiText.t("車線代碼", "Truck lane code"), | |||||
| "logisticId" to UiText.t("物流公司", "Logistics company"), | |||||
| ) | ) | ||||
| private fun buildSummaryRows( | private fun buildSummaryRows( | ||||
| @@ -1465,11 +1467,11 @@ open class TruckService( | |||||
| .toSet() | .toSet() | ||||
| val textBits = ArrayList<String>() | val textBits = ArrayList<String>() | ||||
| if (type == TruckLaneVersionReportExcelSupport.RowType.ADDED) { | if (type == TruckLaneVersionReportExcelSupport.RowType.ADDED) { | ||||
| textBits.add("新增到 $toLane") | |||||
| textBits.add(UiText.t("新增到 ", "Added to ") + toLane) | |||||
| } else if (type == TruckLaneVersionReportExcelSupport.RowType.DELETED) { | } else if (type == TruckLaneVersionReportExcelSupport.RowType.DELETED) { | ||||
| textBits.add("自 $fromLane 移除") | |||||
| textBits.add(UiText.t("自 ", "Removed from ") + fromLane + UiText.t(" 移除", "")) | |||||
| } else if (type == TruckLaneVersionReportExcelSupport.RowType.MOVED) { | } else if (type == TruckLaneVersionReportExcelSupport.RowType.MOVED) { | ||||
| textBits.add("由 $fromLane → $toLane") | |||||
| textBits.add(UiText.t("由 ", "Moved ") + fromLane + " → " + toLane) | |||||
| } | } | ||||
| for (c in d.changes) { | for (c in d.changes) { | ||||
| if (c.field == "truckLanceCode" || c.field == "remark") continue | if (c.field == "truckLanceCode" || c.field == "remark") continue | ||||
| @@ -1500,7 +1502,7 @@ open class TruckService( | |||||
| shopCode = (b?.shopCode ?: a?.shopCode ?: "").trim(), | shopCode = (b?.shopCode ?: a?.shopCode ?: "").trim(), | ||||
| fromLane = fromLane, | fromLane = fromLane, | ||||
| toLane = toLane, | toLane = toLane, | ||||
| changeText = textBits.joinToString(";").ifEmpty { "欄位變更" }, | |||||
| changeText = textBits.joinToString(";").ifEmpty { UiText.t("欄位變更", "Field changes") }, | |||||
| changedFields = changedFields, | changedFields = changedFields, | ||||
| ), | ), | ||||
| ) | ) | ||||
| @@ -1557,11 +1559,11 @@ open class TruckService( | |||||
| rr.createCell(RouteLaneExcelSupport.COL_META_C).setCellValue(k.remark) | rr.createCell(RouteLaneExcelSupport.COL_META_C).setCellValue(k.remark) | ||||
| rr = sheet.createRow(RouteLaneExcelSupport.ROW_STORE) | rr = sheet.createRow(RouteLaneExcelSupport.ROW_STORE) | ||||
| rr.createCell(RouteLaneExcelSupport.COL_META_A).setCellValue("樓層") | |||||
| rr.createCell(RouteLaneExcelSupport.COL_META_A).setCellValue(UiText.t("樓層", "Floor")) | |||||
| rr.createCell(RouteLaneExcelSupport.COL_META_B).setCellValue(lines.first().storeId ?: "") | rr.createCell(RouteLaneExcelSupport.COL_META_B).setCellValue(lines.first().storeId ?: "") | ||||
| rr = sheet.createRow(RouteLaneExcelSupport.ROW_DEPARTURE_DEFAULT) | rr = sheet.createRow(RouteLaneExcelSupport.ROW_DEPARTURE_DEFAULT) | ||||
| rr.createCell(RouteLaneExcelSupport.COL_META_A).setCellValue("出車時間") | |||||
| rr.createCell(RouteLaneExcelSupport.COL_META_A).setCellValue(UiText.t("出車時間", "Departure time")) | |||||
| val deptDefault = parseLocalTimeOrNull(lines.firstNotNullOfOrNull { it.departureTime }) | val deptDefault = parseLocalTimeOrNull(lines.firstNotNullOfOrNull { it.departureTime }) | ||||
| rr.createCell(RouteLaneExcelSupport.COL_META_B).setCellValue(formatDepartureForExcel(deptDefault)) | rr.createCell(RouteLaneExcelSupport.COL_META_B).setCellValue(formatDepartureForExcel(deptDefault)) | ||||
| @@ -1672,7 +1674,7 @@ open class TruckService( | |||||
| val byCompany = linesWithLane.groupBy { l -> | val byCompany = linesWithLane.groupBy { l -> | ||||
| val id = l.logisticId | val id = l.logisticId | ||||
| val logi = if (id != null) logisticsById[id] else null | val logi = if (id != null) logisticsById[id] else null | ||||
| val name = logi?.logisticName?.trim().orEmpty().ifEmpty { "未命名物流" } | |||||
| val name = logi?.logisticName?.trim().orEmpty().ifEmpty { UiText.t("未命名物流", "Unnamed logistics") } | |||||
| CompanyKey(id, name) | CompanyKey(id, name) | ||||
| }.entries.sortedBy { it.key.name } | }.entries.sortedBy { it.key.name } | ||||
| @@ -1681,8 +1683,8 @@ open class TruckService( | |||||
| TruckLaneVersionRouteReportExcelSupport.writeTitle( | TruckLaneVersionRouteReportExcelSupport.writeTitle( | ||||
| sheet, | sheet, | ||||
| st, | st, | ||||
| "車線報告($createdDate)更改車線", | |||||
| "製表: $editor", | |||||
| UiText.t("車線報告(", "Truck lane report (") + createdDate + UiText.t(")更改車線", ") lane changes"), | |||||
| UiText.t("製表: ", "Prepared by: ") + editor, | |||||
| byCompany.size.coerceAtLeast(1), | byCompany.size.coerceAtLeast(1), | ||||
| ) | ) | ||||
| @@ -1728,7 +1730,7 @@ open class TruckService( | |||||
| val shown = fields | val shown = fields | ||||
| .filterNot { it == "truckLanceCode" || it == "remark" || it == "logisticId" } | .filterNot { it == "truckLanceCode" || it == "remark" || it == "logisticId" } | ||||
| .map { FIELD_LABEL[it] ?: it } | .map { FIELD_LABEL[it] ?: it } | ||||
| if (shown.isNotEmpty()) "變更: ${shown.joinToString(",")}" else null | |||||
| if (shown.isNotEmpty()) UiText.t("變更: ", "Changes: ") + (shown.joinToString(",")) else null | |||||
| } | } | ||||
| val logisticChange = logisticChangeByRowId[id]?.let { ch -> | val logisticChange = logisticChangeByRowId[id]?.let { ch -> | ||||
| val fromName = ch.from?.trim()?.toLongOrNull() | val fromName = ch.from?.trim()?.toLongOrNull() | ||||
| @@ -1743,7 +1745,7 @@ open class TruckService( | |||||
| .orEmpty() | .orEmpty() | ||||
| .ifEmpty { ch.to?.trim().orEmpty() } | .ifEmpty { ch.to?.trim().orEmpty() } | ||||
| .ifEmpty { "—" } | .ifEmpty { "—" } | ||||
| if (fromName != toName) "物流公司:$fromName → $toName" else null | |||||
| if (fromName != toName) UiText.t("物流公司:", "Logistics company: ") + fromName + " → " + toName else null | |||||
| } | } | ||||
| val linesText = ArrayList<String>(4) | val linesText = ArrayList<String>(4) | ||||
| linesText.add(name) | linesText.add(name) | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.pickOrder.web | package com.ffii.fpsms.modules.pickOrder.web | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.fpsms.modules.master.web.models.MessageResponse | import com.ffii.fpsms.modules.master.web.models.MessageResponse | ||||
| import com.ffii.fpsms.modules.pickOrder.entity.TruckLaneScheduleStatus | import com.ffii.fpsms.modules.pickOrder.entity.TruckLaneScheduleStatus | ||||
| import com.ffii.fpsms.modules.pickOrder.service.TruckLaneScheduleService | import com.ffii.fpsms.modules.pickOrder.service.TruckLaneScheduleService | ||||
| @@ -149,7 +151,7 @@ open class TruckLaneScheduleController @Autowired constructor( | |||||
| name = null, | name = null, | ||||
| code = null, | code = null, | ||||
| type = "truckLaneSchedule", | type = "truckLaneSchedule", | ||||
| message = "無有效列可匯入", | |||||
| message = UiText.t("無有效列可匯入", "No valid rows to import"), | |||||
| errorPosition = null, | errorPosition = null, | ||||
| entity = parsed, | entity = parsed, | ||||
| ), | ), | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.report.service | package com.ffii.fpsms.modules.report.service | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.fpsms.modules.report.service.LotExpiryAlertReportService.SearchFilters | import com.ffii.fpsms.modules.report.service.LotExpiryAlertReportService.SearchFilters | ||||
| import org.apache.poi.ss.usermodel.BorderStyle | import org.apache.poi.ss.usermodel.BorderStyle | ||||
| import org.apache.poi.ss.usermodel.CellStyle | import org.apache.poi.ss.usermodel.CellStyle | ||||
| @@ -35,20 +37,20 @@ internal object LotExpiryAlertExcelBuilder { | |||||
| workbook.setCompressTempFiles(true) | workbook.setCompressTempFiles(true) | ||||
| try { | try { | ||||
| val styles = createStyles(workbook) | val styles = createStyles(workbook) | ||||
| val reportTitle = "到期警示報告" | |||||
| val reportTitle = UiText.t("到期警示報告", "Expiry alert report") | |||||
| val sheet = workbook.createSheet(WorkbookUtil.createSafeSheetName(reportTitle)) | val sheet = workbook.createSheet(WorkbookUtil.createSafeSheetName(reportTitle)) | ||||
| val headers = listOf( | val headers = listOf( | ||||
| "到期警示", | |||||
| "樓層", | |||||
| "到期日", | |||||
| "貨品編號", | |||||
| "貨品名稱", | |||||
| "批號", | |||||
| "倉庫", | |||||
| "區域", | |||||
| "儲位", | |||||
| "剩餘數量", | |||||
| "單位", | |||||
| UiText.t("到期警示", "Expiry alert"), | |||||
| UiText.t("樓層", "Floor"), | |||||
| UiText.t("到期日", "Expiry date"), | |||||
| UiText.t("貨品編號", "Item code"), | |||||
| UiText.t("貨品名稱", "Item name"), | |||||
| UiText.t("批號", "Lot no."), | |||||
| UiText.t("倉庫", "Warehouse"), | |||||
| UiText.t("區域", "Area"), | |||||
| UiText.t("儲位", "Slot"), | |||||
| UiText.t("剩餘數量", "Remaining qty"), | |||||
| UiText.t("單位", "UOM"), | |||||
| ) | ) | ||||
| val totalColumns = headers.size | val totalColumns = headers.size | ||||
| var rowIndex = 0 | var rowIndex = 0 | ||||
| @@ -65,7 +67,7 @@ internal object LotExpiryAlertExcelBuilder { | |||||
| val dateRow = sheet.createRow(rowIndex++) | val dateRow = sheet.createRow(rowIndex++) | ||||
| dateRow.heightInPoints = 32f | dateRow.heightInPoints = 32f | ||||
| dateRow.createCell(0).apply { | dateRow.createCell(0).apply { | ||||
| setCellValue("下載日期:$downloadedAt") | |||||
| setCellValue(UiText.t("下載日期:", "Downloaded: ") + downloadedAt) | |||||
| cellStyle = styles.subtitle | cellStyle = styles.subtitle | ||||
| } | } | ||||
| val dateEndCol = 3.coerceAtMost(totalColumns - 2) | val dateEndCol = 3.coerceAtMost(totalColumns - 2) | ||||
| @@ -74,14 +76,14 @@ internal object LotExpiryAlertExcelBuilder { | |||||
| } | } | ||||
| val filterStartCol = dateEndCol + 1 | val filterStartCol = dateEndCol + 1 | ||||
| val filterText = listOf( | val filterText = listOf( | ||||
| "貨品編號=${displayFilter(filters.itemCode)}", | |||||
| "貨品=${displayFilter(filters.itemName)}", | |||||
| "批號=${displayFilter(filters.lotNo)}", | |||||
| "未來天數=${filters.resolvedDaysAhead()}", | |||||
| "到期分類=${displayBucket(filters.bucket, filters.resolvedDaysAhead())}", | |||||
| UiText.t("貨品編號=", "Item code=") + (displayFilter(filters.itemCode)), | |||||
| UiText.t("貨品=", "Item=") + (displayFilter(filters.itemName)), | |||||
| UiText.t("批號=", "Lot no.=") + (displayFilter(filters.lotNo)), | |||||
| UiText.t("未來天數=", "Days ahead=") + (filters.resolvedDaysAhead()), | |||||
| UiText.t("到期分類=", "Expiry group=") + (displayBucket(filters.bucket, filters.resolvedDaysAhead())), | |||||
| ).joinToString(" ") | ).joinToString(" ") | ||||
| dateRow.createCell(filterStartCol).apply { | dateRow.createCell(filterStartCol).apply { | ||||
| setCellValue("搜尋條件:$filterText") | |||||
| setCellValue(UiText.t("搜尋條件:", "Filters: ") + filterText) | |||||
| cellStyle = styles.subtitle | cellStyle = styles.subtitle | ||||
| } | } | ||||
| if (filterStartCol < totalColumns - 1) { | if (filterStartCol < totalColumns - 1) { | ||||
| @@ -103,7 +105,7 @@ internal object LotExpiryAlertExcelBuilder { | |||||
| val r = sheet.createRow(rowIndex++) | val r = sheet.createRow(rowIndex++) | ||||
| r.heightInPoints = 22f | r.heightInPoints = 22f | ||||
| r.createCell(0).apply { | r.createCell(0).apply { | ||||
| setCellValue("查無資料") | |||||
| setCellValue(UiText.t("查無資料", "No data")) | |||||
| cellStyle = styles.center | cellStyle = styles.center | ||||
| } | } | ||||
| for (c in 1 until totalColumns) { | for (c in 1 until totalColumns) { | ||||
| @@ -210,15 +212,15 @@ internal object LotExpiryAlertExcelBuilder { | |||||
| private fun displayFilter(raw: String?): String { | private fun displayFilter(raw: String?): String { | ||||
| val v = raw?.trim().orEmpty() | val v = raw?.trim().orEmpty() | ||||
| return if (v.isEmpty()) "全部" else v | |||||
| return if (v.isEmpty()) UiText.t("全部", "All") else v | |||||
| } | } | ||||
| private fun displayBucket(raw: String?, daysAhead: Int): String { | private fun displayBucket(raw: String?, daysAhead: Int): String { | ||||
| return when (raw?.trim()?.lowercase()) { | return when (raw?.trim()?.lowercase()) { | ||||
| "expired" -> "過期尚未處理" | |||||
| "today" -> "今日到期" | |||||
| "upcoming" -> "未來 ${daysAhead} 日到期" | |||||
| else -> "全部" | |||||
| "expired" -> UiText.t("過期尚未處理", "Expired, not yet handled") | |||||
| "today" -> UiText.t("今日到期", "Expires today") | |||||
| "upcoming" -> UiText.t("未來 ", "Within ") + (daysAhead) + UiText.t(" 日到期", " days") | |||||
| else -> UiText.t("全部", "All") | |||||
| } | } | ||||
| } | } | ||||
| @@ -1,6 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.report.service | package com.ffii.fpsms.modules.report.service | ||||
| import com.ffii.core.support.JdbcDao | import com.ffii.core.support.JdbcDao | ||||
| import com.ffii.core.utils.UiText | |||||
| import org.springframework.stereotype.Service | import org.springframework.stereotype.Service | ||||
| @Service | @Service | ||||
| @@ -71,6 +72,9 @@ open class LotExpiryAlertReportService( | |||||
| ) | ) | ||||
| } | } | ||||
| } | } | ||||
| val expired = UiText.t("已過期", "Expired").replace("'", "''") | |||||
| val today = UiText.t("今日到期", "Expires today").replace("'", "''") | |||||
| val upcoming = UiText.t("${daysAhead}日內到期", "Expires within $daysAhead days").replace("'", "''") | |||||
| return jdbcDao.queryForList( | return jdbcDao.queryForList( | ||||
| """ | """ | ||||
| SELECT | SELECT | ||||
| @@ -86,10 +90,10 @@ open class LotExpiryAlertReportService( | |||||
| COALESCE(uc.udfudesc, uc.code, '') AS unitOfMeasure, | COALESCE(uc.udfudesc, uc.code, '') AS unitOfMeasure, | ||||
| CASE | CASE | ||||
| WHEN il.expiryDate IS NULL THEN '' | WHEN il.expiryDate IS NULL THEN '' | ||||
| WHEN il.expiryDate < CURRENT_DATE THEN '已過期' | |||||
| WHEN il.expiryDate = CURRENT_DATE THEN '今日到期' | |||||
| WHEN il.expiryDate < CURRENT_DATE THEN '$expired' | |||||
| WHEN il.expiryDate = CURRENT_DATE THEN '$today' | |||||
| WHEN il.expiryDate <= DATE_ADD(CURRENT_DATE, INTERVAL :daysAhead DAY) | WHEN il.expiryDate <= DATE_ADD(CURRENT_DATE, INTERVAL :daysAhead DAY) | ||||
| THEN '${daysAhead}日內到期' | |||||
| THEN '$upcoming' | |||||
| ELSE '' | ELSE '' | ||||
| END AS expiryAlert | END AS expiryAlert | ||||
| FROM inventory_lot_line ill | FROM inventory_lot_line ill | ||||
| @@ -1,5 +1,6 @@ | |||||
| package com.ffii.fpsms.modules.report.service | package com.ffii.fpsms.modules.report.service | ||||
| import com.ffii.core.utils.ReportMessages | |||||
| import com.ffii.fpsms.modules.common.demo.DemoFloors | import com.ffii.fpsms.modules.common.demo.DemoFloors | ||||
| import org.springframework.stereotype.Service | import org.springframework.stereotype.Service | ||||
| import net.sf.jasperreports.engine.* | import net.sf.jasperreports.engine.* | ||||
| @@ -1734,7 +1735,7 @@ return result | |||||
| fun createExcelResponse(templatePath: String, params: Map<String, Any>, dataList: List<Map<String, Any>>): ByteArray { | fun createExcelResponse(templatePath: String, params: Map<String, Any>, dataList: List<Map<String, Any>>): ByteArray { | ||||
| val jasperReport = compiledReport(templatePath) | val jasperReport = compiledReport(templatePath) | ||||
| val dataSource = JRMapCollectionDataSource(dataList) | val dataSource = JRMapCollectionDataSource(dataList) | ||||
| val jasperPrint = JasperFillManager.fillReport(jasperReport, params, dataSource) | |||||
| val jasperPrint = JasperFillManager.fillReport(jasperReport, withReportBundle(params), dataSource) | |||||
| val out = ByteArrayOutputStream() | val out = ByteArrayOutputStream() | ||||
| val exporter = JRXlsxExporter() | val exporter = JRXlsxExporter() | ||||
| exporter.setExporterInput(SimpleExporterInput(jasperPrint)) | exporter.setExporterInput(SimpleExporterInput(jasperPrint)) | ||||
| @@ -1749,10 +1750,16 @@ return result | |||||
| fun createPdfResponse(templatePath: String, params: Map<String, Any>, dataList: List<Map<String, Any>>): ByteArray { | fun createPdfResponse(templatePath: String, params: Map<String, Any>, dataList: List<Map<String, Any>>): ByteArray { | ||||
| val jasperReport = compiledReport(templatePath) | val jasperReport = compiledReport(templatePath) | ||||
| val dataSource = JRMapCollectionDataSource(dataList) | val dataSource = JRMapCollectionDataSource(dataList) | ||||
| val jasperPrint = JasperFillManager.fillReport(jasperReport, params, dataSource) | |||||
| val jasperPrint = JasperFillManager.fillReport(jasperReport, withReportBundle(params), dataSource) | |||||
| return JasperExportManager.exportReportToPdf(jasperPrint) | return JasperExportManager.exportReportToPdf(jasperPrint) | ||||
| } | } | ||||
| private fun withReportBundle(params: Map<String, Any>): Map<String, Any> { | |||||
| val copy = HashMap(params) | |||||
| copy[JRParameter.REPORT_RESOURCE_BUNDLE] = ReportMessages.bundle() | |||||
| return copy | |||||
| } | |||||
| fun mergePdfBytes(parts: List<ByteArray>): ByteArray { | fun mergePdfBytes(parts: List<ByteArray>): ByteArray { | ||||
| if (parts.isEmpty()) return ByteArray(0) | if (parts.isEmpty()) return ByteArray(0) | ||||
| if (parts.size == 1) return parts[0] | if (parts.size == 1) return parts[0] | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.report.service | package com.ffii.fpsms.modules.report.service | ||||
| import com.ffii.core.utils.UiText | |||||
| import org.apache.pdfbox.pdmodel.PDDocument | import org.apache.pdfbox.pdmodel.PDDocument | ||||
| import org.apache.pdfbox.pdmodel.PDPage | import org.apache.pdfbox.pdmodel.PDPage | ||||
| import org.apache.pdfbox.pdmodel.PDPageContentStream | import org.apache.pdfbox.pdmodel.PDPageContentStream | ||||
| @@ -30,16 +32,16 @@ object StockLedgerPdf { | |||||
| private data class Col(val x: Float, val w: Float, val title: String, val alignRight: Boolean = false) | private data class Col(val x: Float, val w: Float, val title: String, val alignRight: Boolean = false) | ||||
| private val columns = listOf( | private val columns = listOf( | ||||
| Col(11f, 78f, "出入賬日期"), | |||||
| Col(91f, 58f, "類型"), | |||||
| Col(151f, 120f, "批號"), | |||||
| Col(273f, 72f, "到期日"), | |||||
| Col(347f, 58f, "纍計期初", alignRight = true), | |||||
| Col(407f, 48f, "入庫", alignRight = true), | |||||
| Col(457f, 48f, "出庫", alignRight = true), | |||||
| Col(507f, 62f, "纍計存量", alignRight = true), | |||||
| Col(571f, 140f, "參考編號"), | |||||
| Col(713f, 112f, "存貨位置"), | |||||
| Col(11f, 78f, UiText.t("出入賬日期", "Ledger date")), | |||||
| Col(91f, 58f, UiText.t("類型", "Type")), | |||||
| Col(151f, 120f, UiText.t("批號", "Lot no.")), | |||||
| Col(273f, 72f, UiText.t("到期日", "Expiry date")), | |||||
| Col(347f, 58f, UiText.t("纍計期初", "Opening"), alignRight = true), | |||||
| Col(407f, 48f, UiText.t("入庫", "Stock in"), alignRight = true), | |||||
| Col(457f, 48f, UiText.t("出庫", "Stock out"), alignRight = true), | |||||
| Col(507f, 62f, UiText.t("纍計存量", "Cumulative balance"), alignRight = true), | |||||
| Col(571f, 140f, UiText.t("參考編號", "Reference no.")), | |||||
| Col(713f, 112f, UiText.t("存貨位置", "Stock location")), | |||||
| ) | ) | ||||
| fun write( | fun write( | ||||
| @@ -64,7 +66,7 @@ object StockLedgerPdf { | |||||
| fun closeGroup() { | fun closeGroup() { | ||||
| if (count > 1) { | if (count > 1) { | ||||
| canvas.ensureRow() | canvas.ensureRow() | ||||
| canvas.text(250f, canvas.y, "貨品總量:", BODY_SIZE, 95f, alignRight = true) | |||||
| canvas.text(250f, canvas.y, UiText.t("貨品總量:", "Total qty: "), BODY_SIZE, 95f, alignRight = true) | |||||
| canvas.text(columns[5].x, canvas.y, totalIn, BODY_SIZE, columns[5].w, alignRight = true) | canvas.text(columns[5].x, canvas.y, totalIn, BODY_SIZE, columns[5].w, alignRight = true) | ||||
| canvas.text(columns[6].x, canvas.y, totalOut, BODY_SIZE, columns[6].w, alignRight = true) | canvas.text(columns[6].x, canvas.y, totalOut, BODY_SIZE, columns[6].w, alignRight = true) | ||||
| canvas.text(columns[7].x, canvas.y, totalBal, BODY_SIZE, columns[7].w, alignRight = true) | canvas.text(columns[7].x, canvas.y, totalBal, BODY_SIZE, columns[7].w, alignRight = true) | ||||
| @@ -168,7 +170,7 @@ object StockLedgerPdf { | |||||
| val total = pages.size | val total = pages.size | ||||
| pages.forEachIndexed { index, page -> | pages.forEachIndexed { index, page -> | ||||
| PDPageContentStream(doc, page, PDPageContentStream.AppendMode.APPEND, true, true).use { cs -> | PDPageContentStream(doc, page, PDPageContentStream.AppendMode.APPEND, true, true).use { cs -> | ||||
| val label = "頁數 ${index + 1} / $total" | |||||
| val label = UiText.t("頁數 ", "Page ") + (index + 1) + " / " + total | |||||
| cs.beginText() | cs.beginText() | ||||
| cs.setFont(font, 9f) | cs.setFont(font, 9f) | ||||
| val labelX = PAGE_W - 18f - widthOf(label, 9f) | val labelX = PAGE_W - 18f - widthOf(label, 9f) | ||||
| @@ -187,11 +189,11 @@ object StockLedgerPdf { | |||||
| stream = PDPageContentStream(doc, page) | stream = PDPageContentStream(doc, page) | ||||
| y = PAGE_H - 36f | y = PAGE_H - 36f | ||||
| openText() | openText() | ||||
| text(300f, y, "庫存明細報告", 14f) | |||||
| text(300f, y, UiText.t("庫存明細報告", "Stock ledger report"), 14f) | |||||
| y -= 18f | y -= 18f | ||||
| text(18f, y, "報告日期:$reportDate 報告時間:$reportTime", 9f) | |||||
| text(18f, y, UiText.t("報告日期:", "Report date: ") + reportDate + UiText.t(" 報告時間:", " Report time: ") + reportTime, 9f) | |||||
| val period = if (periodStart.isNotBlank() || periodEnd.isNotBlank()) { | val period = if (periodStart.isNotBlank() || periodEnd.isNotBlank()) { | ||||
| "報告期間:${periodStart.ifBlank { "—" }} 至 ${periodEnd.ifBlank { "—" }}" | |||||
| UiText.t("報告期間:", "Report period: ") + (periodStart.ifBlank { "—" }) + UiText.t(" 至 ", " to ") + (periodEnd.ifBlank { "—" }) | |||||
| } else { | } else { | ||||
| "" | "" | ||||
| } | } | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.report.service | package com.ffii.fpsms.modules.report.service | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.core.support.JdbcDao | import com.ffii.core.support.JdbcDao | ||||
| import org.springframework.stereotype.Service | import org.springframework.stereotype.Service | ||||
| import java.math.BigDecimal | import java.math.BigDecimal | ||||
| @@ -409,13 +411,13 @@ ORDER BY ledger.dt DESC, ledger.slId DESC | |||||
| date > otherDate || (date == otherDate && id > otherId) | date > otherDate || (date == otherDate && id > otherId) | ||||
| private fun ledgerTypeLabel(raw: String): String = when (raw) { | private fun ledgerTypeLabel(raw: String): String = when (raw) { | ||||
| "OPEN" -> "開倉" | |||||
| "NOR" -> "出入倉" | |||||
| "TRF" -> "轉倉" | |||||
| "ADJ" -> "調整" | |||||
| "MISS" -> "遺失" | |||||
| "BAD" -> "不良品" | |||||
| "TKE" -> "盤點" | |||||
| "OPEN" -> UiText.t("開倉", "Opening") | |||||
| "NOR" -> UiText.t("出入倉", "In/out") | |||||
| "TRF" -> UiText.t("轉倉", "Transfer") | |||||
| "ADJ" -> UiText.t("調整", "Adjustment") | |||||
| "MISS" -> UiText.t("遺失", "Shortage") | |||||
| "BAD" -> UiText.t("不良品", "Damaged") | |||||
| "TKE" -> UiText.t("盤點", "Stock take") | |||||
| else -> raw | else -> raw | ||||
| } | } | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.report.service | package com.ffii.fpsms.modules.report.service | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.core.support.JdbcDao | import com.ffii.core.support.JdbcDao | ||||
| import org.springframework.stereotype.Service | import org.springframework.stereotype.Service | ||||
| import java.time.LocalDate | import java.time.LocalDate | ||||
| @@ -288,7 +290,7 @@ stock_one AS ( | |||||
| mapOf("lotIds" to chunk), | mapOf("lotIds" to chunk), | ||||
| ) | ) | ||||
| n += rows.size | n += rows.size | ||||
| applySilSolHits(rows, hits, "入庫") | |||||
| applySilSolHits(rows, hits, UiText.t("入庫", "Stock in")) | |||||
| } | } | ||||
| return n | return n | ||||
| } | } | ||||
| @@ -310,7 +312,7 @@ stock_one AS ( | |||||
| mapOf("lotIds" to chunk), | mapOf("lotIds" to chunk), | ||||
| ) | ) | ||||
| n += rows.size | n += rows.size | ||||
| applySilSolHits(rows, hits, "入庫") | |||||
| applySilSolHits(rows, hits, UiText.t("入庫", "Stock in")) | |||||
| } | } | ||||
| return n | return n | ||||
| } | } | ||||
| @@ -332,7 +334,7 @@ stock_one AS ( | |||||
| mapOf("lotIds" to chunk), | mapOf("lotIds" to chunk), | ||||
| ) | ) | ||||
| n += rows.size | n += rows.size | ||||
| applySilSolHits(rows, hits, "出庫") | |||||
| applySilSolHits(rows, hits, UiText.t("出庫", "Stock out")) | |||||
| } | } | ||||
| return n | return n | ||||
| } | } | ||||
| @@ -346,16 +348,16 @@ stock_one AS ( | |||||
| val prev = hits[lotId] | val prev = hits[lotId] | ||||
| val newer = prev == null || | val newer = prev == null || | ||||
| ts > prev.ts || | ts > prev.ts || | ||||
| (ts == prev.ts && kind == "出庫" && prev.kind != "出庫") | |||||
| (ts == prev.ts && kind == UiText.t("出庫", "Stock out") && prev.kind != UiText.t("出庫", "Stock out")) | |||||
| if (newer) hits[lotId] = SilSolHit(ts, date, kind) | if (newer) hits[lotId] = SilSolHit(ts, date, kind) | ||||
| } | } | ||||
| } | } | ||||
| private fun lastTrnType(inQty: Double, outQty: Double): String = | private fun lastTrnType(inQty: Double, outQty: Double): String = | ||||
| when { | when { | ||||
| outQty > 0 && inQty <= 0 -> "出庫" | |||||
| inQty > 0 && outQty <= 0 -> "入庫" | |||||
| inQty > 0 && outQty > 0 -> if (outQty >= inQty) "出庫" else "入庫" | |||||
| outQty > 0 && inQty <= 0 -> UiText.t("出庫", "Stock out") | |||||
| inQty > 0 && outQty <= 0 -> UiText.t("入庫", "Stock in") | |||||
| inQty > 0 && outQty > 0 -> if (outQty >= inQty) UiText.t("出庫", "Stock out") else UiText.t("入庫", "Stock in") | |||||
| else -> "" | else -> "" | ||||
| } | } | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.report.service | package com.ffii.fpsms.modules.report.service | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.fpsms.modules.common.demo.DemoFloors | import com.ffii.fpsms.modules.common.demo.DemoFloors | ||||
| import com.ffii.core.support.JdbcDao | import com.ffii.core.support.JdbcDao | ||||
| import org.springframework.stereotype.Service | import org.springframework.stereotype.Service | ||||
| @@ -78,21 +80,36 @@ lot_root_origin AS ( | |||||
| ON root_po.id = root_sil.purchaseOrderId AND root_po.deleted = 0 | ON root_po.id = root_sil.purchaseOrderId AND root_po.deleted = 0 | ||||
| """ | """ | ||||
| private const val LOT_ROOT_CATEGORY_SQL = """ | |||||
| } | |||||
| private fun sqlQuote(label: String) = "'" + label.replace("'", "''") + "'" | |||||
| private fun lotRootCategorySql(): String { | |||||
| val production = sqlQuote(UiText.t("生產", "Production")) | |||||
| val opening = sqlQuote(UiText.t("期初存貨", "Opening stock")) | |||||
| val adjustment = sqlQuote(UiText.t("倉存調整", "Stock adjustment")) | |||||
| val purchase = sqlQuote(UiText.t("採購", "Purchase")) | |||||
| val other = sqlQuote(UiText.t("其他", "Other")) | |||||
| return """ | |||||
| CASE | CASE | ||||
| WHEN root_sil.jobOrderId IS NOT NULL THEN '生產' | |||||
| WHEN UPPER(TRIM(COALESCE(root_sil.type, ''))) = 'OPEN' THEN '期初存貨' | |||||
| WHEN UPPER(TRIM(COALESCE(root_sil.type, ''))) = 'ADJ' THEN '倉存調整' | |||||
| WHEN root_sil.purchaseOrderId IS NOT NULL THEN '採購' | |||||
| ELSE '其他' | |||||
| WHEN root_sil.jobOrderId IS NOT NULL THEN $production | |||||
| WHEN UPPER(TRIM(COALESCE(root_sil.type, ''))) = 'OPEN' THEN $opening | |||||
| WHEN UPPER(TRIM(COALESCE(root_sil.type, ''))) = 'ADJ' THEN $adjustment | |||||
| WHEN root_sil.purchaseOrderId IS NOT NULL THEN $purchase | |||||
| ELSE $other | |||||
| END""" | END""" | ||||
| } | |||||
| private const val LOT_TYPE_DISPLAY_SQL = """ | |||||
| private fun lotTypeDisplaySql(): String { | |||||
| val transfer = sqlQuote(UiText.t("轉倉(原:", "Transfer (from: ")) | |||||
| val close = sqlQuote(UiText.t(")", ")")) | |||||
| val root = lotRootCategorySql() | |||||
| return """ | |||||
| CASE | CASE | ||||
| WHEN UPPER(TRIM(COALESCE(origin_sil.type, ''))) = 'TRF' | WHEN UPPER(TRIM(COALESCE(origin_sil.type, ''))) = 'TRF' | ||||
| OR origin_sil.stockTransferId IS NOT NULL | OR origin_sil.stockTransferId IS NOT NULL | ||||
| THEN CONCAT('轉倉(原:', $LOT_ROOT_CATEGORY_SQL, ')') | |||||
| ELSE $LOT_ROOT_CATEGORY_SQL | |||||
| THEN CONCAT($transfer, $root, $close) | |||||
| ELSE $root | |||||
| END""" | END""" | ||||
| } | } | ||||
| @@ -299,7 +316,7 @@ data AS ( | |||||
| ls.approverStockTakeQty AS stkApproverQty, | ls.approverStockTakeQty AS stkApproverQty, | ||||
| ls.varianceQty AS stkVarianceQty, | ls.varianceQty AS stkVarianceQty, | ||||
| ls.date AS stockTakeDateRaw, | ls.date AS stockTakeDateRaw, | ||||
| $LOT_TYPE_DISPLAY_SQL AS lotTypeRaw | |||||
| ${lotTypeDisplaySql()} AS lotTypeRaw | |||||
| FROM inventory_lot_line ill | FROM inventory_lot_line ill | ||||
| INNER JOIN inventory_lot il | INNER JOIN inventory_lot il | ||||
| ON ill.inventoryLotId = il.id | ON ill.inventoryLotId = il.id | ||||
| @@ -577,7 +594,7 @@ data AS ( | |||||
| ls.strDate AS stockTakeDateRaw, | ls.strDate AS stockTakeDateRaw, | ||||
| ls.approverTime AS approvalDateTimeRaw, | ls.approverTime AS approvalDateTimeRaw, | ||||
| ls.stockTakeRecordStatus AS stockTakeRecordStatus, | ls.stockTakeRecordStatus AS stockTakeRecordStatus, | ||||
| $LOT_TYPE_DISPLAY_SQL AS lotTypeRaw | |||||
| ${lotTypeDisplaySql()} AS lotTypeRaw | |||||
| FROM latest_str ls | FROM latest_str ls | ||||
| INNER JOIN inventory_lot il | INNER JOIN inventory_lot il | ||||
| ON ls.lotId = il.id | ON ls.lotId = il.id | ||||
| @@ -876,7 +893,7 @@ data AS ( | |||||
| lb.strDate AS stockTakeDateRaw, | lb.strDate AS stockTakeDateRaw, | ||||
| lb.approverTime AS approvalDateTimeRaw, | lb.approverTime AS approvalDateTimeRaw, | ||||
| lb.stockTakeRecordStatus AS stockTakeRecordStatus, | lb.stockTakeRecordStatus AS stockTakeRecordStatus, | ||||
| $LOT_TYPE_DISPLAY_SQL AS lotTypeRaw | |||||
| ${lotTypeDisplaySql()} AS lotTypeRaw | |||||
| FROM line_bounds lb | FROM line_bounds lb | ||||
| INNER JOIN inventory_lot_line ill ON ill.id = lb.inventoryLotLineId | INNER JOIN inventory_lot_line ill ON ill.id = lb.inventoryLotLineId | ||||
| INNER JOIN inventory_lot il ON ill.inventoryLotId = il.id AND il.deleted = 0 | INNER JOIN inventory_lot il ON ill.inventoryLotId = il.id AND il.deleted = 0 | ||||
| @@ -962,23 +979,24 @@ ORDER BY | |||||
| /** Overall 模式報表副標題(全系統輪次,舊 API 相容) */ | /** Overall 模式報表副標題(全系統輪次,舊 API 相容) */ | ||||
| fun getStockTakeVarianceOverallCaption(): String = | fun getStockTakeVarianceOverallCaption(): String = | ||||
| "全輪次(各批號/倉別最新已完成盤點)" | |||||
| UiText.t("全輪次(各批號/倉別最新已完成盤點)", "All rounds (latest completed count per lot and location)") | |||||
| /** 多選輪次 Overall 模式報表副標題 */ | /** 多選輪次 Overall 模式報表副標題 */ | ||||
| fun getStockTakeVarianceMultiRoundCaption(stockTakeRoundIds: List<Long>): String { | fun getStockTakeVarianceMultiRoundCaption(stockTakeRoundIds: List<Long>): String { | ||||
| if (stockTakeRoundIds.isEmpty()) return getStockTakeVarianceOverallCaption() | if (stockTakeRoundIds.isEmpty()) return getStockTakeVarianceOverallCaption() | ||||
| val parts = stockTakeRoundIds.map { getStockTakeRoundCaption(it) } | val parts = stockTakeRoundIds.map { getStockTakeRoundCaption(it) } | ||||
| return "已選輪次(各批號/倉別最新已完成盤點):${parts.joinToString(";")}" | |||||
| return UiText.t("已選輪次(各批號/倉別最新已完成盤點):", "Selected rounds (latest completed count per lot and location): ") + parts.joinToString(UiText.t(";", "; ")) | |||||
| } | } | ||||
| /** 報表表頭:盤點輪次說明(與 /report/stock-take-rounds 選項格式一致) */ | /** 報表表頭:盤點輪次說明(與 /report/stock-take-rounds 選項格式一致) */ | ||||
| fun getStockTakeRoundCaption(stockTakeRoundId: Long): String { | fun getStockTakeRoundCaption(stockTakeRoundId: Long): String { | ||||
| val roundLabel = UiText.t("盤點輪次", "Round ").replace("'", "''") | |||||
| val sql = """ | val sql = """ | ||||
| SELECT | SELECT | ||||
| CONCAT( | CONCAT( | ||||
| CASE | CASE | ||||
| WHEN NULLIF(TRIM(MAX(st.stockTakeRoundName)), '') IS NULL | WHEN NULLIF(TRIM(MAX(st.stockTakeRoundName)), '') IS NULL | ||||
| THEN CONCAT('盤點輪次', CAST(st.stockTakeRoundId AS CHAR)) | |||||
| THEN CONCAT('$roundLabel', CAST(st.stockTakeRoundId AS CHAR)) | |||||
| ELSE TRIM(MAX(st.stockTakeRoundName)) | ELSE TRIM(MAX(st.stockTakeRoundName)) | ||||
| END, | END, | ||||
| ' — ', | ' — ', | ||||
| @@ -994,7 +1012,7 @@ ORDER BY | |||||
| mapOf("stockTakeRoundId" to stockTakeRoundId) | mapOf("stockTakeRoundId" to stockTakeRoundId) | ||||
| ).firstOrNull() | ).firstOrNull() | ||||
| val cap = row?.get("cap") as? String | val cap = row?.get("cap") as? String | ||||
| return if (!cap.isNullOrBlank()) cap else "盤點輪次$stockTakeRoundId" | |||||
| return if (!cap.isNullOrBlank()) cap else UiText.t("盤點輪次", "Round ") + stockTakeRoundId | |||||
| } | } | ||||
| /** | /** | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.report.web | package com.ffii.fpsms.modules.report.web | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.fpsms.modules.report.service.DoInventoryUomMismatchReportService | import com.ffii.fpsms.modules.report.service.DoInventoryUomMismatchReportService | ||||
| import org.apache.poi.ss.usermodel.BorderStyle | import org.apache.poi.ss.usermodel.BorderStyle | ||||
| import org.apache.poi.ss.usermodel.FillPatternType | import org.apache.poi.ss.usermodel.FillPatternType | ||||
| @@ -69,17 +71,17 @@ class DoInventoryUomMismatchReportController( | |||||
| } | } | ||||
| val columns = listOf( | val columns = listOf( | ||||
| "deliveryDate" to "預計送貨日期", | |||||
| "doCode" to "送貨單號", | |||||
| "supplierCode" to "供應商編號", | |||||
| "supplierName" to "供應商名稱", | |||||
| "itemCode" to "貨品編號", | |||||
| "itemName" to "貨品名稱", | |||||
| "doQty" to "送貨單數量", | |||||
| "doUom" to "送貨單單位", | |||||
| "mismatchLotNo" to "不符批號", | |||||
| "mismatchLotQty" to "不符批數量", | |||||
| "mismatchLotUom" to "不符批單位", | |||||
| "deliveryDate" to UiText.t("預計送貨日期", "Planned delivery date"), | |||||
| "doCode" to UiText.t("送貨單號", "Delivery note no."), | |||||
| "supplierCode" to UiText.t("供應商編號", "Supplier code"), | |||||
| "supplierName" to UiText.t("供應商名稱", "Supplier name"), | |||||
| "itemCode" to UiText.t("貨品編號", "Item code"), | |||||
| "itemName" to UiText.t("貨品名稱", "Item name"), | |||||
| "doQty" to UiText.t("送貨單數量", "DN qty"), | |||||
| "doUom" to UiText.t("送貨單單位", "DN UOM"), | |||||
| "mismatchLotNo" to UiText.t("不符批號", "Mismatched lot"), | |||||
| "mismatchLotQty" to UiText.t("不符批數量", "Mismatched qty"), | |||||
| "mismatchLotUom" to UiText.t("不符批單位", "Mismatched UOM"), | |||||
| ) | ) | ||||
| var r = 0 | var r = 0 | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.report.web | package com.ffii.fpsms.modules.report.web | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.fpsms.modules.report.service.DoUserPickAuditReportService | import com.ffii.fpsms.modules.report.service.DoUserPickAuditReportService | ||||
| import org.apache.poi.ss.usermodel.BorderStyle | import org.apache.poi.ss.usermodel.BorderStyle | ||||
| import org.apache.poi.ss.usermodel.FillPatternType | import org.apache.poi.ss.usermodel.FillPatternType | ||||
| @@ -52,15 +54,15 @@ class DoUserPickAuditReportController( | |||||
| contentType = MediaType.parseMediaType( | contentType = MediaType.parseMediaType( | ||||
| "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", | ||||
| ) | ) | ||||
| setContentDispositionFormData("attachment", "成品出倉揀貨合規報告.xlsx") | |||||
| set("filename", "成品出倉揀貨合規報告.xlsx") | |||||
| setContentDispositionFormData("attachment", UiText.t("成品出倉揀貨合規報告.xlsx", "FG outbound pick compliance.xlsx")) | |||||
| set("filename", UiText.t("成品出倉揀貨合規報告.xlsx", "FG outbound pick compliance.xlsx")) | |||||
| } | } | ||||
| return ResponseEntity(bytes, headers, HttpStatus.OK) | return ResponseEntity(bytes, headers, HttpStatus.OK) | ||||
| } | } | ||||
| private fun buildExcel(rows: List<Map<String, Any?>>): ByteArray { | private fun buildExcel(rows: List<Map<String, Any?>>): ByteArray { | ||||
| val workbook = XSSFWorkbook() | val workbook = XSSFWorkbook() | ||||
| val sheet = workbook.createSheet(WorkbookUtil.createSafeSheetName("DO揀貨人員稽核")) | |||||
| val sheet = workbook.createSheet(WorkbookUtil.createSafeSheetName(UiText.t("DO揀貨人員稽核", "Delivery pick audit"))) | |||||
| val headerStyle = workbook.createCellStyle().apply { | val headerStyle = workbook.createCellStyle().apply { | ||||
| alignment = HorizontalAlignment.CENTER | alignment = HorizontalAlignment.CENTER | ||||
| verticalAlignment = VerticalAlignment.CENTER | verticalAlignment = VerticalAlignment.CENTER | ||||
| @@ -82,20 +84,20 @@ class DoUserPickAuditReportController( | |||||
| // key = SQL alias; label = Chinese Excel header | // key = SQL alias; label = Chinese Excel header | ||||
| val columns = listOf( | val columns = listOf( | ||||
| "datetime" to "完成時間", | |||||
| "ticketNo" to "提票號碼", | |||||
| "itemCode" to "貨品編號", | |||||
| "itemName" to "貨品名稱", | |||||
| "isEgg" to "是否雞蛋類", | |||||
| "suggestLot" to "建議批號", | |||||
| "actualLot" to "實際批號", | |||||
| "qty" to "所需數量", | |||||
| "actualQty" to "實際提料數量", | |||||
| "lotBeforeQty" to "提料前庫存", | |||||
| "lotAfterQty" to "提料後庫存", | |||||
| "issueJustComplete" to "跳過提料(使用「已完成」)", | |||||
| "user" to "提料人", | |||||
| "issueTypes" to "偏離類型", | |||||
| "datetime" to UiText.t("完成時間", "Completed at"), | |||||
| "ticketNo" to UiText.t("提票號碼", "Ticket no."), | |||||
| "itemCode" to UiText.t("貨品編號", "Item code"), | |||||
| "itemName" to UiText.t("貨品名稱", "Item name"), | |||||
| "isEgg" to UiText.t("是否雞蛋類", "Egg item"), | |||||
| "suggestLot" to UiText.t("建議批號", "Suggested lot"), | |||||
| "actualLot" to UiText.t("實際批號", "Actual lot"), | |||||
| "qty" to UiText.t("所需數量", "Required qty"), | |||||
| "actualQty" to UiText.t("實際提料數量", "Actual pick qty"), | |||||
| "lotBeforeQty" to UiText.t("提料前庫存", "Stock before pick"), | |||||
| "lotAfterQty" to UiText.t("提料後庫存", "Stock after pick"), | |||||
| "issueJustComplete" to UiText.t("跳過提料(使用「已完成」)", "Pick skipped (marked completed)"), | |||||
| "user" to UiText.t("提料人", "Picker"), | |||||
| "issueTypes" to UiText.t("偏離類型", "Deviation type"), | |||||
| ) | ) | ||||
| var r = 0 | var r = 0 | ||||
| @@ -117,12 +119,12 @@ class DoUserPickAuditReportController( | |||||
| null -> cell.setCellValue("") | null -> cell.setCellValue("") | ||||
| is Number -> { | is Number -> { | ||||
| if (key == "issueJustComplete") { | if (key == "issueJustComplete") { | ||||
| cell.setCellValue(if (v.toDouble() != 0.0) "是" else "否") | |||||
| cell.setCellValue(if (v.toDouble() != 0.0) UiText.t("是", "Yes") else UiText.t("否", "No")) | |||||
| } else { | } else { | ||||
| cell.setCellValue(v.toDouble()) | cell.setCellValue(v.toDouble()) | ||||
| } | } | ||||
| } | } | ||||
| is Boolean -> cell.setCellValue(if (v) "是" else "否") | |||||
| is Boolean -> cell.setCellValue(if (v) UiText.t("是", "Yes") else UiText.t("否", "No")) | |||||
| else -> cell.setCellValue(v.toString()) | else -> cell.setCellValue(v.toString()) | ||||
| } | } | ||||
| } | } | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.report.web | package com.ffii.fpsms.modules.report.web | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.fpsms.modules.report.service.FGStockOutTraceabilityReportService | import com.ffii.fpsms.modules.report.service.FGStockOutTraceabilityReportService | ||||
| import com.ffii.fpsms.modules.report.service.ReportService | import com.ffii.fpsms.modules.report.service.ReportService | ||||
| import org.springframework.http.HttpHeaders | import org.springframework.http.HttpHeaders | ||||
| @@ -122,7 +124,7 @@ class FGStockOutTraceabilityReportController( | |||||
| private fun createFGStockOutTraceabilityExcel(dbData: List<Map<String, Any>>): ByteArray { | private fun createFGStockOutTraceabilityExcel(dbData: List<Map<String, Any>>): ByteArray { | ||||
| val workbook = XSSFWorkbook() | val workbook = XSSFWorkbook() | ||||
| val reportTitle = "成品出倉追蹤報告" | |||||
| val reportTitle = UiText.t("成品出倉追蹤報告", "FG outbound traceability report") | |||||
| val safeSheetName = WorkbookUtil.createSafeSheetName(reportTitle) | val safeSheetName = WorkbookUtil.createSafeSheetName(reportTitle) | ||||
| val sheet = workbook.createSheet(safeSheetName) | val sheet = workbook.createSheet(safeSheetName) | ||||
| @@ -172,17 +174,17 @@ class FGStockOutTraceabilityReportController( | |||||
| } | } | ||||
| val headers = listOf( | val headers = listOf( | ||||
| "貨品編號", | |||||
| "貨品名稱", | |||||
| "單位", | |||||
| "出貨單號", | |||||
| "提料單號", | |||||
| "批號", | |||||
| "到期日", | |||||
| "出貨數量", | |||||
| "提料人", | |||||
| "存貨位置", | |||||
| "提料備註", | |||||
| UiText.t("貨品編號", "Item code"), | |||||
| UiText.t("貨品名稱", "Item name"), | |||||
| UiText.t("單位", "UOM"), | |||||
| UiText.t("出貨單號", "Shipment no."), | |||||
| UiText.t("提料單號", "Pick order no."), | |||||
| UiText.t("批號", "Lot no."), | |||||
| UiText.t("到期日", "Expiry date"), | |||||
| UiText.t("出貨數量", "Shipped qty"), | |||||
| UiText.t("提料人", "Picker"), | |||||
| UiText.t("存貨位置", "Stock location"), | |||||
| UiText.t("提料備註", "Pick notes"), | |||||
| ) | ) | ||||
| val titleStyle = workbook.createCellStyle().apply { | val titleStyle = workbook.createCellStyle().apply { | ||||
| @@ -276,7 +278,7 @@ class FGStockOutTraceabilityReportController( | |||||
| } | } | ||||
| } | } | ||||
| summaryRow.createCell(6).apply { | summaryRow.createCell(6).apply { | ||||
| setCellValue("總出倉量 :") | |||||
| setCellValue(UiText.t("總出倉量 :", "Total outbound qty: ")) | |||||
| cellStyle = summaryLabelInExpiryColStyle | cellStyle = summaryLabelInExpiryColStyle | ||||
| } | } | ||||
| summaryRow.createCell(7).apply { | summaryRow.createCell(7).apply { | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.report.web | package com.ffii.fpsms.modules.report.web | ||||
| import com.ffii.core.utils.UiText | |||||
| import org.springframework.http.* | import org.springframework.http.* | ||||
| import org.springframework.web.bind.annotation.* | import org.springframework.web.bind.annotation.* | ||||
| import com.ffii.fpsms.modules.report.service.ItemQcFailReportService | import com.ffii.fpsms.modules.report.service.ItemQcFailReportService | ||||
| @@ -49,15 +51,15 @@ class ItemQcFailReportController( | |||||
| val pdfParts = mutableListOf<ByteArray>() | val pdfParts = mutableListOf<ByteArray>() | ||||
| if (passedRows.isNotEmpty()) { | if (passedRows.isNotEmpty()) { | ||||
| pdfParts.add(createItemQcPdf(stockCategory, itemCode, lastInDateStart, lastInDateEnd, qcType, passedRows, "合格")) | |||||
| pdfParts.add(createItemQcPdf(stockCategory, itemCode, lastInDateStart, lastInDateEnd, qcType, passedRows, UiText.t("合格", "Pass"))) | |||||
| } | } | ||||
| if (failedRows.isNotEmpty()) { | if (failedRows.isNotEmpty()) { | ||||
| pdfParts.add(createItemQcPdf(stockCategory, itemCode, lastInDateStart, lastInDateEnd, qcType, failedRows, "不合格")) | |||||
| pdfParts.add(createItemQcPdf(stockCategory, itemCode, lastInDateStart, lastInDateEnd, qcType, failedRows, UiText.t("不合格", "Fail"))) | |||||
| } | } | ||||
| val pdfBytes = when { | val pdfBytes = when { | ||||
| pdfParts.isEmpty() -> createItemQcPdf( | pdfParts.isEmpty() -> createItemQcPdf( | ||||
| stockCategory, itemCode, lastInDateStart, lastInDateEnd, qcType, emptyList(), "合格" | |||||
| stockCategory, itemCode, lastInDateStart, lastInDateEnd, qcType, emptyList(), UiText.t("合格", "Pass") | |||||
| ) | ) | ||||
| pdfParts.size == 1 -> pdfParts[0] | pdfParts.size == 1 -> pdfParts[0] | ||||
| else -> reportService.mergePdfBytes(pdfParts) | else -> reportService.mergePdfBytes(pdfParts) | ||||
| @@ -154,7 +156,7 @@ class ItemQcFailReportController( | |||||
| return when (qcType?.trim()?.uppercase()) { | return when (qcType?.trim()?.uppercase()) { | ||||
| "IQC" -> "IQC" | "IQC" -> "IQC" | ||||
| "EPQC" -> "EPQC" | "EPQC" -> "EPQC" | ||||
| else -> "全部" | |||||
| else -> UiText.t("全部", "All") | |||||
| } | } | ||||
| } | } | ||||
| @@ -174,8 +176,8 @@ class ItemQcFailReportController( | |||||
| qcType: String?, | qcType: String?, | ||||
| ): ByteArray { | ): ByteArray { | ||||
| val workbook: Workbook = XSSFWorkbook() | val workbook: Workbook = XSSFWorkbook() | ||||
| writeQcSheet(workbook, "合格", passedRows, lastInDateStart, lastInDateEnd, qcType) | |||||
| writeQcSheet(workbook, "不合格", failedRows, lastInDateStart, lastInDateEnd, qcType) | |||||
| writeQcSheet(workbook, UiText.t("合格", "Pass"), passedRows, lastInDateStart, lastInDateEnd, qcType) | |||||
| writeQcSheet(workbook, UiText.t("不合格", "Fail"), failedRows, lastInDateStart, lastInDateEnd, qcType) | |||||
| return workbookToByteArray(workbook) | return workbookToByteArray(workbook) | ||||
| } | } | ||||
| @@ -187,7 +189,7 @@ class ItemQcFailReportController( | |||||
| lastInDateEnd: String?, | lastInDateEnd: String?, | ||||
| qcType: String?, | qcType: String?, | ||||
| ) { | ) { | ||||
| val reportTitle = "庫存品質檢測報告" | |||||
| val reportTitle = UiText.t("庫存品質檢測報告", "Stock QC report") | |||||
| val safeSheetName = WorkbookUtil.createSafeSheetName(sheetLabel) | val safeSheetName = WorkbookUtil.createSafeSheetName(sheetLabel) | ||||
| val sheet = workbook.createSheet(safeSheetName) | val sheet = workbook.createSheet(safeSheetName) | ||||
| @@ -227,7 +229,7 @@ class ItemQcFailReportController( | |||||
| val startTxt = lastInDateStart ?: "" | val startTxt = lastInDateStart ?: "" | ||||
| val endTxt = lastInDateEnd ?: "" | val endTxt = lastInDateEnd ?: "" | ||||
| val qcTypeTxt = resolveQcTypeLabel(qcType) | val qcTypeTxt = resolveQcTypeLabel(qcType) | ||||
| cell.setCellValue("QC 檢測日期: ${startTxt} - ${endTxt} QC 類型: $qcTypeTxt") | |||||
| cell.setCellValue(UiText.t("QC 檢測日期: ", "QC date: ") + (startTxt) + " - " + (endTxt) + UiText.t(" QC 類型: ", " QC type: ") + qcTypeTxt) | |||||
| } | } | ||||
| val headerStyle = workbook.createCellStyle().apply { | val headerStyle = workbook.createCellStyle().apply { | ||||
| @@ -286,20 +288,20 @@ class ItemQcFailReportController( | |||||
| } | } | ||||
| val headers = listOf( | val headers = listOf( | ||||
| "庫存類別", | |||||
| "物料編號", | |||||
| "物料名稱", | |||||
| "單位", | |||||
| "批號", | |||||
| "到期日", | |||||
| "QC 類型", | |||||
| "QC 範本", | |||||
| "檢測標準", | |||||
| "批量", | |||||
| "不合格數量", | |||||
| "實測值", | |||||
| "備註", | |||||
| "訂單/工單", | |||||
| UiText.t("庫存類別", "Stock category"), | |||||
| UiText.t("物料編號", "Material code"), | |||||
| UiText.t("物料名稱", "Material name"), | |||||
| UiText.t("單位", "UOM"), | |||||
| UiText.t("批號", "Lot no."), | |||||
| UiText.t("到期日", "Expiry date"), | |||||
| UiText.t("QC 類型", "QC type"), | |||||
| UiText.t("QC 範本", "QC template"), | |||||
| UiText.t("檢測標準", "QC standard"), | |||||
| UiText.t("批量", "Lot qty"), | |||||
| UiText.t("不合格數量", "Fail qty"), | |||||
| UiText.t("實測值", "Measured value"), | |||||
| UiText.t("備註", "Notes"), | |||||
| UiText.t("訂單/工單", "Order / job order"), | |||||
| ) | ) | ||||
| run { | run { | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.report.web | package com.ffii.fpsms.modules.report.web | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.fpsms.modules.report.service.MaterialStockOutTraceabilityReportService | import com.ffii.fpsms.modules.report.service.MaterialStockOutTraceabilityReportService | ||||
| import com.ffii.fpsms.modules.report.service.ReportService | import com.ffii.fpsms.modules.report.service.ReportService | ||||
| import org.springframework.http.HttpHeaders | import org.springframework.http.HttpHeaders | ||||
| @@ -207,7 +209,7 @@ class MaterialStockOutTraceabilityReportController( | |||||
| lastOutDateEnd: String?, | lastOutDateEnd: String?, | ||||
| ): ByteArray { | ): ByteArray { | ||||
| val workbook = XSSFWorkbook() | val workbook = XSSFWorkbook() | ||||
| val reportTitle = "物料出倉追蹤報告" | |||||
| val reportTitle = UiText.t("物料出倉追蹤報告", "Material outbound traceability report") | |||||
| val safeSheetName = WorkbookUtil.createSafeSheetName(reportTitle) | val safeSheetName = WorkbookUtil.createSafeSheetName(reportTitle) | ||||
| val sheet = workbook.createSheet(safeSheetName) | val sheet = workbook.createSheet(safeSheetName) | ||||
| @@ -257,17 +259,17 @@ class MaterialStockOutTraceabilityReportController( | |||||
| } | } | ||||
| val headers = listOf( | val headers = listOf( | ||||
| "貨品編號", | |||||
| "貨品名稱", | |||||
| "單位", | |||||
| "工單編號", | |||||
| "提料單號", | |||||
| "批號", | |||||
| "到期日", | |||||
| "出貨數量", | |||||
| "提料人", | |||||
| "存貨位置", | |||||
| "提料備註", | |||||
| UiText.t("貨品編號", "Item code"), | |||||
| UiText.t("貨品名稱", "Item name"), | |||||
| UiText.t("單位", "UOM"), | |||||
| UiText.t("工單編號", "Job order no."), | |||||
| UiText.t("提料單號", "Pick order no."), | |||||
| UiText.t("批號", "Lot no."), | |||||
| UiText.t("到期日", "Expiry date"), | |||||
| UiText.t("出貨數量", "Shipped qty"), | |||||
| UiText.t("提料人", "Picker"), | |||||
| UiText.t("存貨位置", "Stock location"), | |||||
| UiText.t("提料備註", "Pick notes"), | |||||
| ) | ) | ||||
| // Header row | // Header row | ||||
| @@ -328,7 +330,7 @@ class MaterialStockOutTraceabilityReportController( | |||||
| } | } | ||||
| } | } | ||||
| summaryRow.createCell(6).apply { | summaryRow.createCell(6).apply { | ||||
| setCellValue("總出倉量 :") | |||||
| setCellValue(UiText.t("總出倉量 :", "Total outbound qty: ")) | |||||
| cellStyle = summaryLabelInExpiryColStyle | cellStyle = summaryLabelInExpiryColStyle | ||||
| } | } | ||||
| summaryRow.createCell(7).apply { | summaryRow.createCell(7).apply { | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.report.web | package com.ffii.fpsms.modules.report.web | ||||
| import com.ffii.core.utils.UiText | |||||
| import net.sf.jasperreports.engine.* | import net.sf.jasperreports.engine.* | ||||
| import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource | import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource | ||||
| import org.apache.poi.ss.usermodel.BorderStyle | import org.apache.poi.ss.usermodel.BorderStyle | ||||
| @@ -788,15 +790,15 @@ class ReportController( | |||||
| ): ByteArray { | ): ByteArray { | ||||
| val workbook = XSSFWorkbook() | val workbook = XSSFWorkbook() | ||||
| val styles = createCommonWorkbookStyles(workbook) | val styles = createCommonWorkbookStyles(workbook) | ||||
| val reportTitle = "入倉追蹤報告" | |||||
| val reportTitle = UiText.t("入倉追蹤報告", "Stock-in traceability report") | |||||
| val sheet = workbook.createSheet(WorkbookUtil.createSafeSheetName(reportTitle)) | val sheet = workbook.createSheet(WorkbookUtil.createSafeSheetName(reportTitle)) | ||||
| val headers = listOf( | val headers = listOf( | ||||
| "貨品編號", "貨品名稱", "單位", | |||||
| "送貨單編號", "批號", "到期日", | |||||
| "上架數量", "入庫檢查樣品數量", "入庫檢查缺陷數量", | |||||
| "入庫檢查缺陷百分比", "入庫檢查結果", "入庫檢查備註", | |||||
| "存貨位置", "供應商名稱", | |||||
| UiText.t("貨品編號", "Item code"), UiText.t("貨品名稱", "Item name"), UiText.t("單位", "UOM"), | |||||
| UiText.t("送貨單編號", "Delivery note no."), UiText.t("批號", "Lot no."), UiText.t("到期日", "Expiry date"), | |||||
| UiText.t("上架數量", "Put-away qty"), UiText.t("入庫檢查樣品數量", "Stock-in check sample qty"), UiText.t("入庫檢查缺陷數量", "Stock-in check defect qty"), | |||||
| UiText.t("入庫檢查缺陷百分比", "Stock-in check defect %"), UiText.t("入庫檢查結果", "Stock-in check result"), UiText.t("入庫檢查備註", "Stock-in check notes"), | |||||
| UiText.t("存貨位置", "Stock location"), UiText.t("供應商名稱", "Supplier name"), | |||||
| ) | ) | ||||
| val totalColumns = headers.size | val totalColumns = headers.size | ||||
| var rowIndex = 0 | var rowIndex = 0 | ||||
| @@ -815,13 +817,13 @@ class ReportController( | |||||
| ")" | ")" | ||||
| val subtitleRow = sheet.createRow(rowIndex++) | val subtitleRow = sheet.createRow(rowIndex++) | ||||
| subtitleRow.createCell(0).apply { | subtitleRow.createCell(0).apply { | ||||
| setCellValue("報告日期:$reportDateTime") | |||||
| setCellValue(UiText.t("報告日期:", "Report date: ") + reportDateTime) | |||||
| cellStyle = styles.subtitle | cellStyle = styles.subtitle | ||||
| } | } | ||||
| sheet.addMergedRegion(CellRangeAddress(1, 1, 0, 5)) | sheet.addMergedRegion(CellRangeAddress(1, 1, 0, 5)) | ||||
| subtitleRow.createCell(6).apply { | subtitleRow.createCell(6).apply { | ||||
| val cap = (lastInDateStart.trim().ifBlank { "" }) + " 至 " + (lastInDateEnd.trim().ifBlank { "" }) | |||||
| setCellValue("最後入倉日期:${cap.trim()}") | |||||
| val cap = (lastInDateStart.trim().ifBlank { "" }) + UiText.t(" 至 ", " to ") + (lastInDateEnd.trim().ifBlank { "" }) | |||||
| setCellValue(UiText.t("最後入倉日期:", "Last stock-in date: ") + (cap.trim())) | |||||
| cellStyle = styles.subtitle | cellStyle = styles.subtitle | ||||
| } | } | ||||
| sheet.addMergedRegion(CellRangeAddress(1, 1, 6, totalColumns - 1)) | sheet.addMergedRegion(CellRangeAddress(1, 1, 6, totalColumns - 1)) | ||||
| @@ -855,7 +857,7 @@ class ReportController( | |||||
| // - 上架數量 (col 6) | // - 上架數量 (col 6) | ||||
| // - 入庫檢查樣品數量 (col 7) | // - 入庫檢查樣品數量 (col 7) | ||||
| // - 入庫檢查缺陷數量 (col 8) | // - 入庫檢查缺陷數量 (col 8) | ||||
| r.getCell(5).apply { setCellValue("合計:"); cellStyle = styles.sumLabel } | |||||
| r.getCell(5).apply { setCellValue(UiText.t("合計:", "Total: ")); cellStyle = styles.sumLabel } | |||||
| setNumberCellFromFormatted(r, 6, totalStockIn, styles.sumQty, styles.dash, preferInt = false) | setNumberCellFromFormatted(r, 6, totalStockIn, styles.sumQty, styles.dash, preferInt = false) | ||||
| setNumberCellFromFormatted(r, 7, _totalSample, styles.sumQty, styles.dash, preferInt = false) | setNumberCellFromFormatted(r, 7, _totalSample, styles.sumQty, styles.dash, preferInt = false) | ||||
| setNumberCellFromFormatted(r, 8, _totalDefect, styles.sumQty, styles.dash, preferInt = false) | setNumberCellFromFormatted(r, 8, _totalDefect, styles.sumQty, styles.dash, preferInt = false) | ||||
| @@ -944,12 +946,12 @@ class ReportController( | |||||
| ): ByteArray { | ): ByteArray { | ||||
| val workbook = XSSFWorkbook() | val workbook = XSSFWorkbook() | ||||
| val styles = createCommonWorkbookStyles(workbook) | val styles = createCommonWorkbookStyles(workbook) | ||||
| val reportTitle = "成品出倉報告" | |||||
| val reportTitle = UiText.t("成品出倉報告", "Finished goods outbound report") | |||||
| val sheet = workbook.createSheet(WorkbookUtil.createSafeSheetName(reportTitle)) | val sheet = workbook.createSheet(WorkbookUtil.createSafeSheetName(reportTitle)) | ||||
| val headers = listOf( | val headers = listOf( | ||||
| "貨品編號", "貨品名稱", "單位", | |||||
| "送貨日期", "DN編號", "送貨訂單編號", "門店名稱", "數量", "貨車", | |||||
| UiText.t("貨品編號", "Item code"), UiText.t("貨品名稱", "Item name"), UiText.t("單位", "UOM"), | |||||
| UiText.t("送貨日期", "Delivery date"), UiText.t("DN編號", "DN no."), UiText.t("送貨訂單編號", "Delivery order no."), UiText.t("門店名稱", "Shop name"), UiText.t("數量", "Qty"), UiText.t("貨車", "Truck"), | |||||
| ) | ) | ||||
| val totalColumns = headers.size | val totalColumns = headers.size | ||||
| var rowIndex = 0 | var rowIndex = 0 | ||||
| @@ -968,17 +970,17 @@ class ReportController( | |||||
| ")" | ")" | ||||
| val subtitleRow = sheet.createRow(rowIndex++) | val subtitleRow = sheet.createRow(rowIndex++) | ||||
| subtitleRow.createCell(0).apply { | subtitleRow.createCell(0).apply { | ||||
| setCellValue("報告日期:$reportDateTime") | |||||
| setCellValue(UiText.t("報告日期:", "Report date: ") + reportDateTime) | |||||
| cellStyle = styles.subtitle | cellStyle = styles.subtitle | ||||
| } | } | ||||
| sheet.addMergedRegion(CellRangeAddress(1, 1, 0, 2)) | sheet.addMergedRegion(CellRangeAddress(1, 1, 0, 2)) | ||||
| subtitleRow.createCell(3).apply { | subtitleRow.createCell(3).apply { | ||||
| setCellValue("成品出倉日期:${lastOutDateStart.trim()} 至 ${lastOutDateEnd.trim()}") | |||||
| setCellValue(UiText.t("成品出倉日期:", "FG outbound date: ") + (lastOutDateStart.trim()) + UiText.t(" 至 ", " to ") + (lastOutDateEnd.trim())) | |||||
| cellStyle = styles.subtitle | cellStyle = styles.subtitle | ||||
| } | } | ||||
| sheet.addMergedRegion(CellRangeAddress(1, 1, 3, 6)) | sheet.addMergedRegion(CellRangeAddress(1, 1, 3, 6)) | ||||
| subtitleRow.createCell(7).apply { | subtitleRow.createCell(7).apply { | ||||
| setCellValue("年份:$year") | |||||
| setCellValue(UiText.t("年份:", "Year: ") + year) | |||||
| cellStyle = styles.subtitle | cellStyle = styles.subtitle | ||||
| } | } | ||||
| sheet.addMergedRegion(CellRangeAddress(1, 1, 7, totalColumns - 1)) | sheet.addMergedRegion(CellRangeAddress(1, 1, 7, totalColumns - 1)) | ||||
| @@ -1008,7 +1010,7 @@ class ReportController( | |||||
| } | } | ||||
| } | } | ||||
| r.getCell(6).apply { | r.getCell(6).apply { | ||||
| setCellValue("每單交貨總數:") | |||||
| setCellValue(UiText.t("每單交貨總數:", "Delivery total: ")) | |||||
| cellStyle = styles.sumLabel | cellStyle = styles.sumLabel | ||||
| } | } | ||||
| r.getCell(7).apply { | r.getCell(7).apply { | ||||
| @@ -1078,14 +1080,14 @@ class ReportController( | |||||
| ): ByteArray { | ): ByteArray { | ||||
| val workbook = XSSFWorkbook() | val workbook = XSSFWorkbook() | ||||
| val styles = createCommonWorkbookStyles(workbook) | val styles = createCommonWorkbookStyles(workbook) | ||||
| val reportTitle = "庫存結餘報告" | |||||
| val reportTitle = UiText.t("庫存結餘報告", "Stock balance report") | |||||
| val sheet = workbook.createSheet(WorkbookUtil.createSafeSheetName(reportTitle)) | val sheet = workbook.createSheet(WorkbookUtil.createSafeSheetName(reportTitle)) | ||||
| val headers = listOf( | val headers = listOf( | ||||
| "貨品編號", "貨品名稱", "單位", | |||||
| "期初存量", "纍計存入量", "纍計存出量", | |||||
| "錯誤輸入或遺失", "盤盈虧", "不良品棄置", | |||||
| "現存存貨", "單位均價", "庫存總價值", | |||||
| UiText.t("貨品編號", "Item code"), UiText.t("貨品名稱", "Item name"), UiText.t("單位", "UOM"), | |||||
| UiText.t("期初存量", "Opening qty"), UiText.t("纍計存入量", "Cumulative stock in"), UiText.t("纍計存出量", "Cumulative stock out"), | |||||
| UiText.t("錯誤輸入或遺失", "Mis-entry or loss"), UiText.t("盤盈虧", "Variance"), UiText.t("不良品棄置", "Damaged disposal"), | |||||
| UiText.t("現存存貨", "On hand"), UiText.t("單位均價", "Avg unit price"), UiText.t("庫存總價值", "Total stock value"), | |||||
| ) | ) | ||||
| val totalColumns = headers.size | val totalColumns = headers.size | ||||
| var rowIndex = 0 | var rowIndex = 0 | ||||
| @@ -1104,7 +1106,7 @@ class ReportController( | |||||
| ")" | ")" | ||||
| val subtitleRow = sheet.createRow(rowIndex++) | val subtitleRow = sheet.createRow(rowIndex++) | ||||
| subtitleRow.createCell(0).apply { | subtitleRow.createCell(0).apply { | ||||
| setCellValue("報告日期:$reportDateTime") | |||||
| setCellValue(UiText.t("報告日期:", "Report date: ") + reportDateTime) | |||||
| cellStyle = styles.subtitle | cellStyle = styles.subtitle | ||||
| } | } | ||||
| sheet.addMergedRegion(CellRangeAddress(1, 1, 0, totalColumns - 1)) | sheet.addMergedRegion(CellRangeAddress(1, 1, 0, totalColumns - 1)) | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.report.web | package com.ffii.fpsms.modules.report.web | ||||
| import com.ffii.core.utils.UiText | |||||
| import net.sf.jasperreports.engine.* | import net.sf.jasperreports.engine.* | ||||
| import org.springframework.http.* | import org.springframework.http.* | ||||
| import org.springframework.web.bind.annotation.* | import org.springframework.web.bind.annotation.* | ||||
| @@ -160,7 +162,7 @@ class SemiFGProductionAnalysisReportController( | |||||
| val excelBytes = createSemiFGProductionAnalysisExcel( | val excelBytes = createSemiFGProductionAnalysisExcel( | ||||
| dbData = dbData, | dbData = dbData, | ||||
| reportTitle = "成品/半成品生產分析報告", | |||||
| reportTitle = UiText.t("成品/半成品生產分析報告", "Finished / semi-finished production report"), | |||||
| year = year | year = year | ||||
| ) | ) | ||||
| @@ -249,13 +251,13 @@ class SemiFGProductionAnalysisReportController( | |||||
| val infoRow = sheet.createRow(rowIndex++) | val infoRow = sheet.createRow(rowIndex++) | ||||
| val reportDateCell = infoRow.createCell(0) | val reportDateCell = infoRow.createCell(0) | ||||
| reportDateCell.setCellValue("報告日期:${LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))}") | |||||
| reportDateCell.setCellValue(UiText.t("報告日期:", "Report date: ") + (LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")))) | |||||
| reportDateCell.cellStyle = infoStyle | reportDateCell.cellStyle = infoStyle | ||||
| val reportTimeCell = infoRow.createCell(6) | val reportTimeCell = infoRow.createCell(6) | ||||
| reportTimeCell.setCellValue("報告時間:${LocalTime.now().format(DateTimeFormatter.ofPattern("HH:mm:ss"))}") | |||||
| reportTimeCell.setCellValue(UiText.t("報告時間:", "Report time: ") + (LocalTime.now().format(DateTimeFormatter.ofPattern("HH:mm:ss")))) | |||||
| reportTimeCell.cellStyle = infoStyle | reportTimeCell.cellStyle = infoStyle | ||||
| val reportYearCell = infoRow.createCell(11) | val reportYearCell = infoRow.createCell(11) | ||||
| reportYearCell.setCellValue("年份:${year?.takeIf { it.isNotBlank() && it != "All" } ?: "All"}") | |||||
| reportYearCell.setCellValue(UiText.t("年份:", "Year: ") + (year?.takeIf { it.isNotBlank() && it != "All" } ?: "All")) | |||||
| reportYearCell.cellStyle = infoStyle | reportYearCell.cellStyle = infoStyle | ||||
| sheet.addMergedRegion(CellRangeAddress(1, 1, 0, 5)) | sheet.addMergedRegion(CellRangeAddress(1, 1, 0, 5)) | ||||
| sheet.addMergedRegion(CellRangeAddress(1, 1, 6, 10)) | sheet.addMergedRegion(CellRangeAddress(1, 1, 6, 10)) | ||||
| @@ -264,22 +266,22 @@ class SemiFGProductionAnalysisReportController( | |||||
| rowIndex++ // spacer row | rowIndex++ // spacer row | ||||
| val headers = listOf( | val headers = listOf( | ||||
| "貨品編號", | |||||
| "貨品名稱", | |||||
| "單位", | |||||
| "一月", | |||||
| "二月", | |||||
| "三月", | |||||
| "四月", | |||||
| "五月", | |||||
| "六月", | |||||
| "七月", | |||||
| "八月", | |||||
| "九月", | |||||
| "十月", | |||||
| "十一月", | |||||
| "十二月", | |||||
| "上架總計" | |||||
| UiText.t("貨品編號", "Item code"), | |||||
| UiText.t("貨品名稱", "Item name"), | |||||
| UiText.t("單位", "UOM"), | |||||
| UiText.t("一月", "Jan"), | |||||
| UiText.t("二月", "Feb"), | |||||
| UiText.t("三月", "Mar"), | |||||
| UiText.t("四月", "Apr"), | |||||
| UiText.t("五月", "May"), | |||||
| UiText.t("六月", "Jun"), | |||||
| UiText.t("七月", "Jul"), | |||||
| UiText.t("八月", "Aug"), | |||||
| UiText.t("九月", "Sep"), | |||||
| UiText.t("十月", "Oct"), | |||||
| UiText.t("十一月", "Nov"), | |||||
| UiText.t("十二月", "Dec"), | |||||
| UiText.t("上架總計", "Put-away total") | |||||
| ) | ) | ||||
| val headerRow = sheet.createRow(rowIndex++) | val headerRow = sheet.createRow(rowIndex++) | ||||
| @@ -341,15 +343,15 @@ class SemiFGProductionAnalysisReportController( | |||||
| "qtyJul", "qtyAug", "qtySep", "qtyOct", "qtyNov", "qtyDec", | "qtyJul", "qtyAug", "qtySep", "qtyOct", "qtyNov", "qtyDec", | ||||
| ) | ) | ||||
| val monthLabels = listOf( | val monthLabels = listOf( | ||||
| "一月", "二月", "三月", "四月", "五月", "六月", | |||||
| "七月", "八月", "九月", "十月", "十一月", "十二月", | |||||
| UiText.t("一月", "Jan"), UiText.t("二月", "Feb"), UiText.t("三月", "Mar"), UiText.t("四月", "Apr"), UiText.t("五月", "May"), UiText.t("六月", "Jun"), | |||||
| UiText.t("七月", "Jul"), UiText.t("八月", "Aug"), UiText.t("九月", "Sep"), UiText.t("十月", "Oct"), UiText.t("十一月", "Nov"), UiText.t("十二月", "Dec"), | |||||
| ) | ) | ||||
| val dataSheetName = WorkbookUtil.createSafeSheetName("圖表數據") | |||||
| val dataSheetName = WorkbookUtil.createSafeSheetName(UiText.t("圖表數據", "Chart data")) | |||||
| val dataSheet = workbook.createSheet(dataSheetName) | val dataSheet = workbook.createSheet(dataSheetName) | ||||
| val headerRow = dataSheet.createRow(0) | val headerRow = dataSheet.createRow(0) | ||||
| headerRow.createCell(0).setCellValue("貨品編號") | |||||
| headerRow.createCell(0).setCellValue(UiText.t("貨品編號", "Item code")) | |||||
| monthLabels.forEachIndexed { i, label -> | monthLabels.forEachIndexed { i, label -> | ||||
| headerRow.createCell(1 + i).setCellValue(label) | headerRow.createCell(1 + i).setCellValue(label) | ||||
| } | } | ||||
| @@ -364,7 +366,7 @@ class SemiFGProductionAnalysisReportController( | |||||
| val zColIndex = CellReference.convertColStringToIndex("Z") | val zColIndex = CellReference.convertColStringToIndex("Z") | ||||
| val zHeader = dataSheet.getRow(0) ?: dataSheet.createRow(0) | val zHeader = dataSheet.getRow(0) ?: dataSheet.createRow(0) | ||||
| zHeader.createCell(zColIndex).setCellValue("全部") | |||||
| zHeader.createCell(zColIndex).setCellValue(UiText.t("全部", "All")) | |||||
| dbData.forEachIndexed { idx, row -> | dbData.forEachIndexed { idx, row -> | ||||
| val r = dataSheet.getRow(1 + idx) ?: dataSheet.createRow(1 + idx) | val r = dataSheet.getRow(1 + idx) ?: dataSheet.createRow(1 + idx) | ||||
| r.createCell(zColIndex).setCellValue(row["itemNo"]?.toString() ?: "") | r.createCell(zColIndex).setCellValue(row["itemNo"]?.toString() ?: "") | ||||
| @@ -373,14 +375,14 @@ class SemiFGProductionAnalysisReportController( | |||||
| val lastDataRow1Based = 1 + dbData.size | val lastDataRow1Based = 1 + dbData.size | ||||
| val zListEnd1Based = 1 + dbData.size | val zListEnd1Based = 1 + dbData.size | ||||
| val chartSheetName = WorkbookUtil.createSafeSheetName("生產圖表") | |||||
| val chartSheetName = WorkbookUtil.createSafeSheetName(UiText.t("生產圖表", "Production chart")) | |||||
| val chartSheet = workbook.createSheet(chartSheetName) | val chartSheet = workbook.createSheet(chartSheetName) | ||||
| val labelR = chartSheet.createRow(0) | val labelR = chartSheet.createRow(0) | ||||
| labelR.createCell(0).setCellValue("選擇貨品編號") | |||||
| labelR.createCell(0).setCellValue(UiText.t("選擇貨品編號", "Select item code")) | |||||
| val filterCell = labelR.createCell(1) | val filterCell = labelR.createCell(1) | ||||
| val defaultItemNo = dbData.firstOrNull()?.get("itemNo")?.toString()?.trim() | val defaultItemNo = dbData.firstOrNull()?.get("itemNo")?.toString()?.trim() | ||||
| filterCell.setCellValue(defaultItemNo?.takeIf { it.isNotBlank() } ?: "全部") | |||||
| filterCell.setCellValue(defaultItemNo?.takeIf { it.isNotBlank() } ?: UiText.t("全部", "All")) | |||||
| val dvHelper: DataValidationHelper = chartSheet.dataValidationHelper | val dvHelper: DataValidationHelper = chartSheet.dataValidationHelper | ||||
| val listFormula = "'$dataSheetName'!\$Z\$1:\$Z\$$zListEnd1Based" | val listFormula = "'$dataSheetName'!\$Z\$1:\$Z\$$zListEnd1Based" | ||||
| @@ -388,9 +390,9 @@ class SemiFGProductionAnalysisReportController( | |||||
| val regions = CellRangeAddressList(0, 0, 1, 1) | val regions = CellRangeAddressList(0, 0, 1, 1) | ||||
| val validation = dvHelper.createValidation(constraint, regions) | val validation = dvHelper.createValidation(constraint, regions) | ||||
| validation.showErrorBox = true | validation.showErrorBox = true | ||||
| validation.createErrorBox("無效選擇", "請從清單中選擇貨品編號或「全部」。") | |||||
| validation.createErrorBox(UiText.t("無效選擇", "Invalid choice"), UiText.t("請從清單中選擇貨品編號或「全部」。", "Choose an item code from the list, or All.")) | |||||
| validation.showPromptBox = true | validation.showPromptBox = true | ||||
| validation.createPromptBox("篩選", "選擇貨品編號檢視該品項各月數量;選擇「全部」顯示所有品項加總。") | |||||
| validation.createPromptBox(UiText.t("篩選", "Filter"), UiText.t("選擇貨品編號檢視該品項各月數量;選擇「全部」顯示所有品項加總。", "Select an item code to see monthly quantities, or All for the total of every item.")) | |||||
| chartSheet.addValidationData(validation) | chartSheet.addValidationData(validation) | ||||
| val catRowIndex = 3 | val catRowIndex = 3 | ||||
| @@ -406,26 +408,26 @@ class SemiFGProductionAnalysisReportController( | |||||
| val formula = if (lastDataRow1Based < 2) { | val formula = if (lastDataRow1Based < 2) { | ||||
| "0" | "0" | ||||
| } else { | } else { | ||||
| "IF(TRIM(\$B\$1)=\"全部\",SUM('$dataSheetName'!$colLetter\$2:$colLetter\$$lastDataRow1Based),IFERROR(INDEX('$dataSheetName'!$colLetter\$2:$colLetter\$$lastDataRow1Based,MATCH(TRIM(\$B\$1),'$dataSheetName'!\$A\$2:\$A\$$lastDataRow1Based,0)),0))" | |||||
| "IF(TRIM(\$B\$1)=\"${UiText.t("全部", "All")}\",SUM('$dataSheetName'!$colLetter\$2:$colLetter\$$lastDataRow1Based),IFERROR(INDEX('$dataSheetName'!$colLetter\$2:$colLetter\$$lastDataRow1Based,MATCH(TRIM(\$B\$1),'$dataSheetName'!\$A\$2:\$A\$$lastDataRow1Based,0)),0))" | |||||
| } | } | ||||
| valRow.createCell(firstMonthCol + i).setCellFormula(formula) | valRow.createCell(firstMonthCol + i).setCellFormula(formula) | ||||
| } | } | ||||
| catRow.createCell(lastMonthCol + 1).setCellValue("總和") | |||||
| catRow.createCell(lastMonthCol + 1).setCellValue(UiText.t("總和", "Total")) | |||||
| valRow.createCell(lastMonthCol + 1).setCellFormula("SUM(B5:M5)") | valRow.createCell(lastMonthCol + 1).setCellFormula("SUM(B5:M5)") | ||||
| val drawing = chartSheet.createDrawingPatriarch() | val drawing = chartSheet.createDrawingPatriarch() | ||||
| val anchor = XSSFClientAnchor(0, 0, 0, 0, 1, 6, 14, 28) | val anchor = XSSFClientAnchor(0, 0, 0, 0, 1, 6, 14, 28) | ||||
| val chart = drawing.createChart(anchor) | val chart = drawing.createChart(anchor) | ||||
| chart.setTitleText("各月生產數量(依選擇之貨品編號)") | |||||
| chart.setTitleText(UiText.t("各月生產數量(依選擇之貨品編號)", "Monthly production quantity (selected item)")) | |||||
| chart.setTitleOverlay(false) | chart.setTitleOverlay(false) | ||||
| val legend = chart.getOrAddLegend() | val legend = chart.getOrAddLegend() | ||||
| legend.position = LegendPosition.BOTTOM | legend.position = LegendPosition.BOTTOM | ||||
| val bottomAxis = chart.createCategoryAxis(AxisPosition.BOTTOM) | val bottomAxis = chart.createCategoryAxis(AxisPosition.BOTTOM) | ||||
| bottomAxis.setTitle("月份") | |||||
| bottomAxis.setTitle(UiText.t("月份", "Month")) | |||||
| val leftAxis = chart.createValueAxis(AxisPosition.LEFT) | val leftAxis = chart.createValueAxis(AxisPosition.LEFT) | ||||
| leftAxis.setTitle("生產數量") | |||||
| leftAxis.setTitle(UiText.t("生產數量", "Production qty")) | |||||
| val catRangeAddr = CellRangeAddress(catRowIndex, catRowIndex, firstMonthCol, lastMonthCol) | val catRangeAddr = CellRangeAddress(catRowIndex, catRowIndex, firstMonthCol, lastMonthCol) | ||||
| val valRangeAddr = CellRangeAddress(valRowIndex, valRowIndex, firstMonthCol, lastMonthCol) | val valRangeAddr = CellRangeAddress(valRowIndex, valRowIndex, firstMonthCol, lastMonthCol) | ||||
| @@ -435,7 +437,7 @@ class SemiFGProductionAnalysisReportController( | |||||
| val barData = chart.createData(ChartTypes.BAR, bottomAxis, leftAxis) as XDDFBarChartData | val barData = chart.createData(ChartTypes.BAR, bottomAxis, leftAxis) as XDDFBarChartData | ||||
| barData.barDirection = BarDirection.COL | barData.barDirection = BarDirection.COL | ||||
| val series = barData.addSeries(categories, values) | val series = barData.addSeries(categories, values) | ||||
| series.setTitle("生產數量", null) | |||||
| series.setTitle(UiText.t("生產數量", "Production qty"), null) | |||||
| chart.plot(barData) | chart.plot(barData) | ||||
| chartSheet.setColumnWidth(0, 18 * 256) | chartSheet.setColumnWidth(0, 18 * 256) | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.report.web | package com.ffii.fpsms.modules.report.web | ||||
| import com.ffii.core.utils.UiText | |||||
| import net.sf.jasperreports.engine.* | import net.sf.jasperreports.engine.* | ||||
| import org.springframework.http.* | import org.springframework.http.* | ||||
| import org.springframework.web.bind.annotation.* | import org.springframework.web.bind.annotation.* | ||||
| @@ -155,7 +157,7 @@ class StockItemConsumptionTrendReportController( | |||||
| val excelBytes = createStockItemConsumptionTrendExcel( | val excelBytes = createStockItemConsumptionTrendExcel( | ||||
| dbData = dbData, | dbData = dbData, | ||||
| reportTitle = "庫存材料消耗趨勢報告", | |||||
| reportTitle = UiText.t("庫存材料消耗趨勢報告", "Material consumption trend report"), | |||||
| year = year, | year = year, | ||||
| lastOutDateStart = lastOutDateStart, | lastOutDateStart = lastOutDateStart, | ||||
| lastOutDateEnd = lastOutDateEnd | lastOutDateEnd = lastOutDateEnd | ||||
| @@ -261,17 +263,17 @@ class StockItemConsumptionTrendReportController( | |||||
| val infoRow = sheet.createRow(rowIndex++) | val infoRow = sheet.createRow(rowIndex++) | ||||
| val reportDateCell = infoRow.createCell(0) | val reportDateCell = infoRow.createCell(0) | ||||
| reportDateCell.setCellValue( | reportDateCell.setCellValue( | ||||
| "報告日期:${LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))}" | |||||
| UiText.t("報告日期:", "Report date: ") + (LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))) | |||||
| ) | ) | ||||
| reportDateCell.cellStyle = infoStyle | reportDateCell.cellStyle = infoStyle | ||||
| val reportTimeCell = infoRow.createCell(6) | val reportTimeCell = infoRow.createCell(6) | ||||
| reportTimeCell.setCellValue("報告時間:${LocalTime.now().format(DateTimeFormatter.ofPattern("HH:mm:ss"))}") | |||||
| reportTimeCell.setCellValue(UiText.t("報告時間:", "Report time: ") + (LocalTime.now().format(DateTimeFormatter.ofPattern("HH:mm:ss")))) | |||||
| reportTimeCell.cellStyle = infoStyle | reportTimeCell.cellStyle = infoStyle | ||||
| val reportYearCell = infoRow.createCell(11) | val reportYearCell = infoRow.createCell(11) | ||||
| reportYearCell.setCellValue( | reportYearCell.setCellValue( | ||||
| "年份:${year?.takeIf { it.isNotBlank() && it != "All" } ?: "All"}" | |||||
| UiText.t("年份:", "Year: ") + (year?.takeIf { it.isNotBlank() && it != "All" } ?: "All") | |||||
| ) | ) | ||||
| reportYearCell.cellStyle = infoStyle | reportYearCell.cellStyle = infoStyle | ||||
| @@ -285,9 +287,9 @@ class StockItemConsumptionTrendReportController( | |||||
| rangeRow.heightInPoints = 20f | rangeRow.heightInPoints = 20f | ||||
| val rangeCell = rangeRow.createCell(0) | val rangeCell = rangeRow.createCell(0) | ||||
| val rangeText = buildString { | val rangeText = buildString { | ||||
| append("材料消耗日期:") | |||||
| append(UiText.t("材料消耗日期:", "Consumption date: ")) | |||||
| append(lastOutDateStart ?: "") | append(lastOutDateStart ?: "") | ||||
| append(" 至 ") | |||||
| append(UiText.t(" 至 ", " to ")) | |||||
| append(lastOutDateEnd ?: "") | append(lastOutDateEnd ?: "") | ||||
| } | } | ||||
| rangeCell.setCellValue(rangeText) | rangeCell.setCellValue(rangeText) | ||||
| @@ -296,22 +298,22 @@ class StockItemConsumptionTrendReportController( | |||||
| // Column headers | // Column headers | ||||
| val headers = listOf( | val headers = listOf( | ||||
| "貨品編號", | |||||
| "貨品名稱", | |||||
| "單位", | |||||
| "一月", | |||||
| "二月", | |||||
| "三月", | |||||
| "四月", | |||||
| "五月", | |||||
| "六月", | |||||
| "七月", | |||||
| "八月", | |||||
| "九月", | |||||
| "十月", | |||||
| "十一月", | |||||
| "十二月", | |||||
| "總和" | |||||
| UiText.t("貨品編號", "Item code"), | |||||
| UiText.t("貨品名稱", "Item name"), | |||||
| UiText.t("單位", "UOM"), | |||||
| UiText.t("一月", "Jan"), | |||||
| UiText.t("二月", "Feb"), | |||||
| UiText.t("三月", "Mar"), | |||||
| UiText.t("四月", "Apr"), | |||||
| UiText.t("五月", "May"), | |||||
| UiText.t("六月", "Jun"), | |||||
| UiText.t("七月", "Jul"), | |||||
| UiText.t("八月", "Aug"), | |||||
| UiText.t("九月", "Sep"), | |||||
| UiText.t("十月", "Oct"), | |||||
| UiText.t("十一月", "Nov"), | |||||
| UiText.t("十二月", "Dec"), | |||||
| UiText.t("總和", "Total") | |||||
| ) | ) | ||||
| rowIndex++ // spacer row | rowIndex++ // spacer row | ||||
| @@ -371,15 +373,15 @@ class StockItemConsumptionTrendReportController( | |||||
| "qtyJul", "qtyAug", "qtySep", "qtyOct", "qtyNov", "qtyDec", | "qtyJul", "qtyAug", "qtySep", "qtyOct", "qtyNov", "qtyDec", | ||||
| ) | ) | ||||
| val monthLabels = listOf( | val monthLabels = listOf( | ||||
| "一月", "二月", "三月", "四月", "五月", "六月", | |||||
| "七月", "八月", "九月", "十月", "十一月", "十二月", | |||||
| UiText.t("一月", "Jan"), UiText.t("二月", "Feb"), UiText.t("三月", "Mar"), UiText.t("四月", "Apr"), UiText.t("五月", "May"), UiText.t("六月", "Jun"), | |||||
| UiText.t("七月", "Jul"), UiText.t("八月", "Aug"), UiText.t("九月", "Sep"), UiText.t("十月", "Oct"), UiText.t("十一月", "Nov"), UiText.t("十二月", "Dec"), | |||||
| ) | ) | ||||
| val dataSheetName = WorkbookUtil.createSafeSheetName("圖表數據") | |||||
| val dataSheetName = WorkbookUtil.createSafeSheetName(UiText.t("圖表數據", "Chart data")) | |||||
| val dataSheet = workbook.createSheet(dataSheetName) | val dataSheet = workbook.createSheet(dataSheetName) | ||||
| val headerRow = dataSheet.createRow(0) | val headerRow = dataSheet.createRow(0) | ||||
| headerRow.createCell(0).setCellValue("貨品編號") | |||||
| headerRow.createCell(0).setCellValue(UiText.t("貨品編號", "Item code")) | |||||
| monthLabels.forEachIndexed { i, label -> | monthLabels.forEachIndexed { i, label -> | ||||
| headerRow.createCell(1 + i).setCellValue(label) | headerRow.createCell(1 + i).setCellValue(label) | ||||
| } | } | ||||
| @@ -394,7 +396,7 @@ class StockItemConsumptionTrendReportController( | |||||
| val zColIndex = CellReference.convertColStringToIndex("Z") | val zColIndex = CellReference.convertColStringToIndex("Z") | ||||
| val zHeader = dataSheet.getRow(0) ?: dataSheet.createRow(0) | val zHeader = dataSheet.getRow(0) ?: dataSheet.createRow(0) | ||||
| zHeader.createCell(zColIndex).setCellValue("全部") | |||||
| zHeader.createCell(zColIndex).setCellValue(UiText.t("全部", "All")) | |||||
| dbData.forEachIndexed { idx, row -> | dbData.forEachIndexed { idx, row -> | ||||
| val r = dataSheet.getRow(1 + idx) ?: dataSheet.createRow(1 + idx) | val r = dataSheet.getRow(1 + idx) ?: dataSheet.createRow(1 + idx) | ||||
| r.createCell(zColIndex).setCellValue(row["itemNo"]?.toString() ?: "") | r.createCell(zColIndex).setCellValue(row["itemNo"]?.toString() ?: "") | ||||
| @@ -403,14 +405,14 @@ class StockItemConsumptionTrendReportController( | |||||
| val lastDataRow1Based = 1 + dbData.size | val lastDataRow1Based = 1 + dbData.size | ||||
| val zListEnd1Based = 1 + dbData.size | val zListEnd1Based = 1 + dbData.size | ||||
| val chartSheetName = WorkbookUtil.createSafeSheetName("消耗圖表") | |||||
| val chartSheetName = WorkbookUtil.createSafeSheetName(UiText.t("消耗圖表", "Consumption chart")) | |||||
| val chartSheet = workbook.createSheet(chartSheetName) | val chartSheet = workbook.createSheet(chartSheetName) | ||||
| val labelR = chartSheet.createRow(0) | val labelR = chartSheet.createRow(0) | ||||
| labelR.createCell(0).setCellValue("選擇貨品編號") | |||||
| labelR.createCell(0).setCellValue(UiText.t("選擇貨品編號", "Select item code")) | |||||
| val filterCell = labelR.createCell(1) | val filterCell = labelR.createCell(1) | ||||
| val defaultItemNo = dbData.firstOrNull()?.get("itemNo")?.toString()?.trim() | val defaultItemNo = dbData.firstOrNull()?.get("itemNo")?.toString()?.trim() | ||||
| filterCell.setCellValue(defaultItemNo?.takeIf { it.isNotBlank() } ?: "全部") | |||||
| filterCell.setCellValue(defaultItemNo?.takeIf { it.isNotBlank() } ?: UiText.t("全部", "All")) | |||||
| val dvHelper: DataValidationHelper = chartSheet.dataValidationHelper | val dvHelper: DataValidationHelper = chartSheet.dataValidationHelper | ||||
| val listFormula = "'$dataSheetName'!\$Z\$1:\$Z\$$zListEnd1Based" | val listFormula = "'$dataSheetName'!\$Z\$1:\$Z\$$zListEnd1Based" | ||||
| @@ -418,9 +420,9 @@ class StockItemConsumptionTrendReportController( | |||||
| val regions = CellRangeAddressList(0, 0, 1, 1) | val regions = CellRangeAddressList(0, 0, 1, 1) | ||||
| val validation = dvHelper.createValidation(constraint, regions) | val validation = dvHelper.createValidation(constraint, regions) | ||||
| validation.showErrorBox = true | validation.showErrorBox = true | ||||
| validation.createErrorBox("無效選擇", "請從清單中選擇貨品編號或「全部」。") | |||||
| validation.createErrorBox(UiText.t("無效選擇", "Invalid choice"), UiText.t("請從清單中選擇貨品編號或「全部」。", "Choose an item code from the list, or All.")) | |||||
| validation.showPromptBox = true | validation.showPromptBox = true | ||||
| validation.createPromptBox("篩選", "選擇貨品編號檢視該品項各月消耗數量;選擇「全部」顯示所有品項加總。") | |||||
| validation.createPromptBox(UiText.t("篩選", "Filter"), UiText.t("選擇貨品編號檢視該品項各月消耗數量;選擇「全部」顯示所有品項加總。", "Select an item code to see monthly consumption, or All for the total of every item.")) | |||||
| chartSheet.addValidationData(validation) | chartSheet.addValidationData(validation) | ||||
| val catRowIndex = 3 | val catRowIndex = 3 | ||||
| @@ -437,27 +439,27 @@ class StockItemConsumptionTrendReportController( | |||||
| val formula = if (lastDataRow1Based < 2) { | val formula = if (lastDataRow1Based < 2) { | ||||
| "0" | "0" | ||||
| } else { | } else { | ||||
| "IF(TRIM(\$B\$1)=\"全部\",SUM('$dataSheetName'!$colLetter\$2:$colLetter\$$lastDataRow1Based),IFERROR(INDEX('$dataSheetName'!$colLetter\$2:$colLetter\$$lastDataRow1Based,MATCH(TRIM(\$B\$1),'$dataSheetName'!\$A\$2:\$A\$$lastDataRow1Based,0)),0))" | |||||
| "IF(TRIM(\$B\$1)=\"${UiText.t("全部", "All")}\",SUM('$dataSheetName'!$colLetter\$2:$colLetter\$$lastDataRow1Based),IFERROR(INDEX('$dataSheetName'!$colLetter\$2:$colLetter\$$lastDataRow1Based,MATCH(TRIM(\$B\$1),'$dataSheetName'!\$A\$2:\$A\$$lastDataRow1Based,0)),0))" | |||||
| } | } | ||||
| valRow.createCell(firstMonthCol + i).setCellFormula(formula) | valRow.createCell(firstMonthCol + i).setCellFormula(formula) | ||||
| } | } | ||||
| catRow.createCell(lastMonthCol + 1).setCellValue("總和") | |||||
| catRow.createCell(lastMonthCol + 1).setCellValue(UiText.t("總和", "Total")) | |||||
| valRow.createCell(lastMonthCol + 1).setCellFormula("SUM(B5:M5)") | valRow.createCell(lastMonthCol + 1).setCellFormula("SUM(B5:M5)") | ||||
| val drawing = chartSheet.createDrawingPatriarch() | val drawing = chartSheet.createDrawingPatriarch() | ||||
| val anchor = XSSFClientAnchor(0, 0, 0, 0, 1, 6, 14, 28) | val anchor = XSSFClientAnchor(0, 0, 0, 0, 1, 6, 14, 28) | ||||
| val chart = drawing.createChart(anchor) | val chart = drawing.createChart(anchor) | ||||
| chart.setTitleText("各月消耗數量(依選擇之貨品編號)") | |||||
| chart.setTitleText(UiText.t("各月消耗數量(依選擇之貨品編號)", "Monthly consumption quantity (selected item)")) | |||||
| chart.setTitleOverlay(false) | chart.setTitleOverlay(false) | ||||
| val legend = chart.getOrAddLegend() | val legend = chart.getOrAddLegend() | ||||
| legend.position = LegendPosition.BOTTOM | legend.position = LegendPosition.BOTTOM | ||||
| val bottomAxis = chart.createCategoryAxis(AxisPosition.BOTTOM) | val bottomAxis = chart.createCategoryAxis(AxisPosition.BOTTOM) | ||||
| bottomAxis.setTitle("月份") | |||||
| bottomAxis.setTitle(UiText.t("月份", "Month")) | |||||
| val leftAxis = chart.createValueAxis(AxisPosition.LEFT) | val leftAxis = chart.createValueAxis(AxisPosition.LEFT) | ||||
| leftAxis.setTitle("消耗數量") | |||||
| leftAxis.setTitle(UiText.t("消耗數量", "Consumption qty")) | |||||
| val catRangeAddr = CellRangeAddress(catRowIndex, catRowIndex, firstMonthCol, lastMonthCol) | val catRangeAddr = CellRangeAddress(catRowIndex, catRowIndex, firstMonthCol, lastMonthCol) | ||||
| val valRangeAddr = CellRangeAddress(valRowIndex, valRowIndex, firstMonthCol, lastMonthCol) | val valRangeAddr = CellRangeAddress(valRowIndex, valRowIndex, firstMonthCol, lastMonthCol) | ||||
| @@ -467,7 +469,7 @@ class StockItemConsumptionTrendReportController( | |||||
| val barData = chart.createData(ChartTypes.BAR, bottomAxis, leftAxis) as XDDFBarChartData | val barData = chart.createData(ChartTypes.BAR, bottomAxis, leftAxis) as XDDFBarChartData | ||||
| barData.barDirection = BarDirection.COL | barData.barDirection = BarDirection.COL | ||||
| val series = barData.addSeries(categories, values) | val series = barData.addSeries(categories, values) | ||||
| series.setTitle("消耗數量", null) | |||||
| series.setTitle(UiText.t("消耗數量", "Consumption qty"), null) | |||||
| chart.plot(barData) | chart.plot(barData) | ||||
| chartSheet.setColumnWidth(0, 18 * 256) | chartSheet.setColumnWidth(0, 18 * 256) | ||||
| @@ -1,4 +1,6 @@ | |||||
| package com.ffii.fpsms.modules.report.web | package com.ffii.fpsms.modules.report.web | ||||
| import com.ffii.core.utils.UiText | |||||
| import org.springframework.web.bind.annotation.* | import org.springframework.web.bind.annotation.* | ||||
| import org.springframework.http.* | import org.springframework.http.* | ||||
| import java.time.LocalDate | import java.time.LocalDate | ||||
| @@ -324,14 +326,14 @@ class StockLedgerReportController( | |||||
| workbook.setCompressTempFiles(true) | workbook.setCompressTempFiles(true) | ||||
| try { | try { | ||||
| val styles = createStyles(workbook) | val styles = createStyles(workbook) | ||||
| val reportTitle = "庫存明細報告" | |||||
| val reportTitle = UiText.t("庫存明細報告", "Stock ledger report") | |||||
| val sheet = workbook.createSheet(WorkbookUtil.createSafeSheetName(reportTitle)) | val sheet = workbook.createSheet(WorkbookUtil.createSafeSheetName(reportTitle)) | ||||
| val headers = listOf( | val headers = listOf( | ||||
| "貨品編號", "貨品名稱", "單位", | |||||
| "出入賬日期", "類型", "批號", "到期日", | |||||
| "纍計期初存量", "入庫", "出庫", "纍計存量", | |||||
| "參考編號", "存貨位置", | |||||
| UiText.t("貨品編號", "Item code"), UiText.t("貨品名稱", "Item name"), UiText.t("單位", "UOM"), | |||||
| UiText.t("出入賬日期", "Ledger date"), UiText.t("類型", "Type"), UiText.t("批號", "Lot no."), UiText.t("到期日", "Expiry date"), | |||||
| UiText.t("纍計期初存量", "Opening balance"), UiText.t("入庫", "Stock in"), UiText.t("出庫", "Stock out"), UiText.t("纍計存量", "Cumulative balance"), | |||||
| UiText.t("參考編號", "Reference no."), UiText.t("存貨位置", "Stock location"), | |||||
| ) | ) | ||||
| val totalColumns = headers.size | val totalColumns = headers.size | ||||
| var rowIndex = 0 | var rowIndex = 0 | ||||
| @@ -350,12 +352,12 @@ class StockLedgerReportController( | |||||
| ")" | ")" | ||||
| val subtitleRow = sheet.createRow(rowIndex++) | val subtitleRow = sheet.createRow(rowIndex++) | ||||
| subtitleRow.createCell(0).apply { | subtitleRow.createCell(0).apply { | ||||
| setCellValue("報告日期:$reportDateTime") | |||||
| setCellValue(UiText.t("報告日期:", "Report date: ") + reportDateTime) | |||||
| cellStyle = styles.subtitle | cellStyle = styles.subtitle | ||||
| } | } | ||||
| sheet.addMergedRegion(CellRangeAddress(1, 1, 0, 4)) | sheet.addMergedRegion(CellRangeAddress(1, 1, 0, 4)) | ||||
| subtitleRow.createCell(5).apply { | subtitleRow.createCell(5).apply { | ||||
| setCellValue("報告期間:${reportPeriodStart.trim()} 至 ${reportPeriodEnd.trim()}") | |||||
| setCellValue(UiText.t("報告期間:", "Report period: ") + (reportPeriodStart.trim()) + UiText.t(" 至 ", " to ") + (reportPeriodEnd.trim())) | |||||
| cellStyle = styles.subtitle | cellStyle = styles.subtitle | ||||
| } | } | ||||
| sheet.addMergedRegion(CellRangeAddress(1, 1, 5, totalColumns - 1)) | sheet.addMergedRegion(CellRangeAddress(1, 1, 5, totalColumns - 1)) | ||||
| @@ -385,7 +387,7 @@ class StockLedgerReportController( | |||||
| for (c in 3 until totalColumns) { | for (c in 3 until totalColumns) { | ||||
| r.createCell(c).apply { setCellValue(""); cellStyle = styles.sumEmpty } | r.createCell(c).apply { setCellValue(""); cellStyle = styles.sumEmpty } | ||||
| } | } | ||||
| r.getCell(7).apply { setCellValue("貨品總量:"); cellStyle = styles.sumLabel } | |||||
| r.getCell(7).apply { setCellValue(UiText.t("貨品總量:", "Total qty: ")); cellStyle = styles.sumLabel } | |||||
| setIntCellFromFormatted(r, 8, totalIn, styles.sumQty, styles.dash) | setIntCellFromFormatted(r, 8, totalIn, styles.sumQty, styles.dash) | ||||
| setIntCellFromFormatted(r, 9, totalOut, styles.sumQty, styles.dash) | setIntCellFromFormatted(r, 9, totalOut, styles.sumQty, styles.dash) | ||||
| setIntCellFromFormatted(r, 10, totalBal, styles.sumQty, styles.dash) | setIntCellFromFormatted(r, 10, totalBal, styles.sumQty, styles.dash) | ||||
| @@ -425,7 +427,7 @@ class StockLedgerReportController( | |||||
| setTextCell(r, 2, uom, styles.center) | setTextCell(r, 2, uom, styles.center) | ||||
| setTextCell(r, 3, m["trnDate"], styles.center) | setTextCell(r, 3, m["trnDate"], styles.center) | ||||
| val typeText = m["trnRefNo"]?.toString()?.trim().orEmpty().let { t -> | val typeText = m["trnRefNo"]?.toString()?.trim().orEmpty().let { t -> | ||||
| if (t.equals("Expiry", ignoreCase = true)) "過期" else t | |||||
| if (t.equals("Expiry", ignoreCase = true)) UiText.t("過期", "Expired") else t | |||||
| } | } | ||||
| setTextCell(r, 4, typeText, styles.center) | setTextCell(r, 4, typeText, styles.center) | ||||
| setTextCell(r, 5, m["lotNo"], styles.text) | setTextCell(r, 5, m["lotNo"], styles.text) | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.report.web | package com.ffii.fpsms.modules.report.web | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.fpsms.modules.report.service.StockLotOnhandReportService | import com.ffii.fpsms.modules.report.service.StockLotOnhandReportService | ||||
| import org.apache.poi.ss.usermodel.BorderStyle | import org.apache.poi.ss.usermodel.BorderStyle | ||||
| import org.apache.poi.ss.usermodel.CellStyle | import org.apache.poi.ss.usermodel.CellStyle | ||||
| @@ -186,8 +188,8 @@ class StockLotOnhandReportController( | |||||
| private fun displayFilter(raw: String?): String { | private fun displayFilter(raw: String?): String { | ||||
| val v = raw?.trim().orEmpty() | val v = raw?.trim().orEmpty() | ||||
| if (v.isEmpty() || v.equals("All", ignoreCase = true)) return "全部" | |||||
| if (v.equals("other", ignoreCase = true)) return "其他" | |||||
| if (v.isEmpty() || v.equals("All", ignoreCase = true)) return UiText.t("全部", "All") | |||||
| if (v.equals("other", ignoreCase = true)) return UiText.t("其他", "Other") | |||||
| return v | return v | ||||
| } | } | ||||
| @@ -208,14 +210,14 @@ class StockLotOnhandReportController( | |||||
| workbook.setCompressTempFiles(true) | workbook.setCompressTempFiles(true) | ||||
| try { | try { | ||||
| val styles = createStyles(workbook) | val styles = createStyles(workbook) | ||||
| val reportTitle = "庫存批次現況報告" | |||||
| val reportTitle = UiText.t("庫存批次現況報告", "Lot on-hand report") | |||||
| val sheet = workbook.createSheet(WorkbookUtil.createSafeSheetName(reportTitle)) | val sheet = workbook.createSheet(WorkbookUtil.createSafeSheetName(reportTitle)) | ||||
| val headers = listOf( | val headers = listOf( | ||||
| "貨品編號", "貨品名稱", "貨品單位結餘", "單位", | |||||
| "批號", "到期日", | |||||
| "樓層", "倉庫", "區域", "儲位", | |||||
| "最後異動日", "最後異動(入庫/出庫)", | |||||
| "批號結餘", "單位均價", "庫存總價值", | |||||
| UiText.t("貨品編號", "Item code"), UiText.t("貨品名稱", "Item name"), UiText.t("貨品單位結餘", "Item balance"), UiText.t("單位", "UOM"), | |||||
| UiText.t("批號", "Lot no."), UiText.t("到期日", "Expiry date"), | |||||
| UiText.t("樓層", "Floor"), UiText.t("倉庫", "Warehouse"), UiText.t("區域", "Area"), UiText.t("儲位", "Slot"), | |||||
| UiText.t("最後異動日", "Last movement date"), UiText.t("最後異動(入庫/出庫)", "Last movement (in/out)"), | |||||
| UiText.t("批號結餘", "Lot balance"), UiText.t("單位均價", "Avg unit price"), UiText.t("庫存總價值", "Total stock value"), | |||||
| ) | ) | ||||
| val totalColumns = headers.size | val totalColumns = headers.size | ||||
| var rowIndex = 0 | var rowIndex = 0 | ||||
| @@ -236,25 +238,25 @@ class StockLotOnhandReportController( | |||||
| val dateRow = sheet.createRow(rowIndex++) | val dateRow = sheet.createRow(rowIndex++) | ||||
| dateRow.heightInPoints = 18f | dateRow.heightInPoints = 18f | ||||
| dateRow.createCell(0).apply { | dateRow.createCell(0).apply { | ||||
| setCellValue("報告日期(現況):$reportDateTime") | |||||
| setCellValue(UiText.t("報告日期(現況):", "Report date (as of): ") + reportDateTime) | |||||
| cellStyle = styles.subtitle | cellStyle = styles.subtitle | ||||
| } | } | ||||
| sheet.addMergedRegion(CellRangeAddress(1, 1, 0, totalColumns - 1)) | sheet.addMergedRegion(CellRangeAddress(1, 1, 0, totalColumns - 1)) | ||||
| val criteriaText = listOf( | val criteriaText = listOf( | ||||
| "貨品編號=${displayFilter(itemCode)}", | |||||
| "樓層=${displayFilter(storeId)}", | |||||
| "倉庫=${displayFilter(warehouse)}", | |||||
| "區域=${displayFilter(area)}", | |||||
| "儲位=${displayFilter(slot)}", | |||||
| "盤點區域說明=${displayFilter(stockTakeSectionDescription)}", | |||||
| "批號=${displayFilter(lotNo)}", | |||||
| "來源=${displayFilter(lotOrigin)}", | |||||
| UiText.t("貨品編號=", "Item code=") + (displayFilter(itemCode)), | |||||
| UiText.t("樓層=", "Floor=") + (displayFilter(storeId)), | |||||
| UiText.t("倉庫=", "Warehouse=") + (displayFilter(warehouse)), | |||||
| UiText.t("區域=", "Area=") + (displayFilter(area)), | |||||
| UiText.t("儲位=", "Slot=") + (displayFilter(slot)), | |||||
| UiText.t("盤點區域說明=", "Count section=") + (displayFilter(stockTakeSectionDescription)), | |||||
| UiText.t("批號=", "Lot no.=") + (displayFilter(lotNo)), | |||||
| UiText.t("來源=", "Origin=") + (displayFilter(lotOrigin)), | |||||
| ).joinToString(" ") | ).joinToString(" ") | ||||
| val criteriaRow = sheet.createRow(rowIndex++) | val criteriaRow = sheet.createRow(rowIndex++) | ||||
| criteriaRow.heightInPoints = 32f | criteriaRow.heightInPoints = 32f | ||||
| criteriaRow.createCell(0).apply { | criteriaRow.createCell(0).apply { | ||||
| setCellValue("搜尋條件:$criteriaText") | |||||
| setCellValue(UiText.t("搜尋條件:", "Filters: ") + criteriaText) | |||||
| cellStyle = styles.subtitle | cellStyle = styles.subtitle | ||||
| } | } | ||||
| sheet.addMergedRegion(CellRangeAddress(2, 2, 0, totalColumns - 1)) | sheet.addMergedRegion(CellRangeAddress(2, 2, 0, totalColumns - 1)) | ||||
| @@ -274,7 +276,7 @@ class StockLotOnhandReportController( | |||||
| val r = sheet.createRow(rowIndex++) | val r = sheet.createRow(rowIndex++) | ||||
| r.heightInPoints = 22f | r.heightInPoints = 22f | ||||
| r.createCell(0).apply { | r.createCell(0).apply { | ||||
| setCellValue("查無資料") | |||||
| setCellValue(UiText.t("查無資料", "No data")) | |||||
| cellStyle = styles.center | cellStyle = styles.center | ||||
| } | } | ||||
| for (c in 1 until totalColumns) { | for (c in 1 until totalColumns) { | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.report.web | package com.ffii.fpsms.modules.report.web | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.fpsms.modules.report.service.ReportService | import com.ffii.fpsms.modules.report.service.ReportService | ||||
| import com.ffii.fpsms.modules.report.service.StockTakeVarianceReportService | import com.ffii.fpsms.modules.report.service.StockTakeVarianceReportService | ||||
| import org.apache.poi.ss.usermodel.BorderStyle | import org.apache.poi.ss.usermodel.BorderStyle | ||||
| @@ -240,7 +242,7 @@ class StockTakeVarianceReportController( | |||||
| val s = stockTakeDateStart?.trim().orEmpty() | val s = stockTakeDateStart?.trim().orEmpty() | ||||
| val e = stockTakeDateEnd?.trim().orEmpty() | val e = stockTakeDateEnd?.trim().orEmpty() | ||||
| return if (s.isEmpty() && e.isEmpty()) "" else "$s 至 $e" | |||||
| return if (s.isEmpty() && e.isEmpty()) "" else s + UiText.t(" 至 ", " to ") + e | |||||
| } | } | ||||
| private fun createStockTakeVarianceExcel( | private fun createStockTakeVarianceExcel( | ||||
| @@ -248,23 +250,23 @@ class StockTakeVarianceReportController( | |||||
| stockTakeCaption: String, | stockTakeCaption: String, | ||||
| ): ByteArray { | ): ByteArray { | ||||
| val workbook = XSSFWorkbook() | val workbook = XSSFWorkbook() | ||||
| val reportTitle = "庫存盤點報告" | |||||
| val reportTitle = UiText.t("庫存盤點報告", "Stock take report") | |||||
| val safeSheetName = WorkbookUtil.createSafeSheetName(reportTitle) | val safeSheetName = WorkbookUtil.createSafeSheetName(reportTitle) | ||||
| val sheet = workbook.createSheet(safeSheetName) | val sheet = workbook.createSheet(safeSheetName) | ||||
| val headers = listOf( | val headers = listOf( | ||||
| "貨品編號", | |||||
| "貨品名稱", | |||||
| "單位", | |||||
| "批號", | |||||
| "到期日", | |||||
| "存貨位置", | |||||
| "盤點前存量", | |||||
| "盤點數", | |||||
| "盤盈虧", | |||||
| "盤盈虧百分比", | |||||
| "類型", | |||||
| "審核時間", | |||||
| UiText.t("貨品編號", "Item code"), | |||||
| UiText.t("貨品名稱", "Item name"), | |||||
| UiText.t("單位", "UOM"), | |||||
| UiText.t("批號", "Lot no."), | |||||
| UiText.t("到期日", "Expiry date"), | |||||
| UiText.t("存貨位置", "Stock location"), | |||||
| UiText.t("盤點前存量", "Qty before count"), | |||||
| UiText.t("盤點數", "Counted qty"), | |||||
| UiText.t("盤盈虧", "Variance"), | |||||
| UiText.t("盤盈虧百分比", "Variance %"), | |||||
| UiText.t("類型", "Type"), | |||||
| UiText.t("審核時間", "Approved at"), | |||||
| ) | ) | ||||
| val totalColumns = headers.size | val totalColumns = headers.size | ||||
| var rowIndex = 0 | var rowIndex = 0 | ||||
| @@ -400,12 +402,12 @@ class StockTakeVarianceReportController( | |||||
| ")" | ")" | ||||
| val subtitleRow = sheet.createRow(rowIndex++) | val subtitleRow = sheet.createRow(rowIndex++) | ||||
| subtitleRow.createCell(0).apply { | subtitleRow.createCell(0).apply { | ||||
| setCellValue("報告日期:$reportDateTime") | |||||
| setCellValue(UiText.t("報告日期:", "Report date: ") + reportDateTime) | |||||
| cellStyle = subtitleStyle | cellStyle = subtitleStyle | ||||
| } | } | ||||
| sheet.addMergedRegion(CellRangeAddress(1, 1, 0, 2)) | sheet.addMergedRegion(CellRangeAddress(1, 1, 0, 2)) | ||||
| subtitleRow.createCell(3).apply { | subtitleRow.createCell(3).apply { | ||||
| setCellValue(if (stockTakeCaption.isBlank()) "" else "盤點日期:$stockTakeCaption") | |||||
| setCellValue(if (stockTakeCaption.isBlank()) "" else UiText.t("盤點日期:", "Count date: ") + stockTakeCaption) | |||||
| cellStyle = subtitleStyle | cellStyle = subtitleStyle | ||||
| } | } | ||||
| sheet.addMergedRegion(CellRangeAddress(1, 1, 3, totalColumns - 1)) | sheet.addMergedRegion(CellRangeAddress(1, 1, 3, totalColumns - 1)) | ||||
| @@ -450,7 +452,7 @@ class StockTakeVarianceReportController( | |||||
| val labelCol = 5 | val labelCol = 5 | ||||
| val valueCol = 6 | val valueCol = 6 | ||||
| r.getCell(labelCol).apply { | r.getCell(labelCol).apply { | ||||
| setCellValue("貨品總量:") | |||||
| setCellValue(UiText.t("貨品總量:", "Total qty: ")) | |||||
| cellStyle = summaryLabelThickBottomStyle | cellStyle = summaryLabelThickBottomStyle | ||||
| } | } | ||||
| r.getCell(valueCol).apply { | r.getCell(valueCol).apply { | ||||
| @@ -616,7 +618,7 @@ class StockTakeVarianceReportController( | |||||
| if (useLegacyOverall) { | if (useLegacyOverall) { | ||||
| return Rep012ReportData( | return Rep012ReportData( | ||||
| caption = stockTakeVarianceReportService.getStockTakeVarianceOverallCaption(), | caption = stockTakeVarianceReportService.getStockTakeVarianceOverallCaption(), | ||||
| conditionLabel = "盤點條件:", | |||||
| conditionLabel = UiText.t("盤點條件:", "Count filter: "), | |||||
| dbData = stockTakeVarianceReportService.searchStockTakeVarianceReportV2Overall( | dbData = stockTakeVarianceReportService.searchStockTakeVarianceReportV2Overall( | ||||
| itemCode = itemCode, | itemCode = itemCode, | ||||
| storeId = storeId, | storeId = storeId, | ||||
| @@ -629,7 +631,7 @@ class StockTakeVarianceReportController( | |||||
| val id = roundIds.first() | val id = roundIds.first() | ||||
| return Rep012ReportData( | return Rep012ReportData( | ||||
| caption = stockTakeVarianceReportService.getStockTakeRoundCaption(id), | caption = stockTakeVarianceReportService.getStockTakeRoundCaption(id), | ||||
| conditionLabel = "盤點輪次:", | |||||
| conditionLabel = UiText.t("盤點輪次:", "Round: "), | |||||
| dbData = stockTakeVarianceReportService.searchStockTakeVarianceReportV2( | dbData = stockTakeVarianceReportService.searchStockTakeVarianceReportV2( | ||||
| stockTakeRoundId = id, | stockTakeRoundId = id, | ||||
| itemCode = itemCode, | itemCode = itemCode, | ||||
| @@ -642,7 +644,7 @@ class StockTakeVarianceReportController( | |||||
| return Rep012ReportData( | return Rep012ReportData( | ||||
| caption = stockTakeVarianceReportService.getStockTakeVarianceMultiRoundCaption(roundIds), | caption = stockTakeVarianceReportService.getStockTakeVarianceMultiRoundCaption(roundIds), | ||||
| conditionLabel = "盤點條件:", | |||||
| conditionLabel = UiText.t("盤點條件:", "Count filter: "), | |||||
| dbData = stockTakeVarianceReportService.searchStockTakeVarianceReportV2Overall( | dbData = stockTakeVarianceReportService.searchStockTakeVarianceReportV2Overall( | ||||
| itemCode = itemCode, | itemCode = itemCode, | ||||
| storeId = storeId, | storeId = storeId, | ||||
| @@ -1,5 +1,7 @@ | |||||
| package com.ffii.fpsms.modules.stock.service | package com.ffii.fpsms.modules.stock.service | ||||
| import com.ffii.core.utils.UiText | |||||
| import com.ffii.core.exception.BadRequestException | import com.ffii.core.exception.BadRequestException | ||||
| import com.ffii.core.support.AbstractBaseEntityService | import com.ffii.core.support.AbstractBaseEntityService | ||||
| import com.ffii.core.support.JdbcDao | import com.ffii.core.support.JdbcDao | ||||
| @@ -1249,7 +1251,7 @@ open class StockInLineService( | |||||
| val poLabel = JasperCompileManager.compileReport(inputStream) | val poLabel = JasperCompileManager.compileReport(inputStream) | ||||
| val qrCodeInfo = stockInLineRepository.findStockInLineInfoByIdInAndDeletedFalse(request.stockInLineIds).toMutableList() | val qrCodeInfo = stockInLineRepository.findStockInLineInfoByIdInAndDeletedFalse(request.stockInLineIds).toMutableList() | ||||
| if (qrCodeInfo.isEmpty()) { | if (qrCodeInfo.isEmpty()) { | ||||
| throw IllegalArgumentException("找不到來貨記錄,無法產生二維碼") | |||||
| throw IllegalArgumentException(UiText.t("找不到來貨記錄,無法產生二維碼", "No receipt record was found, so a QR code cannot be created")) | |||||
| } | } | ||||
| val fields = mutableListOf<MutableMap<String ,Any>>() | val fields = mutableListOf<MutableMap<String ,Any>>() | ||||
| @@ -43,7 +43,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{shopPurchaseOrderNo}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{shopPurchaseOrderNo}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="14" y="211" width="112" height="30" uuid="e03fcb92-259c-4427-a68e-60fe5924d763"> | <reportElement x="14" y="211" width="112" height="30" uuid="e03fcb92-259c-4427-a68e-60fe5924d763"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -57,10 +57,9 @@ | |||||
| <textElement verticalAlignment="Middle"> | <textElement verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="14"/> | <font fontName="微軟正黑體" size="14"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[店鋪採購單編號: | |||||
| ]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r16b426416823}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="14" y="166" width="85" height="45" uuid="f3ffd4ee-0513-41a5-94d7-f1fdb9966a76"> | <reportElement x="14" y="166" width="85" height="45" uuid="f3ffd4ee-0513-41a5-94d7-f1fdb9966a76"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| </reportElement> | </reportElement> | ||||
| @@ -70,8 +69,8 @@ | |||||
| <textElement verticalAlignment="Middle"> | <textElement verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="14"/> | <font fontName="微軟正黑體" size="14"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[送貨單編號:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r1814ca0dcbea}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="99" y="166" width="191" height="45" uuid="4319059b-9096-4c49-8275-287be93d3e6a"> | <reportElement x="99" y="166" width="191" height="45" uuid="4319059b-9096-4c49-8275-287be93d3e6a"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -114,7 +113,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{shopName}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{shopName}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="14" y="136" width="55" height="30" uuid="0ccaeebc-681b-449e-b547-97fc86c35662"> | <reportElement x="14" y="136" width="55" height="30" uuid="0ccaeebc-681b-449e-b547-97fc86c35662"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -129,9 +128,9 @@ | |||||
| <textElement verticalAlignment="Middle"> | <textElement verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="16"/> | <font fontName="微軟正黑體" size="16"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[箱數:]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r26101c67a651}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="170" y="136" width="120" height="30" uuid="05bc180b-a58d-4ad8-95f6-bc3090ee2c2d"> | <reportElement x="170" y="136" width="120" height="30" uuid="05bc180b-a58d-4ad8-95f6-bc3090ee2c2d"> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -143,8 +142,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="16"/> | <font fontName="微軟正黑體" size="16"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[ 箱(蛋類除外)]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r3b9bf196effe}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField isBlankWhenNull="true"> | <textField isBlankWhenNull="true"> | ||||
| <reportElement x="69" y="136" width="40" height="30" uuid="dab335a5-e253-498c-a9bf-b9707d8e1099"> | <reportElement x="69" y="136" width="40" height="30" uuid="dab335a5-e253-498c-a9bf-b9707d8e1099"> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -184,7 +183,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[/]]></text> | <text><![CDATA[/]]></text> | ||||
| </staticText> | </staticText> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="290" y="136" width="104" height="19" uuid="c8b9fafb-9e8b-479f-9a9f-dadda7854f95"> | <reportElement x="290" y="136" width="104" height="19" uuid="c8b9fafb-9e8b-479f-9a9f-dadda7854f95"> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -199,9 +198,8 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="14"/> | <font fontName="微軟正黑體" size="14"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[車線 | |||||
| ]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rf9015e9ab095}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont"> | <textField textAdjust="ScaleFont"> | ||||
| <reportElement x="290" y="155" width="104" height="86" uuid="57f8e4fa-cea0-42c5-b9e5-a33f0a2710b8"> | <reportElement x="290" y="155" width="104" height="86" uuid="57f8e4fa-cea0-42c5-b9e5-a33f0a2710b8"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -36,7 +36,7 @@ | |||||
| </title> | </title> | ||||
| <pageHeader> | <pageHeader> | ||||
| <band height="128"> | <band height="128"> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="430" y="0" width="40" height="18" uuid="3381622a-7eda-4649-88b8-650da96c2a77"> | <reportElement x="430" y="0" width="40" height="18" uuid="3381622a-7eda-4649-88b8-650da96c2a77"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -44,8 +44,8 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[頁數]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r604d446aa100}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="470" y="0" width="20" height="18" uuid="33b3d236-1c13-4751-abf5-79871b2535ea"> | <reportElement x="470" y="0" width="20" height="18" uuid="33b3d236-1c13-4751-abf5-79871b2535ea"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -53,7 +53,7 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"/> | <textElement textAlignment="Center" verticalAlignment="Middle"/> | ||||
| <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> | <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="530" y="0" width="25" height="18" uuid="11a0dc53-3742-4c56-a9b2-b284bfe8b07e"> | <reportElement x="530" y="0" width="25" height="18" uuid="11a0dc53-3742-4c56-a9b2-b284bfe8b07e"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -61,8 +61,8 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[頁]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rd04825997b36}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField evaluationTime="Report"> | <textField evaluationTime="Report"> | ||||
| <reportElement x="510" y="0" width="20" height="18" uuid="428142d2-39f0-43f1-b662-f1ab72f0aa1a"> | <reportElement x="510" y="0" width="20" height="18" uuid="428142d2-39f0-43f1-b662-f1ab72f0aa1a"> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -93,7 +93,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{dnTitle}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{dnTitle}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="0" y="25" width="70" height="23" uuid="de40ab55-5e3a-4730-b6cc-ddb4272edd6d"> | <reportElement x="0" y="25" width="70" height="23" uuid="de40ab55-5e3a-4730-b6cc-ddb4272edd6d"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -101,8 +101,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle" markup="styled"> | <textElement textAlignment="Left" verticalAlignment="Middle" markup="styled"> | ||||
| <font fontName="微軟正黑體" size="16" isBold="true"/> | <font fontName="微軟正黑體" size="16" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[店鋪:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rc54be4c935e7}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="StretchHeight"> | <textField textAdjust="StretchHeight"> | ||||
| <reportElement x="70" y="25" width="300" height="23" uuid="abe02be5-6047-4dd1-9637-f21612d9040a"> | <reportElement x="70" y="25" width="300" height="23" uuid="abe02be5-6047-4dd1-9637-f21612d9040a"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -112,15 +112,15 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{shopName}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{shopName}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement positionType="Float" x="0" y="50" width="80" height="23" uuid="1802947d-3ddb-4c51-99ab-82dda9119e34"> | <reportElement positionType="Float" x="0" y="50" width="80" height="23" uuid="1802947d-3ddb-4c51-99ab-82dda9119e34"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| </reportElement> | </reportElement> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="16" isBold="false"/> | <font fontName="微軟正黑體" size="16" isBold="false"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[地址:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r3d589b9b7f8a}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="StretchHeight"> | <textField textAdjust="StretchHeight"> | ||||
| <reportElement positionType="Float" x="70" y="50" width="465" height="23" uuid="89e79bce-bd39-48e6-b114-c11b4bcc5c9f"/> | <reportElement positionType="Float" x="70" y="50" width="465" height="23" uuid="89e79bce-bd39-48e6-b114-c11b4bcc5c9f"/> | ||||
| <textElement verticalAlignment="Middle"> | <textElement verticalAlignment="Middle"> | ||||
| @@ -128,15 +128,15 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{shopAddress}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{shopAddress}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="370" y="25" width="70" height="23" uuid="a8be367e-c33a-4876-bb0e-14c2eea6bca0"> | <reportElement x="370" y="25" width="70" height="23" uuid="a8be367e-c33a-4876-bb0e-14c2eea6bca0"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| </reportElement> | </reportElement> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="16" isBold="true"/> | <font fontName="微軟正黑體" size="16" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[貨車:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rd2ec8aa96e7a}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont"> | <textField textAdjust="ScaleFont"> | ||||
| <reportElement x="440" y="25" width="95" height="23" uuid="2a73f702-dda6-4abf-90b3-14704f6d3c7b"> | <reportElement x="440" y="25" width="95" height="23" uuid="2a73f702-dda6-4abf-90b3-14704f6d3c7b"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| @@ -151,7 +151,7 @@ | |||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| </reportElement> | </reportElement> | ||||
| </line> | </line> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement positionType="Float" x="5" y="90" width="64" height="18" uuid="329c1490-958e-4884-a36f-cdb0867162c3"> | <reportElement positionType="Float" x="5" y="90" width="64" height="18" uuid="329c1490-958e-4884-a36f-cdb0867162c3"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -159,9 +159,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[送貨日期:]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{raddfcfcdc60e}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement positionType="Float" x="5" y="110" width="110" height="18" uuid="111c5f73-f543-4006-931b-27479ccca816"> | <reportElement positionType="Float" x="5" y="110" width="110" height="18" uuid="111c5f73-f543-4006-931b-27479ccca816"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -169,8 +169,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Top"> | <textElement textAlignment="Left" verticalAlignment="Top"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[店鋪採購單號:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r65116ebb128b}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="StretchHeight"> | <textField textAdjust="StretchHeight"> | ||||
| <reportElement positionType="Float" x="115" y="110" width="425" height="18" uuid="7171ba0b-1a78-4ff6-a765-7b2b543ab0bc"> | <reportElement positionType="Float" x="115" y="110" width="425" height="18" uuid="7171ba0b-1a78-4ff6-a765-7b2b543ab0bc"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -241,7 +241,7 @@ | |||||
| </pageHeader> | </pageHeader> | ||||
| <columnHeader> | <columnHeader> | ||||
| <band height="33"> | <band height="33"> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="0" y="5" width="40" height="18" uuid="d0d76c93-d260-4b03-b116-6e7ba1fdbdd8"> | <reportElement x="0" y="5" width="40" height="18" uuid="d0d76c93-d260-4b03-b116-6e7ba1fdbdd8"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -250,9 +250,9 @@ | |||||
| <textElement textAlignment="Left"> | <textElement textAlignment="Left"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[序號]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{rab715e1b98f0}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="40" y="5" width="110" height="18" uuid="58a5c922-fd98-4997-9b17-16bdf9f78519"> | <reportElement x="40" y="5" width="110" height="18" uuid="58a5c922-fd98-4997-9b17-16bdf9f78519"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -261,9 +261,9 @@ | |||||
| <textElement textAlignment="Left"> | <textElement textAlignment="Left"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[路綫]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r95d67f026a0c}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="150" y="5" width="80" height="18" uuid="65c27cc0-f806-4930-930c-6b3fd632a52f"> | <reportElement x="150" y="5" width="80" height="18" uuid="65c27cc0-f806-4930-930c-6b3fd632a52f"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -271,9 +271,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[貨品編號]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r7f693b56a6ce}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="230" y="5" width="240" height="18" uuid="fa7ba1d5-003a-4c99-8a2f-4162756ee515"> | <reportElement x="230" y="5" width="240" height="18" uuid="fa7ba1d5-003a-4c99-8a2f-4162756ee515"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -281,8 +281,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[貨品名稱]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r17f6b62ed896}]]></textFieldExpression> | |||||
| </textField> | |||||
| <line> | <line> | ||||
| <reportElement x="0" y="28" width="554" height="1" uuid="76648c53-0490-4e52-b737-a8075d9c654f"> | <reportElement x="0" y="28" width="554" height="1" uuid="76648c53-0490-4e52-b737-a8075d9c654f"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -386,7 +386,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$F{signOff}]]></textFieldExpression> | <textFieldExpression><![CDATA[$F{signOff}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="0" y="18" width="40" height="18" uuid="c47819b4-0cf1-40f6-99bf-798a3afe836b"> | <reportElement x="0" y="18" width="40" height="18" uuid="c47819b4-0cf1-40f6-99bf-798a3afe836b"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -394,8 +394,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Top"> | <textElement textAlignment="Left" verticalAlignment="Top"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[單號:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r4dc2870c059c}]]></textFieldExpression> | |||||
| </textField> | |||||
| </band> | </band> | ||||
| </detail> | </detail> | ||||
| <pageFooter> | <pageFooter> | ||||
| @@ -24,19 +24,19 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="18" isBold="true"/> | <font fontName="微軟正黑體" size="18" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA["送貨路線摘要(" + $P{TRUCK_ROUTE} + ")"]]></textFieldExpression> | |||||
| <textFieldExpression><![CDATA[$R{r00c45eb6d637} + $P{TRUCK_ROUTE} + $R{rfa354ca634f3}]]></textFieldExpression> | |||||
| </textField> | </textField> | ||||
| </band> | </band> | ||||
| </title> | </title> | ||||
| <pageHeader> | <pageHeader> | ||||
| <band height="27"> | <band height="27"> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="0" y="0" width="130" height="22" uuid="9d3f5b73-ceaa-4653-909f-e8534d19c61e"/> | <reportElement x="0" y="0" width="130" height="22" uuid="9d3f5b73-ceaa-4653-909f-e8534d19c61e"/> | ||||
| <textElement verticalAlignment="Middle"> | <textElement verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="14" isBold="true"/> | <font fontName="微軟正黑體" size="14" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[計劃車次出發時間:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rc23e5226dd29}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="130" y="0" width="90" height="22" uuid="92335393-c410-4935-bd28-29a6175a9769"/> | <reportElement x="130" y="0" width="90" height="22" uuid="92335393-c410-4935-bd28-29a6175a9769"/> | ||||
| <textElement verticalAlignment="Middle"> | <textElement verticalAlignment="Middle"> | ||||
| @@ -44,13 +44,13 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{DEPARTURE_TIME}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{DEPARTURE_TIME}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="430" y="0" width="45" height="22" uuid="8770a6e7-8a03-47ab-aa3c-00f02815d3b4"/> | <reportElement x="430" y="0" width="45" height="22" uuid="8770a6e7-8a03-47ab-aa3c-00f02815d3b4"/> | ||||
| <textElement verticalAlignment="Middle"> | <textElement verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="14" isBold="true"/> | <font fontName="微軟正黑體" size="14" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[日期:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rb2778afe0187}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="475" y="0" width="80" height="22" uuid="1a628742-c50c-47a8-9f3d-df91dbc4b184"/> | <reportElement x="475" y="0" width="80" height="22" uuid="1a628742-c50c-47a8-9f3d-df91dbc4b184"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -65,34 +65,34 @@ | |||||
| </pageHeader> | </pageHeader> | ||||
| <columnHeader> | <columnHeader> | ||||
| <band height="28"> | <band height="28"> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="0" y="4" width="60" height="20" uuid="7dbf4192-d9d9-4f3e-95bc-d2700d4e5798"/> | <reportElement x="0" y="4" width="60" height="20" uuid="7dbf4192-d9d9-4f3e-95bc-d2700d4e5798"/> | ||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="14" isBold="true"/> | <font fontName="微軟正黑體" size="14" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[卸貨順序]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r8d4f15f17db3}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="70" y="4" width="60" height="20" uuid="9c31b1d9-d866-4555-9ee9-57b924ff2540"/> | <reportElement x="70" y="4" width="60" height="20" uuid="9c31b1d9-d866-4555-9ee9-57b924ff2540"/> | ||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="14" isBold="true"/> | <font fontName="微軟正黑體" size="14" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[店鋪代碼]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r3dd6f613acd0}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="140" y="4" width="380" height="20" uuid="e7d49961-b1c8-40b0-a109-29da1142fc8d"/> | <reportElement x="140" y="4" width="380" height="20" uuid="e7d49961-b1c8-40b0-a109-29da1142fc8d"/> | ||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="14" isBold="true"/> | <font fontName="微軟正黑體" size="14" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[店鋪名稱 & 地址]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r16d3eb3cba57}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="520" y="4" width="35" height="20" uuid="8473f6ea-a5bd-4739-bc05-618c0afb06d2"/> | <reportElement x="520" y="4" width="35" height="20" uuid="8473f6ea-a5bd-4739-bc05-618c0afb06d2"/> | ||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="14" isBold="true"/> | <font fontName="微軟正黑體" size="14" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[箱數]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r0eec66363def}]]></textFieldExpression> | |||||
| </textField> | |||||
| <line> | <line> | ||||
| <reportElement x="0" y="27" width="555" height="1" uuid="a370b2d2-4853-460a-900a-a15d2e1b8e94"/> | <reportElement x="0" y="27" width="555" height="1" uuid="a370b2d2-4853-460a-900a-a15d2e1b8e94"/> | ||||
| </line> | </line> | ||||
| @@ -127,9 +127,9 @@ | |||||
| <textElement verticalAlignment="Top"> | <textElement verticalAlignment="Top"> | ||||
| <font fontName="微軟正黑體" size="14"/> | <font fontName="微軟正黑體" size="14"/> | ||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[(($F{shopName} == null || $F{shopName}.trim().isEmpty()) ? "" : ("店鋪:" + $F{shopName}.trim())) | |||||
| <textFieldExpression><![CDATA[(($F{shopName} == null || $F{shopName}.trim().isEmpty()) ? "" : ($R{rc54be4c935e7} + $F{shopName}.trim())) | |||||
| + (($F{address} == null || $F{address}.trim().isEmpty()) ? "" : ( | + (($F{address} == null || $F{address}.trim().isEmpty()) ? "" : ( | ||||
| (($F{shopName} == null || $F{shopName}.trim().isEmpty()) ? "" : "\n") + "地址:" + $F{address}.trim() | |||||
| (($F{shopName} == null || $F{shopName}.trim().isEmpty()) ? "" : "\n") + $R{r3d589b9b7f8a} + $F{address}.trim() | |||||
| ))]]></textFieldExpression> | ))]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <textField isBlankWhenNull="true"> | <textField isBlankWhenNull="true"> | ||||
| @@ -151,7 +151,7 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="9"/> | <font fontName="微軟正黑體" size="9"/> | ||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA["第 " + $V{PAGE_NUMBER} + " 頁"]]></textFieldExpression> | |||||
| <textFieldExpression><![CDATA[$R{rf495347d6acf} + $V{PAGE_NUMBER} + $R{r080fcc65b244}]]></textFieldExpression> | |||||
| </textField> | </textField> | ||||
| </band> | </band> | ||||
| </pageFooter> | </pageFooter> | ||||
| @@ -30,7 +30,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{productionDate}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{productionDate}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="0" y="172" width="80" height="30" uuid="e03fcb92-259c-4427-a68e-60fe5924d763"> | <reportElement x="0" y="172" width="80" height="30" uuid="e03fcb92-259c-4427-a68e-60fe5924d763"> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -38,9 +38,8 @@ | |||||
| <textElement verticalAlignment="Middle"> | <textElement verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="16"/> | <font fontName="微軟正黑體" size="16"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[生產日期: | |||||
| ]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{raeb34e99d155}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont"> | <textField textAdjust="ScaleFont"> | ||||
| <reportElement x="80" y="50" width="160" height="30" uuid="9a440925-1bd4-4001-9b4b-7163ac27551e"> | <reportElement x="80" y="50" width="160" height="30" uuid="9a440925-1bd4-4001-9b4b-7163ac27551e"> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -51,7 +50,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{jobOrderCode}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{jobOrderCode}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="0" y="80" width="80" height="30" uuid="c8b9fafb-9e8b-479f-9a9f-dadda7854f95"> | <reportElement x="0" y="80" width="80" height="30" uuid="c8b9fafb-9e8b-479f-9a9f-dadda7854f95"> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -59,9 +58,8 @@ | |||||
| <textElement verticalAlignment="Middle"> | <textElement verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="16"/> | <font fontName="微軟正黑體" size="16"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[批次編號: | |||||
| ]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rff67331bff3b}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="80" y="110" width="160" height="30" uuid="57f8e4fa-cea0-42c5-b9e5-a33f0a2710b8"> | <reportElement x="80" y="110" width="160" height="30" uuid="57f8e4fa-cea0-42c5-b9e5-a33f0a2710b8"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -96,7 +94,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{finishedGoodLotNo}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{finishedGoodLotNo}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="0" y="202" width="80" height="30" uuid="93d48729-edea-4acf-beca-00c6221c10bb"> | <reportElement x="0" y="202" width="80" height="30" uuid="93d48729-edea-4acf-beca-00c6221c10bb"> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -104,9 +102,8 @@ | |||||
| <textElement verticalAlignment="Middle"> | <textElement verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="16"/> | <font fontName="微軟正黑體" size="16"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[到期日期: | |||||
| ]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r5f876eb35fb3}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="80" y="202" width="180" height="30" uuid="802555cd-a78b-49c4-b018-61c55f28070c"> | <reportElement x="80" y="202" width="180" height="30" uuid="802555cd-a78b-49c4-b018-61c55f28070c"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -117,7 +114,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{expiryDate}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{expiryDate}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="0" y="50" width="80" height="30" uuid="145bfb84-c448-4fea-840a-c3ab0bcea7f4"> | <reportElement x="0" y="50" width="80" height="30" uuid="145bfb84-c448-4fea-840a-c3ab0bcea7f4"> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -125,9 +122,9 @@ | |||||
| <textElement verticalAlignment="Middle"> | <textElement verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="16"/> | <font fontName="微軟正黑體" size="16"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[工單編號:]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{rf03632dd7521}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="0" y="110" width="80" height="30" uuid="397d1a94-709b-4372-96ce-bc1c28a8d997"> | <reportElement x="0" y="110" width="80" height="30" uuid="397d1a94-709b-4372-96ce-bc1c28a8d997"> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -135,9 +132,8 @@ | |||||
| <textElement verticalAlignment="Middle"> | <textElement verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="16"/> | <font fontName="微軟正黑體" size="16"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[數量: | |||||
| ]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{raf1eb6fab37f}]]></textFieldExpression> | |||||
| </textField> | |||||
| <image> | <image> | ||||
| <reportElement x="265" y="38" width="115" height="115" uuid="f61ca1c1-333b-42e1-9a00-85f5ef1e3492"> | <reportElement x="265" y="38" width="115" height="115" uuid="f61ca1c1-333b-42e1-9a00-85f5ef1e3492"> | ||||
| <property name="com.jaspersoft.studio.unit.x" value="px"/> | <property name="com.jaspersoft.studio.unit.x" value="px"/> | ||||
| @@ -1,6 +1,6 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||||
| <!-- Created with Jaspersoft Studio version 6.21.3.final using JasperReports Library version 6.21.3-4a3078d20785ebe464f18037d738d12fc98c13cf --> | <!-- Created with Jaspersoft Studio version 6.21.3.final using JasperReports Library version 6.21.3-4a3078d20785ebe464f18037d738d12fc98c13cf --> | ||||
| <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="PickRecordv2" language="javascript" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" isTitleNewPage="true" uuid="a037339e-92cf-44fd-9360-64465f285f3c"> | |||||
| <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="PickRecordv2" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" isTitleNewPage="true" uuid="a037339e-92cf-44fd-9360-64465f285f3c"> | |||||
| <parameter name="JobOrderCode" class="java.lang.String"/> | <parameter name="JobOrderCode" class="java.lang.String"/> | ||||
| <parameter name="FGCode" class="java.lang.String"/> | <parameter name="FGCode" class="java.lang.String"/> | ||||
| <parameter name="unit" class="java.lang.String"/> | <parameter name="unit" class="java.lang.String"/> | ||||
| @@ -25,7 +25,7 @@ | |||||
| </background> | </background> | ||||
| <pageHeader> | <pageHeader> | ||||
| <band height="103" splitType="Stretch"> | <band height="103" splitType="Stretch"> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="5" y="5" width="70" height="18" uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890"> | <reportElement x="5" y="5" width="70" height="18" uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -33,8 +33,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[膠茜數目:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r6850973fd787}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="75" y="5" width="80" height="18" uuid="b2c3d4e5-f6a7-8901-bcde-f12345678901"> | <reportElement x="75" y="5" width="80" height="18" uuid="b2c3d4e5-f6a7-8901-bcde-f12345678901"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -52,9 +52,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="16"/> | <font fontName="微軟正黑體" size="16"/> | ||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA["板頭紙(" + ($P{Floor} == null ? "" : $P{Floor}) + ")"]]></textFieldExpression> | |||||
| <textFieldExpression><![CDATA[$R{rd62378893466} + ($P{Floor} == null ? "" : $P{Floor}) + $R{rfa354ca634f3}]]></textFieldExpression> | |||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="535" y="5" width="25" height="18" uuid="178c50a8-90e2-4c80-95f8-7c27dcc5ce02"> | <reportElement x="535" y="5" width="25" height="18" uuid="178c50a8-90e2-4c80-95f8-7c27dcc5ce02"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -62,8 +62,8 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[頁]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rd04825997b36}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField evaluationTime="Report"> | <textField evaluationTime="Report"> | ||||
| <reportElement x="515" y="5" width="20" height="18" uuid="9d782ac8-6fd4-4336-abfe-436435476462"> | <reportElement x="515" y="5" width="20" height="18" uuid="9d782ac8-6fd4-4336-abfe-436435476462"> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -89,7 +89,7 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"/> | <textElement textAlignment="Center" verticalAlignment="Middle"/> | ||||
| <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> | <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="435" y="5" width="40" height="18" uuid="e9a7bc86-91db-4ea2-ae67-89f596f356de"> | <reportElement x="435" y="5" width="40" height="18" uuid="e9a7bc86-91db-4ea2-ae67-89f596f356de"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -97,9 +97,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[頁數]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r604d446aa100}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="5" y="35" width="80" height="18" uuid="11b7324d-086a-427b-bd9b-78ca6789f1fa"> | <reportElement x="5" y="35" width="80" height="18" uuid="11b7324d-086a-427b-bd9b-78ca6789f1fa"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -107,8 +107,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[工單編號:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rf03632dd7521}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="85" y="35" width="150" height="18" uuid="abfe6fd4-11e3-463b-b075-ed6b335e4a97"> | <reportElement x="85" y="35" width="150" height="18" uuid="abfe6fd4-11e3-463b-b075-ed6b335e4a97"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -118,7 +118,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{JobOrderCode}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{JobOrderCode}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="5" y="55" width="80" height="18" uuid="17445159-6cfb-46a0-835d-8cdc1585b793"> | <reportElement x="5" y="55" width="80" height="18" uuid="17445159-6cfb-46a0-835d-8cdc1585b793"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -126,8 +126,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[成品編號:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r1620c7944cce}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="85" y="55" width="150" height="18" uuid="c9a7aaad-ef1a-4e42-9c32-794dcf5d8ca9"> | <reportElement x="85" y="55" width="150" height="18" uuid="c9a7aaad-ef1a-4e42-9c32-794dcf5d8ca9"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -137,7 +137,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{FGCode}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{FGCode}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="285" y="55" width="80" height="18" uuid="12a14105-c207-4550-a9bd-30a74a25a5c4"> | <reportElement x="285" y="55" width="80" height="18" uuid="12a14105-c207-4550-a9bd-30a74a25a5c4"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -145,8 +145,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[成品名稱:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r86216baadfe7}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="365" y="55" width="150" height="18" uuid="62720d55-e8e1-49c8-a420-8318685e9e58"> | <reportElement x="365" y="55" width="150" height="18" uuid="62720d55-e8e1-49c8-a420-8318685e9e58"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -156,7 +156,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{FGName}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{FGName}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="285" y="75" width="80" height="18" uuid="3ec46348-493e-403f-aefb-5f4aef992877"> | <reportElement x="285" y="75" width="80" height="18" uuid="3ec46348-493e-403f-aefb-5f4aef992877"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -164,8 +164,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[需求數量:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rd3d752f0f2e4}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="365" y="75" width="150" height="18" uuid="367706ae-196f-4b5d-b9b2-5fbc4d70ce9b"> | <reportElement x="365" y="75" width="150" height="18" uuid="367706ae-196f-4b5d-b9b2-5fbc4d70ce9b"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -175,7 +175,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{RequiredQuantity}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{RequiredQuantity}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="285" y="35" width="80" height="18" uuid="411116fd-f273-4eed-bd6c-1db269cd9adb"> | <reportElement x="285" y="35" width="80" height="18" uuid="411116fd-f273-4eed-bd6c-1db269cd9adb"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -183,8 +183,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[生產日期:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r9c35fe458ba5}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="365" y="35" width="150" height="18" uuid="f044c78b-cdcb-4a90-81c5-a6fc81b73efc"> | <reportElement x="365" y="35" width="150" height="18" uuid="f044c78b-cdcb-4a90-81c5-a6fc81b73efc"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -194,7 +194,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{ProductionDate}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{ProductionDate}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="5" y="75" width="80" height="18" uuid="e280f805-b423-4ac7-a429-2d5d81edf3bc"> | <reportElement x="5" y="75" width="80" height="18" uuid="e280f805-b423-4ac7-a429-2d5d81edf3bc"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -202,8 +202,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[銷售單位:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r9b7133939fe4}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="85" y="75" width="150" height="18" uuid="ee5b0bcd-5a86-43e1-a003-ea5c7b9dd147"> | <reportElement x="85" y="75" width="150" height="18" uuid="ee5b0bcd-5a86-43e1-a003-ea5c7b9dd147"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -217,7 +217,7 @@ | |||||
| </pageHeader> | </pageHeader> | ||||
| <columnHeader> | <columnHeader> | ||||
| <band height="42" splitType="Stretch"> | <band height="42" splitType="Stretch"> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="0" y="10" width="50" height="18" uuid="c4baf479-7a41-49cb-a2cf-be798e11b2c1"> | <reportElement x="0" y="10" width="50" height="18" uuid="c4baf479-7a41-49cb-a2cf-be798e11b2c1"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -226,9 +226,9 @@ | |||||
| <textElement textAlignment="Left"> | <textElement textAlignment="Left"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[序號]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{rab715e1b98f0}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="50" y="10" width="95" height="18" uuid="e66fdecd-3672-423d-8a10-ed078a5ac5bf"> | <reportElement x="50" y="10" width="95" height="18" uuid="e66fdecd-3672-423d-8a10-ed078a5ac5bf"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -237,9 +237,9 @@ | |||||
| <textElement textAlignment="Left"> | <textElement textAlignment="Left"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[路綫]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r95d67f026a0c}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="145" y="10" width="80" height="18" uuid="38721c72-5f81-4be3-b1e1-335562f1dc38"> | <reportElement x="145" y="10" width="80" height="18" uuid="38721c72-5f81-4be3-b1e1-335562f1dc38"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -247,9 +247,9 @@ | |||||
| <textElement textAlignment="Left"> | <textElement textAlignment="Left"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[貨品編號]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r7f693b56a6ce}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="225" y="10" width="245" height="18" uuid="558582fa-0269-47d6-960b-305e51a8ff0c"> | <reportElement x="225" y="10" width="245" height="18" uuid="558582fa-0269-47d6-960b-305e51a8ff0c"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -257,9 +257,9 @@ | |||||
| <textElement textAlignment="Left"> | <textElement textAlignment="Left"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[貨品名稱]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r17f6b62ed896}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="470" y="10" width="84" height="18" uuid="bae79e0c-96f8-45dc-a5db-1c85466f860a"> | <reportElement x="470" y="10" width="84" height="18" uuid="bae79e0c-96f8-45dc-a5db-1c85466f860a"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -267,8 +267,8 @@ | |||||
| <textElement textAlignment="Left"> | <textElement textAlignment="Left"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[已提數量]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{re79ab7530b02}]]></textFieldExpression> | |||||
| </textField> | |||||
| <line> | <line> | ||||
| <reportElement x="0" y="33" width="554" height="1" uuid="ff5ea71d-829e-40f0-bfa8-d223d9fc7769"> | <reportElement x="0" y="33" width="554" height="1" uuid="ff5ea71d-829e-40f0-bfa8-d223d9fc7769"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -0,0 +1,134 @@ | |||||
| r00041da98651=上架總計 | |||||
| r00c45eb6d637=送貨路線摘要( | |||||
| r03ce1d5613e8=四月 | |||||
| r080fcc65b244= 頁 | |||||
| r09456e5bd8c2=上架數量 | |||||
| r0db83ab5ad90=材料消耗日期: | |||||
| r0e9cf47b8ab4=物料出倉追蹤報告 | |||||
| r0eec66363def=箱數 | |||||
| r11cb5e87977f=到期日 | |||||
| r129bf23950c5=送貨日期 | |||||
| r14aba5f426df=三月 | |||||
| r1620c7944cce=成品編號: | |||||
| r16b426416823=店鋪採購單編號:\n | |||||
| r16d24ae82a7d=每單交貨總數: | |||||
| r16d3eb3cba57=店鋪名稱 & 地址 | |||||
| r17f6b62ed896=貨品名稱 | |||||
| r1814ca0dcbea=送貨單編號: | |||||
| r1af196452b7a=出貨數量 | |||||
| r1b1840749a63=送貨訂單編號 | |||||
| r1cb52e8436a0=提料人 | |||||
| r1ea2fde25c82=纍計存出量 | |||||
| r1efbb116be18=批號 | |||||
| r1f60da14d9c0=入庫檢查\n缺陷數量 | |||||
| r26101c67a651=箱數: | |||||
| r2d36c3ab208f=審核時間 | |||||
| r313fd5bb330e=一月 | |||||
| r330e76596a33=庫存結餘報告 | |||||
| r3313eb0eab26=入庫檢查\n缺陷百分比 | |||||
| r33d99bd7d7ce=錯誤輸入\n或遺失 | |||||
| r37b5ae5f0edd=十二月 | |||||
| r38315806410a=貨車 | |||||
| r384f3abedb37=八月 | |||||
| r38aac4c4ec15=最後出倉日期: | |||||
| r3a4716a37bef=物料編號: | |||||
| r3b9bf196effe= 箱(蛋類除外) | |||||
| r3baaab225b59=瑕疵品數量 | |||||
| r3d589b9b7f8a=地址: | |||||
| r3dd6f613acd0=店鋪代碼 | |||||
| r3e002768eca6=成品出倉日期: | |||||
| r469fb16b34e6=類型 | |||||
| r4876d5589e5b=盤盈虧 | |||||
| r4ce0ee8cc0b2=單位 | |||||
| r4d7049a1bca9=庫存盤點報告 | |||||
| r4dc2870c059c=單號: | |||||
| r51024df5a7a1=品質檢查類型 | |||||
| r53fcb0cb5f04=庫存明細報告 | |||||
| r591faed0bf21=庫存品質檢測報告 | |||||
| r5b17a0615359=十月 | |||||
| r5d526c7219e5=物料名稱: | |||||
| r5d940d9844a6=提料備注 | |||||
| r5e20027c6a98=實測值 | |||||
| r5f2d6fed3a7d=盤點前存量 | |||||
| r5f876eb35fb3=到期日期:\n | |||||
| r604d446aa100=頁數 | |||||
| r60650ec2d16b=供應商: | |||||
| r60940709a8ed=DN編號 | |||||
| r62feaa72467a=出庫 | |||||
| r63c7976d4b5b=纍計期初\n存量 | |||||
| r64838faf9fb0=工單編號 | |||||
| r649d1891700e=現存存貨 | |||||
| r65116ebb128b=店鋪採購單號: | |||||
| r659a9e9a692d=採購訂單編號: | |||||
| r6850973fd787=膠茜數目: | |||||
| r6ba3e4fc4ed5=出入賬日期 | |||||
| r73005a9bafd9=完成生產日期: | |||||
| r78b01a0a34a1=門店名稱 | |||||
| r7e6f86ce8a6b=入庫 | |||||
| r7eac0bb11fb9=存貨位置 | |||||
| r7f693b56a6ce=貨品編號 | |||||
| r832e34b15e49=纍計存量 | |||||
| r8404b57157c6=數量: | |||||
| r86216baadfe7=成品名稱: | |||||
| r8689d87a0ff1=收貨日期: | |||||
| r8bf5d9b7ff89=QC 檢測日期: | |||||
| r8d4f15f17db3=卸貨順序 | |||||
| r8d61728842d0=數量 | |||||
| r8f3cddd57d47=六月 | |||||
| r909fd3cf3808=庫存材料消耗趨勢報告 | |||||
| r92f8cd219e20=成品出倉追蹤報告 | |||||
| r93e2b9f9f280=五月 | |||||
| r9460041e30e6=貨品總量: | |||||
| r9483d51c0380=品質檢查樣板 | |||||
| r95d67f026a0c=路綫 | |||||
| r9b7133939fe4=銷售單位: | |||||
| r9c35fe458ba5=生產日期: | |||||
| r9cd9cfdac0ff=入庫\n檢查備註 | |||||
| r9e0c4587c30c=入倉追蹤報告 | |||||
| r9e0c52c95eed=參考編號 | |||||
| r9e2304c74f73=提料單編號 | |||||
| r9e296b27523f=總和 | |||||
| r9eb0df469a62=入庫\n檢查結果 | |||||
| r9f96f7e891cd= 至 | |||||
| ra501f0a01799=不良品棄置 | |||||
| raa3a98ce3af5=纍計存入量 | |||||
| rab715e1b98f0=序號 | |||||
| raddfcfcdc60e=送貨日期: | |||||
| raeb07bde6c88=期初存量 | |||||
| raeb34e99d155=生產日期:\n | |||||
| raf1eb6fab37f=數量:\n | |||||
| rb2778afe0187=日期: | |||||
| rb568e0135677=年份: | |||||
| rb7d45e4aed38=供應商名稱 | |||||
| rbad7c57898bb=盤盈虧百分比 | |||||
| rbca4ea568093=總出倉量: | |||||
| rbe48450caef9=品質問題 | |||||
| rc23e5226dd29=計劃車次出發時間: | |||||
| rc54be4c935e7=店鋪: | |||||
| rcd2a4bdc0cd8=二月 | |||||
| rcfb0ffd45d73=盤點數 | |||||
| rd04825997b36=頁 | |||||
| rd27e4a4ff359=批次編號: | |||||
| rd2ec8aa96e7a=貨車: | |||||
| rd3d752f0f2e4=需求數量: | |||||
| rd46b470b4009=QC 類型: | |||||
| rd5712c61aadb=九月 | |||||
| rd62378893466=板頭紙( | |||||
| rdd672eea7e72=最後入倉日期: | |||||
| rdfd42b9c455a=七月 | |||||
| rdfef764f339a=十一月 | |||||
| re4e94fa79f81=成品出倉報告 | |||||
| re6eda806c6b1=報告日期: | |||||
| re79ab7530b02=已提數量 | |||||
| reee4e96971fb=成品/半成品生產分析報告 | |||||
| rf03632dd7521=工單編號: | |||||
| rf3924122809a=報告時間: | |||||
| rf433fbec9e8a=入庫檢查\n樣品數量 | |||||
| rf495347d6acf=第 | |||||
| rf66b3d3ead11=總上架數量: | |||||
| rf79aab5b7eed=到期日: | |||||
| rf9015e9ab095=車線\n | |||||
| rfa354ca634f3=) | |||||
| rfaf5e4a94fd5=送貨單編號 | |||||
| rff67331bff3b=批次編號:\n | |||||
| rffe7a1f62dab=存倉位置 | |||||
| @@ -0,0 +1,134 @@ | |||||
| r00041da98651=Put-away total | |||||
| r00c45eb6d637=Delivery route summary ( | |||||
| r03ce1d5613e8=Apr | |||||
| r080fcc65b244= | |||||
| r09456e5bd8c2=Put-away qty | |||||
| r0db83ab5ad90=Consumption date: | |||||
| r0e9cf47b8ab4=Material outbound traceability report | |||||
| r0eec66363def=Cartons | |||||
| r11cb5e87977f=Expiry date | |||||
| r129bf23950c5=Delivery date | |||||
| r14aba5f426df=Mar | |||||
| r1620c7944cce=Finished good code: | |||||
| r16b426416823=Shop PO no.:\n | |||||
| r16d24ae82a7d=Delivery total: | |||||
| r16d3eb3cba57=Shop name and address | |||||
| r17f6b62ed896=Item name | |||||
| r1814ca0dcbea=Delivery note no.: | |||||
| r1af196452b7a=Shipped qty | |||||
| r1b1840749a63=Delivery order no. | |||||
| r1cb52e8436a0=Picker | |||||
| r1ea2fde25c82=Cumulative stock out | |||||
| r1efbb116be18=Lot no. | |||||
| r1f60da14d9c0=Stock-in check\ndefect qty | |||||
| r26101c67a651=Cartons: | |||||
| r2d36c3ab208f=Approved at | |||||
| r313fd5bb330e=Jan | |||||
| r330e76596a33=Stock balance report | |||||
| r3313eb0eab26=Stock-in check\ndefect % | |||||
| r33d99bd7d7ce=Mis-entry\nor loss | |||||
| r37b5ae5f0edd=Dec | |||||
| r38315806410a=Truck | |||||
| r384f3abedb37=Aug | |||||
| r38aac4c4ec15=Last stock-out date: | |||||
| r3a4716a37bef=Material code: | |||||
| r3b9bf196effe= Cartons (excl. eggs) | |||||
| r3baaab225b59=Defect qty | |||||
| r3d589b9b7f8a=Address: | |||||
| r3dd6f613acd0=Shop code | |||||
| r3e002768eca6=FG outbound date: | |||||
| r469fb16b34e6=Type | |||||
| r4876d5589e5b=Variance | |||||
| r4ce0ee8cc0b2=UOM | |||||
| r4d7049a1bca9=Stock take report | |||||
| r4dc2870c059c=Doc no.: | |||||
| r51024df5a7a1=QC type | |||||
| r53fcb0cb5f04=Stock ledger report | |||||
| r591faed0bf21=Stock QC report | |||||
| r5b17a0615359=Oct | |||||
| r5d526c7219e5=Material name: | |||||
| r5d940d9844a6=Pick notes | |||||
| r5e20027c6a98=Measured value | |||||
| r5f2d6fed3a7d=Qty before count | |||||
| r5f876eb35fb3=Expiry date:\n | |||||
| r604d446aa100=Page | |||||
| r60650ec2d16b=Supplier: | |||||
| r60940709a8ed=DN no. | |||||
| r62feaa72467a=Stock out | |||||
| r63c7976d4b5b=Opening\nbalance | |||||
| r64838faf9fb0=Job order no. | |||||
| r649d1891700e=On hand | |||||
| r65116ebb128b=Shop PO no.: | |||||
| r659a9e9a692d=PO no.: | |||||
| r6850973fd787=Plastic crates: | |||||
| r6ba3e4fc4ed5=Ledger date | |||||
| r73005a9bafd9=Production finished: | |||||
| r78b01a0a34a1=Shop name | |||||
| r7e6f86ce8a6b=Stock in | |||||
| r7eac0bb11fb9=Stock location | |||||
| r7f693b56a6ce=Item code | |||||
| r832e34b15e49=Cumulative balance | |||||
| r8404b57157c6=Qty: | |||||
| r86216baadfe7=Finished good: | |||||
| r8689d87a0ff1=Receipt date: | |||||
| r8bf5d9b7ff89=QC date: | |||||
| r8d4f15f17db3=Unload sequence | |||||
| r8d61728842d0=Qty | |||||
| r8f3cddd57d47=Jun | |||||
| r909fd3cf3808=Material consumption trend report | |||||
| r92f8cd219e20=FG outbound traceability report | |||||
| r93e2b9f9f280=May | |||||
| r9460041e30e6=Total qty: | |||||
| r9483d51c0380=QC template | |||||
| r95d67f026a0c=Route | |||||
| r9b7133939fe4=Sales UOM: | |||||
| r9c35fe458ba5=Production date: | |||||
| r9cd9cfdac0ff=Stock-in\ncheck notes | |||||
| r9e0c4587c30c=Stock-in traceability report | |||||
| r9e0c52c95eed=Reference no. | |||||
| r9e2304c74f73=Pick order no. | |||||
| r9e296b27523f=Total | |||||
| r9eb0df469a62=Stock-in\ncheck result | |||||
| r9f96f7e891cd= to | |||||
| ra501f0a01799=Damaged disposal | |||||
| raa3a98ce3af5=Cumulative stock in | |||||
| rab715e1b98f0=No. | |||||
| raddfcfcdc60e=Delivery date: | |||||
| raeb07bde6c88=Opening qty | |||||
| raeb34e99d155=Production date:\n | |||||
| raf1eb6fab37f=Qty:\n | |||||
| rb2778afe0187=Date: | |||||
| rb568e0135677=Year: | |||||
| rb7d45e4aed38=Supplier name | |||||
| rbad7c57898bb=Variance % | |||||
| rbca4ea568093=Total outbound qty: | |||||
| rbe48450caef9=Quality issue | |||||
| rc23e5226dd29=Planned departure: | |||||
| rc54be4c935e7=Shop: | |||||
| rcd2a4bdc0cd8=Feb | |||||
| rcfb0ffd45d73=Counted qty | |||||
| rd04825997b36=Page | |||||
| rd27e4a4ff359=Lot no.: | |||||
| rd2ec8aa96e7a=Truck: | |||||
| rd3d752f0f2e4=Required qty: | |||||
| rd46b470b4009=QC type: | |||||
| rd5712c61aadb=Sep | |||||
| rd62378893466=Pallet sheet ( | |||||
| rdd672eea7e72=Last stock-in date: | |||||
| rdfd42b9c455a=Jul | |||||
| rdfef764f339a=Nov | |||||
| re4e94fa79f81=Finished goods outbound report | |||||
| re6eda806c6b1=Report date: | |||||
| re79ab7530b02=Picked qty | |||||
| reee4e96971fb=Finished / semi-finished production report | |||||
| rf03632dd7521=Job order no.: | |||||
| rf3924122809a=Report time: | |||||
| rf433fbec9e8a=Stock-in check\nsample qty | |||||
| rf495347d6acf=Page | |||||
| rf66b3d3ead11=Total put-away qty: | |||||
| rf79aab5b7eed=Expiry date: | |||||
| rf9015e9ab095=Truck lane\n | |||||
| rfa354ca634f3=) | |||||
| rfaf5e4a94fd5=Delivery note no. | |||||
| rff67331bff3b=Lot no.:\n | |||||
| rffe7a1f62dab=Storage location | |||||
| @@ -83,13 +83,13 @@ | |||||
| <groupFooter> | <groupFooter> | ||||
| <band height="20"> | <band height="20"> | ||||
| <printWhenExpression><![CDATA[$V{Group1_COUNT} > 1]]></printWhenExpression> | <printWhenExpression><![CDATA[$V{Group1_COUNT} > 1]]></printWhenExpression> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="424" y="0" width="78" height="19" uuid="17df3070-773d-4bac-8045-6b59d8673bb4"/> | <reportElement x="424" y="0" width="78" height="19" uuid="17df3070-773d-4bac-8045-6b59d8673bb4"/> | ||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[每單交貨總數:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r16d24ae82a7d}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField pattern="#,##0"> | <textField pattern="#,##0"> | ||||
| <reportElement x="502" y="0" width="80" height="19" uuid="939e4c5b-176c-4154-aabd-bf06c2a0e594"/> | <reportElement x="502" y="0" width="80" height="19" uuid="939e4c5b-176c-4154-aabd-bf06c2a0e594"/> | ||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| @@ -129,7 +129,7 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"/> | <textElement textAlignment="Center" verticalAlignment="Middle"/> | ||||
| <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> | <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="670" y="0" width="40" height="23" uuid="25f66e24-ad42-4ff6-ac86-ac1d1c6f3b03"> | <reportElement x="670" y="0" width="40" height="23" uuid="25f66e24-ad42-4ff6-ac86-ac1d1c6f3b03"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -137,8 +137,8 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[頁數]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r604d446aa100}]]></textFieldExpression> | |||||
| </textField> | |||||
| <staticText> | <staticText> | ||||
| <reportElement x="740" y="0" width="20" height="23" uuid="e0a5035b-8a7c-49c0-b012-baf4325774b7"> | <reportElement x="740" y="0" width="20" height="23" uuid="e0a5035b-8a7c-49c0-b012-baf4325774b7"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| @@ -156,7 +156,7 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"/> | <textElement textAlignment="Center" verticalAlignment="Middle"/> | ||||
| <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> | <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="8" y="30" width="90" height="23" uuid="5f860195-7684-4674-bcba-5e3af52a55da"> | <reportElement x="8" y="30" width="90" height="23" uuid="5f860195-7684-4674-bcba-5e3af52a55da"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -164,8 +164,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[報告日期:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{re6eda806c6b1}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="711" y="53" width="79" height="23" uuid="b1bba504-8ae4-4985-909c-e598c2e6001b"/> | <reportElement x="711" y="53" width="79" height="23" uuid="b1bba504-8ae4-4985-909c-e598c2e6001b"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -173,7 +173,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{year}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{year}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="640" y="30" width="71" height="23" uuid="0986cf8b-0ade-490d-bcb5-f2b1aceaab15"> | <reportElement x="640" y="30" width="71" height="23" uuid="0986cf8b-0ade-490d-bcb5-f2b1aceaab15"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -181,9 +181,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[報告時間:]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{rf3924122809a}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="640" y="53" width="71" height="23" uuid="3e31701d-067e-46eb-b691-a88829562c15"> | <reportElement x="640" y="53" width="71" height="23" uuid="3e31701d-067e-46eb-b691-a88829562c15"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -191,8 +191,8 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[年份:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rb568e0135677}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="711" y="30" width="79" height="23" uuid="89bfffda-987c-4c76-bd0e-cfdb63d8bd0e"/> | <reportElement x="711" y="30" width="79" height="23" uuid="89bfffda-987c-4c76-bd0e-cfdb63d8bd0e"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -207,7 +207,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{reportDate}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{reportDate}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="300" y="0" width="210" height="23" uuid="e34c7a3e-ea38-4b1b-bbdc-cfe4a5f969de"> | <reportElement x="300" y="0" width="210" height="23" uuid="e34c7a3e-ea38-4b1b-bbdc-cfe4a5f969de"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -215,8 +215,8 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="16" isBold="true"/> | <font fontName="微軟正黑體" size="16" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[成品出倉報告]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{re4e94fa79f81}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="98" y="53" width="336" height="23" uuid="f855785e-5316-4c6c-a612-556f58dff006"> | <reportElement x="98" y="53" width="336" height="23" uuid="f855785e-5316-4c6c-a612-556f58dff006"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -224,9 +224,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{lastOutDateStart} + " 至 " + $P{lastOutDateEnd}]]></textFieldExpression> | |||||
| <textFieldExpression><![CDATA[$P{lastOutDateStart} + $R{r9f96f7e891cd} + $P{lastOutDateEnd}]]></textFieldExpression> | |||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="8" y="53" width="90" height="23" uuid="1543eecf-9964-43b0-9103-e885209265e4"> | <reportElement x="8" y="53" width="90" height="23" uuid="1543eecf-9964-43b0-9103-e885209265e4"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -235,9 +235,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[成品出倉日期:]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r3e002768eca6}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="0" y="81" width="92" height="18" uuid="eb3506cf-6d61-4f70-901f-9576df17e66c"> | <reportElement x="0" y="81" width="92" height="18" uuid="eb3506cf-6d61-4f70-901f-9576df17e66c"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -246,9 +246,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[送貨日期]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r129bf23950c5}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="582" y="81" width="100" height="18" uuid="a9c9239d-6640-4196-9ce4-5be81522a99b"> | <reportElement x="582" y="81" width="100" height="18" uuid="a9c9239d-6640-4196-9ce4-5be81522a99b"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -257,9 +257,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[單位]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r4ce0ee8cc0b2}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="92" y="81" width="140" height="18" uuid="0f570907-538c-4d1e-a261-5e275f2c3fbe"> | <reportElement x="92" y="81" width="140" height="18" uuid="0f570907-538c-4d1e-a261-5e275f2c3fbe"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -268,9 +268,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[DN編號]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r60940709a8ed}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="502" y="81" width="80" height="18" uuid="aa069323-43b9-448c-840e-97054ad358ef"> | <reportElement x="502" y="81" width="80" height="18" uuid="aa069323-43b9-448c-840e-97054ad358ef"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -279,9 +279,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[數量]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r8d61728842d0}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="232" y="81" width="130" height="18" uuid="d8d2ecce-255a-46a5-9ded-949df09192de"> | <reportElement x="232" y="81" width="130" height="18" uuid="d8d2ecce-255a-46a5-9ded-949df09192de"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -290,9 +290,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[送貨訂單編號]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r1b1840749a63}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="362" y="81" width="140" height="18" uuid="805d0e34-eda9-45a6-9490-83d2282db99b"> | <reportElement x="362" y="81" width="140" height="18" uuid="805d0e34-eda9-45a6-9490-83d2282db99b"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -301,9 +301,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[門店名稱]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r78b01a0a34a1}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="682" y="81" width="100" height="18" uuid="0f680edd-048d-4ee1-8a00-2ec33eaf2c88"> | <reportElement x="682" y="81" width="100" height="18" uuid="0f680edd-048d-4ee1-8a00-2ec33eaf2c88"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -312,8 +312,8 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[貨車]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r38315806410a}]]></textFieldExpression> | |||||
| </textField> | |||||
| <line> | <line> | ||||
| <reportElement x="0" y="80" width="799" height="1" uuid="7c6becba-07e5-436b-aa4f-48e1711511bd"> | <reportElement x="0" y="80" width="799" height="1" uuid="7c6becba-07e5-436b-aa4f-48e1711511bd"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -74,7 +74,7 @@ | |||||
| <groupFooter> | <groupFooter> | ||||
| <band height="19"> | <band height="19"> | ||||
| <printWhenExpression><![CDATA[$V{Group1_COUNT} > 1]]></printWhenExpression> | <printWhenExpression><![CDATA[$V{Group1_COUNT} > 1]]></printWhenExpression> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="410" y="0" width="80" height="18" uuid="73188a51-3255-443c-9fee-4f3b527072c4"> | <reportElement x="410" y="0" width="80" height="18" uuid="73188a51-3255-443c-9fee-4f3b527072c4"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -82,8 +82,8 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[總出倉量:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rbca4ea568093}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="490" y="0" width="59" height="18" uuid="e4734789-5213-4934-80fe-6d72f3c38f23"/> | <reportElement x="490" y="0" width="59" height="18" uuid="e4734789-5213-4934-80fe-6d72f3c38f23"/> | ||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| @@ -127,7 +127,7 @@ | |||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| </reportElement> | </reportElement> | ||||
| </line> | </line> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="275" y="0" width="253" height="23" uuid="2b4bdbda-a606-455e-b4c7-f59ada12dcf4"> | <reportElement x="275" y="0" width="253" height="23" uuid="2b4bdbda-a606-455e-b4c7-f59ada12dcf4"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -135,9 +135,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="16" isBold="true"/> | <font fontName="微軟正黑體" size="16" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[成品出倉追蹤報告]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r92f8cd219e20}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="53" width="90" height="23" uuid="297107ea-5827-41bc-83a0-8d966b714e0f"> | <reportElement x="10" y="53" width="90" height="23" uuid="297107ea-5827-41bc-83a0-8d966b714e0f"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="pixel"/> | <property name="com.jaspersoft.studio.unit.y" value="pixel"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -146,16 +146,16 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[最後出倉日期:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r38aac4c4ec15}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="100" y="53" width="560" height="23" uuid="76ed89e6-9e70-4cc3-9d38-ff5dc24cd094"/> | <reportElement x="100" y="53" width="560" height="23" uuid="76ed89e6-9e70-4cc3-9d38-ff5dc24cd094"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{lastOutDateStart} + " 至 " + $P{lastOutDateEnd}]]></textFieldExpression> | |||||
| <textFieldExpression><![CDATA[$P{lastOutDateStart} + $R{r9f96f7e891cd} + $P{lastOutDateEnd}]]></textFieldExpression> | |||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="490" y="80" width="59" height="18" uuid="7950d513-4660-445b-9b18-08e062b66f30"> | <reportElement x="490" y="80" width="59" height="18" uuid="7950d513-4660-445b-9b18-08e062b66f30"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -164,9 +164,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[出貨數量]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r1af196452b7a}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="410" y="80" width="80" height="18" uuid="a2e0f22f-b299-4712-84f7-7ba3b54b1d1c"> | <reportElement x="410" y="80" width="80" height="18" uuid="a2e0f22f-b299-4712-84f7-7ba3b54b1d1c"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -175,9 +175,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[到期日]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r11cb5e87977f}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="210" y="80" width="100" height="18" uuid="ccda69a3-43de-413b-b53c-1b572e92fcf8"> | <reportElement x="210" y="80" width="100" height="18" uuid="ccda69a3-43de-413b-b53c-1b572e92fcf8"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -186,9 +186,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[提料單編號]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r9e2304c74f73}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="549" y="80" width="49" height="18" uuid="21d9afe9-fd02-4896-a478-60967afc50f4"> | <reportElement x="549" y="80" width="49" height="18" uuid="21d9afe9-fd02-4896-a478-60967afc50f4"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -196,9 +196,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[提料人]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r1cb52e8436a0}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="310" y="80" width="100" height="18" uuid="03fc341e-7026-4f5e-b975-264097a7aeda"> | <reportElement x="310" y="80" width="100" height="18" uuid="03fc341e-7026-4f5e-b975-264097a7aeda"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -207,9 +207,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[批號]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r1efbb116be18}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="710" y="80" width="92" height="18" uuid="0f155dfc-0aff-4935-aa8f-54b4f01af51e"> | <reportElement x="710" y="80" width="92" height="18" uuid="0f155dfc-0aff-4935-aa8f-54b4f01af51e"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -217,9 +217,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isItalic="false"/> | <font fontName="微軟正黑體" size="10" isItalic="false"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[提料備注]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r5d940d9844a6}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="598" y="80" width="112" height="18" uuid="b20762b2-25ab-4fde-a693-a8b32776d866"> | <reportElement x="598" y="80" width="112" height="18" uuid="b20762b2-25ab-4fde-a693-a8b32776d866"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -227,9 +227,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[存貨位置]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r7eac0bb11fb9}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="80" width="80" height="18" uuid="5db44150-7e52-40dc-9fab-fe174d818c61"> | <reportElement x="10" y="80" width="80" height="18" uuid="5db44150-7e52-40dc-9fab-fe174d818c61"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -238,9 +238,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[送貨日期]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r129bf23950c5}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="90" y="80" width="120" height="18" uuid="5db44150-7e52-40dc-9fab-fe174d818c61"> | <reportElement x="90" y="80" width="120" height="18" uuid="5db44150-7e52-40dc-9fab-fe174d818c61"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -249,8 +249,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[送貨訂單編號]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r1b1840749a63}]]></textFieldExpression> | |||||
| </textField> | |||||
| <line> | <line> | ||||
| <reportElement x="1" y="98" width="800" height="1" uuid="8ee25725-096b-4d76-9c7a-c0a41fbe6dbb"> | <reportElement x="1" y="98" width="800" height="1" uuid="8ee25725-096b-4d76-9c7a-c0a41fbe6dbb"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -280,7 +280,7 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"/> | <textElement textAlignment="Center" verticalAlignment="Middle"/> | ||||
| <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> | <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="30" width="90" height="23" uuid="9ab6647d-c771-4c0c-aab9-a07d96a7f0eb"> | <reportElement x="10" y="30" width="90" height="23" uuid="9ab6647d-c771-4c0c-aab9-a07d96a7f0eb"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -288,8 +288,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[報告日期:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{re6eda806c6b1}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField evaluationTime="Report"> | <textField evaluationTime="Report"> | ||||
| <reportElement x="768" y="0" width="30" height="23" uuid="0bd93c84-e6c8-4613-afec-12632071b737"> | <reportElement x="768" y="0" width="30" height="23" uuid="0bd93c84-e6c8-4613-afec-12632071b737"> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -305,7 +305,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{reportDate}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{reportDate}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="677" y="0" width="40" height="23" uuid="b5981ff6-676f-46c8-85bc-137714e60964"> | <reportElement x="677" y="0" width="40" height="23" uuid="b5981ff6-676f-46c8-85bc-137714e60964"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -313,9 +313,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[頁數]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r604d446aa100}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="640" y="29" width="68" height="23" uuid="53e03c14-32a0-4cdd-a883-542d6acb931a"> | <reportElement x="640" y="29" width="68" height="23" uuid="53e03c14-32a0-4cdd-a883-542d6acb931a"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -323,8 +323,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[報告時間:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rf3924122809a}]]></textFieldExpression> | |||||
| </textField> | |||||
| </band> | </band> | ||||
| </pageHeader> | </pageHeader> | ||||
| <detail> | <detail> | ||||
| @@ -97,7 +97,7 @@ | |||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| </reportElement> | </reportElement> | ||||
| </line> | </line> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="322" y="0" width="158" height="23" uuid="0102d5e8-f072-4701-abff-8f62a4dc8463"> | <reportElement x="322" y="0" width="158" height="23" uuid="0102d5e8-f072-4701-abff-8f62a4dc8463"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -105,9 +105,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="16" isBold="true"/> | <font fontName="微軟正黑體" size="16" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[庫存品質檢測報告]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r591faed0bf21}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="600" y="80" width="90" height="18" uuid="e36d0d94-9345-46d2-8fa5-604676255cba"> | <reportElement x="600" y="80" width="90" height="18" uuid="e36d0d94-9345-46d2-8fa5-604676255cba"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -116,9 +116,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[實測值]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r5e20027c6a98}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="90" y="80" width="70" height="18" uuid="7db4a800-8573-408c-baad-f4f4885625c9"> | <reportElement x="90" y="80" width="70" height="18" uuid="7db4a800-8573-408c-baad-f4f4885625c9"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -127,9 +127,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[品質檢查類型]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r51024df5a7a1}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="490" y="80" width="50" height="18" uuid="808b9adc-e79f-469b-89f8-a4d8035d0b02"> | <reportElement x="490" y="80" width="50" height="18" uuid="808b9adc-e79f-469b-89f8-a4d8035d0b02"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -138,9 +138,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[數量]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r8d61728842d0}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="160" y="80" width="160" height="18" uuid="f6036ff2-a00e-4809-bcb2-f4e86fb1ccf7"> | <reportElement x="160" y="80" width="160" height="18" uuid="f6036ff2-a00e-4809-bcb2-f4e86fb1ccf7"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -149,9 +149,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[品質檢查樣板]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r9483d51c0380}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="80" width="80" height="18" uuid="67fc8d08-74ed-4e63-af62-4bf566c2bea4"> | <reportElement x="10" y="80" width="80" height="18" uuid="67fc8d08-74ed-4e63-af62-4bf566c2bea4"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -160,9 +160,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[到期日]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r11cb5e87977f}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="550" y="80" width="50" height="18" uuid="7d8c7616-20d1-4081-853b-34bf90711d8f"> | <reportElement x="550" y="80" width="50" height="18" uuid="7d8c7616-20d1-4081-853b-34bf90711d8f"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -171,9 +171,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[瑕疵品數量]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r3baaab225b59}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="690" y="80" width="108" height="18" uuid="8b11690e-d04c-4402-9436-dba241594b9a"> | <reportElement x="690" y="80" width="108" height="18" uuid="8b11690e-d04c-4402-9436-dba241594b9a"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -182,9 +182,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[參考編號]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r9e0c52c95eed}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="330" y="80" width="160" height="18" uuid="26c0ec07-f36c-4f9a-8b9c-5e485bdd501e"> | <reportElement x="330" y="80" width="160" height="18" uuid="26c0ec07-f36c-4f9a-8b9c-5e485bdd501e"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -193,8 +193,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[品質問題]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rbe48450caef9}]]></textFieldExpression> | |||||
| </textField> | |||||
| <line> | <line> | ||||
| <reportElement x="0" y="98" width="799" height="1" uuid="726e7b1b-ad52-448c-8ad8-c091106d74dc"> | <reportElement x="0" y="98" width="799" height="1" uuid="726e7b1b-ad52-448c-8ad8-c091106d74dc"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -225,7 +225,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[/]]></text> | <text><![CDATA[/]]></text> | ||||
| </staticText> | </staticText> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="677" y="0" width="40" height="23" uuid="e6d84133-39ab-4405-be2c-abdcd968076e"> | <reportElement x="677" y="0" width="40" height="23" uuid="e6d84133-39ab-4405-be2c-abdcd968076e"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -233,8 +233,8 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[頁數]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r604d446aa100}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="708" y="29" width="90" height="23" uuid="2531fea1-1a06-4c5b-9be5-c2f615d98dac"/> | <reportElement x="708" y="29" width="90" height="23" uuid="2531fea1-1a06-4c5b-9be5-c2f615d98dac"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -242,7 +242,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{reportTime}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{reportTime}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="640" y="29" width="68" height="23" uuid="8160cd29-88e8-495b-b0ff-b816df69d2c2"> | <reportElement x="640" y="29" width="68" height="23" uuid="8160cd29-88e8-495b-b0ff-b816df69d2c2"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -250,8 +250,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[報告時間:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rf3924122809a}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="100" y="30" width="335" height="23" uuid="20007ca4-c3e0-4e46-b05f-53ca15e9494f"/> | <reportElement x="100" y="30" width="335" height="23" uuid="20007ca4-c3e0-4e46-b05f-53ca15e9494f"/> | ||||
| <textElement verticalAlignment="Middle"> | <textElement verticalAlignment="Middle"> | ||||
| @@ -259,7 +259,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{reportDate}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{reportDate}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="30" width="90" height="23" uuid="a5e6b095-e0c8-4200-911f-cdf9fbc953b1"> | <reportElement x="10" y="30" width="90" height="23" uuid="a5e6b095-e0c8-4200-911f-cdf9fbc953b1"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -267,9 +267,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[報告日期:]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{re6eda806c6b1}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="53" width="90" height="23" uuid="91156739-c0e2-4cd2-b4a5-a1bcef9a1eea"> | <reportElement x="10" y="53" width="90" height="23" uuid="91156739-c0e2-4cd2-b4a5-a1bcef9a1eea"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="pixel"/> | <property name="com.jaspersoft.studio.unit.y" value="pixel"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -278,14 +278,14 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[QC 檢測日期:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r8bf5d9b7ff89}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="100" y="53" width="560" height="23" uuid="96afd73f-53ed-42cd-9911-fdaac017d65b"/> | <reportElement x="100" y="53" width="560" height="23" uuid="96afd73f-53ed-42cd-9911-fdaac017d65b"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{lastInDateStart} + " 至 " + $P{lastInDateEnd}]]></textFieldExpression> | |||||
| <textFieldExpression><![CDATA[$P{lastInDateStart} + $R{r9f96f7e891cd} + $P{lastInDateEnd}]]></textFieldExpression> | |||||
| </textField> | </textField> | ||||
| <textField isBlankWhenNull="true"> | <textField isBlankWhenNull="true"> | ||||
| <reportElement x="322" y="23" width="158" height="20" uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890"/> | <reportElement x="322" y="23" width="158" height="20" uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890"/> | ||||
| @@ -294,13 +294,13 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{reportSection} != null && !$P{reportSection}.isEmpty() ? "(" + $P{reportSection} + ")" : ""]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{reportSection} != null && !$P{reportSection}.isEmpty() ? "(" + $P{reportSection} + ")" : ""]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="450" y="53" width="70" height="23" uuid="b2c3d4e5-f6a7-8901-bcde-f12345678901"/> | <reportElement x="450" y="53" width="70" height="23" uuid="b2c3d4e5-f6a7-8901-bcde-f12345678901"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[QC 類型:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rd46b470b4009}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="520" y="53" width="80" height="23" uuid="c3d4e5f6-a7b8-9012-cdef-123456789012"/> | <reportElement x="520" y="53" width="80" height="23" uuid="c3d4e5f6-a7b8-9012-cdef-123456789012"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -69,7 +69,7 @@ | |||||
| <groupFooter> | <groupFooter> | ||||
| <band height="19"> | <band height="19"> | ||||
| <printWhenExpression><![CDATA[$V{Group1_COUNT} > 1]]></printWhenExpression> | <printWhenExpression><![CDATA[$V{Group1_COUNT} > 1]]></printWhenExpression> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="330" y="0" width="80" height="18" uuid="127b8d9e-7af6-4973-bb72-e96ed062dcc9"> | <reportElement x="330" y="0" width="80" height="18" uuid="127b8d9e-7af6-4973-bb72-e96ed062dcc9"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -77,8 +77,8 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[總出倉量:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rbca4ea568093}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="410" y="0" width="59" height="18" uuid="bef3e158-73d3-40dc-8cc7-29f93f54113f"/> | <reportElement x="410" y="0" width="59" height="18" uuid="bef3e158-73d3-40dc-8cc7-29f93f54113f"/> | ||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| @@ -123,7 +123,7 @@ | |||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| </reportElement> | </reportElement> | ||||
| </line> | </line> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="254" y="0" width="295" height="23" uuid="7de5fed6-2cd8-43a5-a81c-7dca66433be5"> | <reportElement x="254" y="0" width="295" height="23" uuid="7de5fed6-2cd8-43a5-a81c-7dca66433be5"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -131,9 +131,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="16" isBold="true"/> | <font fontName="微軟正黑體" size="16" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[物料出倉追蹤報告]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r0e9cf47b8ab4}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="469" y="80" width="61" height="18" uuid="c17221d2-b543-4558-a530-e2b0fe57815c"> | <reportElement x="469" y="80" width="61" height="18" uuid="c17221d2-b543-4558-a530-e2b0fe57815c"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -141,9 +141,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[提料人]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r1cb52e8436a0}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="130" y="80" width="100" height="18" uuid="58633e83-5a17-4b4c-91fb-0a1e95377b78"> | <reportElement x="130" y="80" width="100" height="18" uuid="58633e83-5a17-4b4c-91fb-0a1e95377b78"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -152,9 +152,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[提料單編號]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r9e2304c74f73}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="230" y="80" width="100" height="18" uuid="72c185c0-02bd-44c3-9a95-b8a8b118a5b8"> | <reportElement x="230" y="80" width="100" height="18" uuid="72c185c0-02bd-44c3-9a95-b8a8b118a5b8"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -163,9 +163,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[批號]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r1efbb116be18}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="80" width="120" height="18" uuid="53dda4bc-e6ba-40de-8bdb-cf9dc0803b23"> | <reportElement x="10" y="80" width="120" height="18" uuid="53dda4bc-e6ba-40de-8bdb-cf9dc0803b23"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -174,9 +174,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[工單編號]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r64838faf9fb0}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="530" y="80" width="100" height="18" uuid="5faf317c-4814-4507-ae8d-21652d8642ef"> | <reportElement x="530" y="80" width="100" height="18" uuid="5faf317c-4814-4507-ae8d-21652d8642ef"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -184,9 +184,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[存倉位置]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{rffe7a1f62dab}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="330" y="80" width="80" height="18" uuid="fab273cc-7a7b-4598-be08-b1473ab32124"> | <reportElement x="330" y="80" width="80" height="18" uuid="fab273cc-7a7b-4598-be08-b1473ab32124"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -195,9 +195,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[到期日]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r11cb5e87977f}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="630" y="80" width="168" height="18" uuid="74f1c031-48f4-4b36-baed-1d3fd973b7ad"> | <reportElement x="630" y="80" width="168" height="18" uuid="74f1c031-48f4-4b36-baed-1d3fd973b7ad"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -205,9 +205,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[提料備注]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r5d940d9844a6}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="410" y="80" width="59" height="18" uuid="1f547265-a0c6-472f-8c99-c2ea25c9a6d5"> | <reportElement x="410" y="80" width="59" height="18" uuid="1f547265-a0c6-472f-8c99-c2ea25c9a6d5"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -216,8 +216,8 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[出貨數量]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r1af196452b7a}]]></textFieldExpression> | |||||
| </textField> | |||||
| <line> | <line> | ||||
| <reportElement x="1" y="98" width="800" height="1" uuid="d327fcf7-3dfa-4470-b0df-8199ac04ab46"> | <reportElement x="1" y="98" width="800" height="1" uuid="d327fcf7-3dfa-4470-b0df-8199ac04ab46"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -248,7 +248,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[/]]></text> | <text><![CDATA[/]]></text> | ||||
| </staticText> | </staticText> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="677" y="0" width="40" height="23" uuid="70764071-b438-4548-a01d-d3bbaf01ad62"> | <reportElement x="677" y="0" width="40" height="23" uuid="70764071-b438-4548-a01d-d3bbaf01ad62"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -256,8 +256,8 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[頁數]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r604d446aa100}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="708" y="29" width="90" height="23" uuid="55961375-1d81-4195-ae09-dbad03027460"/> | <reportElement x="708" y="29" width="90" height="23" uuid="55961375-1d81-4195-ae09-dbad03027460"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -265,7 +265,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{reportTime}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{reportTime}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="640" y="29" width="68" height="23" uuid="60125685-7c9e-443d-afcb-8257836a7b0f"> | <reportElement x="640" y="29" width="68" height="23" uuid="60125685-7c9e-443d-afcb-8257836a7b0f"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -273,8 +273,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[報告時間:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rf3924122809a}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="100" y="30" width="335" height="23" uuid="7e22315e-2b61-4d91-8c35-454a29a54440"/> | <reportElement x="100" y="30" width="335" height="23" uuid="7e22315e-2b61-4d91-8c35-454a29a54440"/> | ||||
| <textElement verticalAlignment="Middle"> | <textElement verticalAlignment="Middle"> | ||||
| @@ -282,7 +282,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{reportDate}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{reportDate}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="30" width="90" height="23" uuid="3dc4c597-8c09-424a-afcd-6fe9ae70137d"> | <reportElement x="10" y="30" width="90" height="23" uuid="3dc4c597-8c09-424a-afcd-6fe9ae70137d"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -290,9 +290,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[報告日期:]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{re6eda806c6b1}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="53" width="90" height="23" uuid="7582a23b-1cd1-4058-b072-62d9a1b1f12a"> | <reportElement x="10" y="53" width="90" height="23" uuid="7582a23b-1cd1-4058-b072-62d9a1b1f12a"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="pixel"/> | <property name="com.jaspersoft.studio.unit.y" value="pixel"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -301,14 +301,14 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[最後出倉日期:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r38aac4c4ec15}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="100" y="53" width="560" height="23" uuid="fb36cc91-4daf-439c-955e-148b0586bc95"/> | <reportElement x="100" y="53" width="560" height="23" uuid="fb36cc91-4daf-439c-955e-148b0586bc95"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{lastOutDateStart} + " 至 " + $P{lastOutDateEnd}]]></textFieldExpression> | |||||
| <textFieldExpression><![CDATA[$P{lastOutDateStart} + $R{r9f96f7e891cd} + $P{lastOutDateEnd}]]></textFieldExpression> | |||||
| </textField> | </textField> | ||||
| </band> | </band> | ||||
| </pageHeader> | </pageHeader> | ||||
| @@ -366,7 +366,7 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"/> | <textElement textAlignment="Center" verticalAlignment="Middle"/> | ||||
| <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> | <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="677" y="0" width="40" height="23" uuid="5a9e0fa9-418d-4838-9f82-e2f336e5bce7"> | <reportElement x="677" y="0" width="40" height="23" uuid="5a9e0fa9-418d-4838-9f82-e2f336e5bce7"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -374,8 +374,8 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[頁數]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r604d446aa100}]]></textFieldExpression> | |||||
| </textField> | |||||
| <staticText> | <staticText> | ||||
| <reportElement x="747" y="0" width="21" height="23" uuid="26d3d09c-48aa-4870-822a-c403e7faddfa"> | <reportElement x="747" y="0" width="21" height="23" uuid="26d3d09c-48aa-4870-822a-c403e7faddfa"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| @@ -393,7 +393,7 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"/> | <textElement textAlignment="Center" verticalAlignment="Middle"/> | ||||
| <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> | <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="30" width="90" height="23" uuid="0daddd8b-ca61-42af-9c2b-cbf11b7d7dac"> | <reportElement x="10" y="30" width="90" height="23" uuid="0daddd8b-ca61-42af-9c2b-cbf11b7d7dac"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -401,8 +401,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[報告日期:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{re6eda806c6b1}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="708" y="52" width="90" height="23" uuid="53b66bc3-4925-4340-add0-b4f2069a76c1"/> | <reportElement x="708" y="52" width="90" height="23" uuid="53b66bc3-4925-4340-add0-b4f2069a76c1"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -410,7 +410,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{year}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{year}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="640" y="29" width="68" height="23" uuid="e2be43a3-3570-4a4e-a671-d96f872a5ad7"> | <reportElement x="640" y="29" width="68" height="23" uuid="e2be43a3-3570-4a4e-a671-d96f872a5ad7"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -418,9 +418,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[報告時間:]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{rf3924122809a}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="640" y="52" width="68" height="23" uuid="29ed871d-3417-4978-9799-964389143451"> | <reportElement x="640" y="52" width="68" height="23" uuid="29ed871d-3417-4978-9799-964389143451"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -428,8 +428,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[年份:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rb568e0135677}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="708" y="29" width="90" height="23" uuid="cb1fbb06-e953-40e5-bdbe-5fc219f7c884"/> | <reportElement x="708" y="29" width="90" height="23" uuid="cb1fbb06-e953-40e5-bdbe-5fc219f7c884"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -444,7 +444,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{reportDate}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{reportDate}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="300" y="0" width="210" height="23" uuid="7451001b-6d5a-438c-82db-2b9e687d9a27"> | <reportElement x="300" y="0" width="210" height="23" uuid="7451001b-6d5a-438c-82db-2b9e687d9a27"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -452,8 +452,8 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="16" isBold="true"/> | <font fontName="微軟正黑體" size="16" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[成品/半成品生產分析報告]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{reee4e96971fb}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="100" y="53" width="336" height="23" uuid="b51949e1-c40a-4db0-a799-4243555893fd"> | <reportElement x="100" y="53" width="336" height="23" uuid="b51949e1-c40a-4db0-a799-4243555893fd"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -461,9 +461,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{lastOutDateStart} + " 至 " + $P{lastOutDateEnd}]]></textFieldExpression> | |||||
| <textFieldExpression><![CDATA[$P{lastOutDateStart} + $R{r9f96f7e891cd} + $P{lastOutDateEnd}]]></textFieldExpression> | |||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="53" width="90" height="23" uuid="fb09a559-f5fa-4e56-a891-87c600a2745a"> | <reportElement x="10" y="53" width="90" height="23" uuid="fb09a559-f5fa-4e56-a891-87c600a2745a"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -472,8 +472,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[完成生產日期:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r73005a9bafd9}]]></textFieldExpression> | |||||
| </textField> | |||||
| <line> | <line> | ||||
| <reportElement x="0" y="75" width="799" height="1" uuid="f04b0470-72e7-42b6-80fd-f1dc4ea5fa66"> | <reportElement x="0" y="75" width="799" height="1" uuid="f04b0470-72e7-42b6-80fd-f1dc4ea5fa66"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -488,16 +488,16 @@ | |||||
| </pageHeader> | </pageHeader> | ||||
| <columnHeader> | <columnHeader> | ||||
| <band height="28"> | <band height="28"> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="200" y="0" width="45" height="20" uuid="e4267f38-4a00-4a22-965d-9ab531262592"> | <reportElement x="200" y="0" width="45" height="20" uuid="e4267f38-4a00-4a22-965d-9ab531262592"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| </reportElement> | </reportElement> | ||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[一月]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r313fd5bb330e}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="650" y="0" width="45" height="20" uuid="e51758d1-2a7e-4fef-8b41-206e9aa6c611"> | <reportElement x="650" y="0" width="45" height="20" uuid="e51758d1-2a7e-4fef-8b41-206e9aa6c611"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -505,9 +505,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[十一月]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{rdfef764f339a}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="695" y="0" width="45" height="20" uuid="d7c79995-7b3c-4622-8d08-6b4a87345cbe"> | <reportElement x="695" y="0" width="45" height="20" uuid="d7c79995-7b3c-4622-8d08-6b4a87345cbe"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -515,9 +515,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[十二月]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r37b5ae5f0edd}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="290" y="0" width="45" height="20" uuid="ac124afb-3aa8-4ec6-b4a8-8de161e8bbc5"> | <reportElement x="290" y="0" width="45" height="20" uuid="ac124afb-3aa8-4ec6-b4a8-8de161e8bbc5"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -525,9 +525,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[三月]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r14aba5f426df}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="740" y="0" width="50" height="20" uuid="f092d4db-d5c5-4515-a826-8fec621a8992"> | <reportElement x="740" y="0" width="50" height="20" uuid="f092d4db-d5c5-4515-a826-8fec621a8992"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -535,9 +535,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[上架總計]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r00041da98651}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="560" y="0" width="45" height="20" uuid="85c77a9b-c044-4bc2-8cd9-3b0058e4b74e"> | <reportElement x="560" y="0" width="45" height="20" uuid="85c77a9b-c044-4bc2-8cd9-3b0058e4b74e"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -545,9 +545,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[九月]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{rd5712c61aadb}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="245" y="0" width="45" height="20" uuid="ec7698ae-c92b-4b44-9f7a-28f10ba5f385"> | <reportElement x="245" y="0" width="45" height="20" uuid="ec7698ae-c92b-4b44-9f7a-28f10ba5f385"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -555,9 +555,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle" markup="html"> | <textElement textAlignment="Right" verticalAlignment="Middle" markup="html"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[二月]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{rcd2a4bdc0cd8}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="380" y="0" width="45" height="20" uuid="5204319c-5b4e-421b-9493-4dd988caca52"> | <reportElement x="380" y="0" width="45" height="20" uuid="5204319c-5b4e-421b-9493-4dd988caca52"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -565,9 +565,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[五月]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r93e2b9f9f280}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="605" y="0" width="45" height="20" uuid="a6161aa7-2abd-4bb6-894d-ccdd6f9575c4"> | <reportElement x="605" y="0" width="45" height="20" uuid="a6161aa7-2abd-4bb6-894d-ccdd6f9575c4"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -575,9 +575,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[十月]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r5b17a0615359}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="425" y="0" width="45" height="20" uuid="424446ec-655d-4bff-a30a-61e898dbc7ad"> | <reportElement x="425" y="0" width="45" height="20" uuid="424446ec-655d-4bff-a30a-61e898dbc7ad"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -585,9 +585,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[六月]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r8f3cddd57d47}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="515" y="0" width="45" height="20" uuid="2a9e0115-d056-4c4b-b0b2-0800f55435ad"> | <reportElement x="515" y="0" width="45" height="20" uuid="2a9e0115-d056-4c4b-b0b2-0800f55435ad"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -595,9 +595,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true" isItalic="false"/> | <font fontName="微軟正黑體" size="10" isBold="true" isItalic="false"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[八月]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r384f3abedb37}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="470" y="0" width="45" height="20" uuid="b221e73b-0f35-4036-bffb-9230a495b827"> | <reportElement x="470" y="0" width="45" height="20" uuid="b221e73b-0f35-4036-bffb-9230a495b827"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -605,9 +605,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[七月]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{rdfd42b9c455a}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="335" y="0" width="45" height="20" uuid="8c5260bc-9079-4f62-803d-1c3e3fc9f41c"> | <reportElement x="335" y="0" width="45" height="20" uuid="8c5260bc-9079-4f62-803d-1c3e3fc9f41c"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -615,14 +615,14 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[四月]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r03ce1d5613e8}]]></textFieldExpression> | |||||
| </textField> | |||||
| <line> | <line> | ||||
| <reportElement x="1" y="23" width="799" height="1" uuid="ad5d85ce-e7fe-46c0-9b37-76b2ed3f4152"> | <reportElement x="1" y="23" width="799" height="1" uuid="ad5d85ce-e7fe-46c0-9b37-76b2ed3f4152"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| </reportElement> | </reportElement> | ||||
| </line> | </line> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="140" y="0" width="60" height="20" uuid="08d93aec-e4ae-46a6-afcb-3af9de518ca6"> | <reportElement x="140" y="0" width="60" height="20" uuid="08d93aec-e4ae-46a6-afcb-3af9de518ca6"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -630,9 +630,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[單位]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r4ce0ee8cc0b2}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="0" width="48" height="20" uuid="b4a1a243-36d7-46f7-90ea-b38dd5641a9c"> | <reportElement x="10" y="0" width="48" height="20" uuid="b4a1a243-36d7-46f7-90ea-b38dd5641a9c"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -640,9 +640,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[貨品編號]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r7f693b56a6ce}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="58" y="0" width="82" height="20" uuid="0b6e2d73-ed45-46c8-b330-07d81fe7f2da"> | <reportElement x="58" y="0" width="82" height="20" uuid="0b6e2d73-ed45-46c8-b330-07d81fe7f2da"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -650,8 +650,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[貨品名稱]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r17f6b62ed896}]]></textFieldExpression> | |||||
| </textField> | |||||
| </band> | </band> | ||||
| </columnHeader> | </columnHeader> | ||||
| </jasperReport> | </jasperReport> | ||||
| @@ -200,7 +200,7 @@ | |||||
| </background> | </background> | ||||
| <pageHeader> | <pageHeader> | ||||
| <band height="87" splitType="Stretch"> | <band height="87" splitType="Stretch"> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="351" y="0" width="101" height="23" uuid="e670cb8d-d591-4418-8bce-36398e286e1f"> | <reportElement x="351" y="0" width="101" height="23" uuid="e670cb8d-d591-4418-8bce-36398e286e1f"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -208,9 +208,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="16" isBold="true"/> | <font fontName="微軟正黑體" size="16" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[庫存結餘報告]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r330e76596a33}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="548" y="58" width="62" height="28" uuid="b208e97a-9d94-40ba-9922-3399d8e2f3ac"> | <reportElement x="548" y="58" width="62" height="28" uuid="b208e97a-9d94-40ba-9922-3399d8e2f3ac"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -219,9 +219,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[不良品棄置]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{ra501f0a01799}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="308" y="58" width="60" height="28" uuid="e95456ea-35da-4b71-8dc6-f11cf1c519d5"> | <reportElement x="308" y="58" width="60" height="28" uuid="e95456ea-35da-4b71-8dc6-f11cf1c519d5"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -229,9 +229,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[纍計存入量]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{raa3a98ce3af5}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="428" y="58" width="60" height="28" uuid="7a1741f9-6a23-4c04-81dd-c5e87c7a5142"> | <reportElement x="428" y="58" width="60" height="28" uuid="7a1741f9-6a23-4c04-81dd-c5e87c7a5142"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -240,10 +240,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[錯誤輸入 | |||||
| 或遺失]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r33d99bd7d7ce}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="488" y="58" width="60" height="28" uuid="66934b77-2d44-4218-b459-680e2aeca2e4"> | <reportElement x="488" y="58" width="60" height="28" uuid="66934b77-2d44-4218-b459-680e2aeca2e4"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -252,8 +251,8 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[盤盈虧]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r4876d5589e5b}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="100" y="30" width="335" height="23" uuid="849b3e33-5b07-41df-b761-2e2411d5d26e"/> | <reportElement x="100" y="30" width="335" height="23" uuid="849b3e33-5b07-41df-b761-2e2411d5d26e"/> | ||||
| <textElement verticalAlignment="Middle"> | <textElement verticalAlignment="Middle"> | ||||
| @@ -261,7 +260,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{reportDate}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{reportDate}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="640" y="29" width="68" height="23" uuid="38bc1ddd-2d49-417c-a0f4-15180f8dc295"> | <reportElement x="640" y="29" width="68" height="23" uuid="38bc1ddd-2d49-417c-a0f4-15180f8dc295"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -269,14 +268,14 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[報告時間:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rf3924122809a}]]></textFieldExpression> | |||||
| </textField> | |||||
| <line> | <line> | ||||
| <reportElement x="0" y="57" width="799" height="1" uuid="1c04b46e-491f-42a7-b8e0-2418dd068ace"> | <reportElement x="0" y="57" width="799" height="1" uuid="1c04b46e-491f-42a7-b8e0-2418dd068ace"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| </reportElement> | </reportElement> | ||||
| </line> | </line> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="677" y="0" width="40" height="23" uuid="0adb4709-fdd4-4c69-894e-6e4382527335"> | <reportElement x="677" y="0" width="40" height="23" uuid="0adb4709-fdd4-4c69-894e-6e4382527335"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -284,8 +283,8 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[頁數]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r604d446aa100}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="708" y="29" width="90" height="23" uuid="dabd2770-cc5c-4337-8ba9-a09cd9fa2b32"/> | <reportElement x="708" y="29" width="90" height="23" uuid="dabd2770-cc5c-4337-8ba9-a09cd9fa2b32"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -310,7 +309,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[/]]></text> | <text><![CDATA[/]]></text> | ||||
| </staticText> | </staticText> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="30" width="90" height="23" uuid="d0a07e02-a35c-4a9c-aea7-e7a97465e6e4"> | <reportElement x="10" y="30" width="90" height="23" uuid="d0a07e02-a35c-4a9c-aea7-e7a97465e6e4"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -318,8 +317,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[報告日期:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{re6eda806c6b1}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField evaluationTime="Report"> | <textField evaluationTime="Report"> | ||||
| <reportElement x="768" y="0" width="30" height="23" uuid="de74acaa-0000-47f4-8358-825ac920082d"> | <reportElement x="768" y="0" width="30" height="23" uuid="de74acaa-0000-47f4-8358-825ac920082d"> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -338,7 +337,7 @@ | |||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| </reportElement> | </reportElement> | ||||
| </line> | </line> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="242" y="58" width="66" height="28" uuid="360cf13a-93e7-45d4-8a4d-9e9506a6ad3f"> | <reportElement x="242" y="58" width="66" height="28" uuid="360cf13a-93e7-45d4-8a4d-9e9506a6ad3f"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -347,9 +346,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[期初存量]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{raeb07bde6c88}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="368" y="58" width="60" height="28" uuid="a3ea1b07-2108-409f-adee-8478374d767a"> | <reportElement x="368" y="58" width="60" height="28" uuid="a3ea1b07-2108-409f-adee-8478374d767a"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -357,9 +356,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[纍計存出量]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r1ea2fde25c82}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="610" y="58" width="59" height="28" uuid="4efdbfd9-2ad2-45de-aab9-b234d43b6026"> | <reportElement x="610" y="58" width="59" height="28" uuid="4efdbfd9-2ad2-45de-aab9-b234d43b6026"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -368,9 +367,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[現存存貨]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r649d1891700e}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="58" width="48" height="28" uuid="f9475692-14cd-49e8-aac0-ad972aca79e1"> | <reportElement x="10" y="58" width="48" height="28" uuid="f9475692-14cd-49e8-aac0-ad972aca79e1"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -379,9 +378,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="false"/> | <font fontName="微軟正黑體" size="10" isBold="false"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[貨品編號]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r7f693b56a6ce}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="180" y="58" width="62" height="28" uuid="e6c47019-de01-4e76-b4f8-cad3826d88b0"> | <reportElement x="180" y="58" width="62" height="28" uuid="e6c47019-de01-4e76-b4f8-cad3826d88b0"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -390,9 +389,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="false"/> | <font fontName="微軟正黑體" size="10" isBold="false"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[單位]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r4ce0ee8cc0b2}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="58" y="58" width="112" height="28" uuid="759e71ab-8f6b-4664-9669-1da737d41343"> | <reportElement x="58" y="58" width="112" height="28" uuid="759e71ab-8f6b-4664-9669-1da737d41343"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -401,8 +400,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="false"/> | <font fontName="微軟正黑體" size="10" isBold="false"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[貨品名稱]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r17f6b62ed896}]]></textFieldExpression> | |||||
| </textField> | |||||
| <staticText> | <staticText> | ||||
| <reportElement x="720" y="58" width="78" height="28" uuid="722cd2e3-3d4a-4edd-a2fc-ca82fd34efb6"> | <reportElement x="720" y="58" width="78" height="28" uuid="722cd2e3-3d4a-4edd-a2fc-ca82fd34efb6"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| @@ -78,7 +78,7 @@ | |||||
| <groupFooter> | <groupFooter> | ||||
| <band height="19"> | <band height="19"> | ||||
| <printWhenExpression><![CDATA[$V{Group1_COUNT} > 1]]></printWhenExpression> | <printWhenExpression><![CDATA[$V{Group1_COUNT} > 1]]></printWhenExpression> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="220" y="0" width="60" height="18" uuid="8d002bea-8762-4e6b-9101-35a570f55031"> | <reportElement x="220" y="0" width="60" height="18" uuid="8d002bea-8762-4e6b-9101-35a570f55031"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -87,8 +87,8 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[總上架數量:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rf66b3d3ead11}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="280" y="0" width="50" height="18" uuid="d98c4478-22bd-4fd6-9be4-b3777f91de6d"> | <reportElement x="280" y="0" width="50" height="18" uuid="d98c4478-22bd-4fd6-9be4-b3777f91de6d"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -140,7 +140,7 @@ | |||||
| </group> | </group> | ||||
| <pageHeader> | <pageHeader> | ||||
| <band height="109" splitType="Stretch"> | <band height="109" splitType="Stretch"> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="335" y="0" width="100" height="23" uuid="15ab756b-0e92-466c-be47-112c2ee1aad1"> | <reportElement x="335" y="0" width="100" height="23" uuid="15ab756b-0e92-466c-be47-112c2ee1aad1"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -148,9 +148,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="16" isBold="true"/> | <font fontName="微軟正黑體" size="16" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[入倉追蹤報告]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r9e0c4587c30c}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement stretchType="RelativeToTallestObject" x="280" y="80" width="50" height="28" uuid="5c05c89c-843b-4fd6-928c-002c6a529679"> | <reportElement stretchType="RelativeToTallestObject" x="280" y="80" width="50" height="28" uuid="5c05c89c-843b-4fd6-928c-002c6a529679"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -159,9 +159,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[上架數量]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r09456e5bd8c2}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement stretchType="RelativeToTallestObject" x="10" y="80" width="110" height="28" uuid="3fa7c301-1c2a-430b-8985-338ebf7aa6cf"> | <reportElement stretchType="RelativeToTallestObject" x="10" y="80" width="110" height="28" uuid="3fa7c301-1c2a-430b-8985-338ebf7aa6cf"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -170,9 +170,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[送貨單編號]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{rfaf5e4a94fd5}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement stretchType="RelativeToTallestObject" x="690" y="80" width="108" height="28" uuid="db5b9c55-0185-420b-ba6c-0e10d154cc8a"> | <reportElement stretchType="RelativeToTallestObject" x="690" y="80" width="108" height="28" uuid="db5b9c55-0185-420b-ba6c-0e10d154cc8a"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -181,9 +181,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[供應商名稱]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{rb7d45e4aed38}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement stretchType="RelativeToTallestObject" x="220" y="80" width="60" height="28" uuid="cd7a146a-1af0-4428-9b88-dcb159691656"> | <reportElement stretchType="RelativeToTallestObject" x="220" y="80" width="60" height="28" uuid="cd7a146a-1af0-4428-9b88-dcb159691656"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -192,9 +192,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[到期日]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r11cb5e87977f}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement stretchType="RelativeToTallestObject" x="540" y="80" width="60" height="28" uuid="58b33148-a772-4295-b10a-718fccc89683"> | <reportElement stretchType="RelativeToTallestObject" x="540" y="80" width="60" height="28" uuid="58b33148-a772-4295-b10a-718fccc89683"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -203,10 +203,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[入庫 | |||||
| 檢查備註]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r9cd9cfdac0ff}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement stretchType="RelativeToTallestObject" x="430" y="80" width="60" height="28" uuid="c70088ac-bcf1-48a1-bb82-ad238a3dbe70"> | <reportElement stretchType="RelativeToTallestObject" x="430" y="80" width="60" height="28" uuid="c70088ac-bcf1-48a1-bb82-ad238a3dbe70"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -215,10 +214,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[入庫檢查 | |||||
| 缺陷百分比]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r3313eb0eab26}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement stretchType="RelativeToTallestObject" x="600" y="80" width="80" height="28" uuid="c1d0f0dd-34d6-4716-90bd-deb94e5084d2"> | <reportElement stretchType="RelativeToTallestObject" x="600" y="80" width="80" height="28" uuid="c1d0f0dd-34d6-4716-90bd-deb94e5084d2"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -227,9 +225,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[存貨位置]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r7eac0bb11fb9}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement stretchType="RelativeToTallestObject" x="330" y="80" width="50" height="28" uuid="006c5557-c246-47cd-b599-4775f71cbf16"> | <reportElement stretchType="RelativeToTallestObject" x="330" y="80" width="50" height="28" uuid="006c5557-c246-47cd-b599-4775f71cbf16"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -238,10 +236,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[入庫檢查 | |||||
| 樣品數量]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{rf433fbec9e8a}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement stretchType="RelativeToTallestObject" x="120" y="80" width="100" height="28" uuid="2f1e753f-ee01-42a1-a4e3-f75985403431"> | <reportElement stretchType="RelativeToTallestObject" x="120" y="80" width="100" height="28" uuid="2f1e753f-ee01-42a1-a4e3-f75985403431"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -250,9 +247,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[批號]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r1efbb116be18}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement stretchType="RelativeToTallestObject" x="490" y="80" width="50" height="28" uuid="3c732314-35c2-42ad-98e6-ef42a512c233"> | <reportElement stretchType="RelativeToTallestObject" x="490" y="80" width="50" height="28" uuid="3c732314-35c2-42ad-98e6-ef42a512c233"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -261,10 +258,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[入庫 | |||||
| 檢查結果]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r9eb0df469a62}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement stretchType="RelativeToTallestObject" x="380" y="80" width="50" height="28" uuid="1f82d706-0492-46e4-b692-dced5c97c824"> | <reportElement stretchType="RelativeToTallestObject" x="380" y="80" width="50" height="28" uuid="1f82d706-0492-46e4-b692-dced5c97c824"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -273,9 +269,8 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[入庫檢查 | |||||
| 缺陷數量]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r1f60da14d9c0}]]></textFieldExpression> | |||||
| </textField> | |||||
| <line> | <line> | ||||
| <reportElement x="0" y="108" width="799" height="1" uuid="3190fa6b-3b27-4639-8de6-c93c8438ce35"> | <reportElement x="0" y="108" width="799" height="1" uuid="3190fa6b-3b27-4639-8de6-c93c8438ce35"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -288,7 +283,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{reportDate}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{reportDate}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="640" y="29" width="68" height="23" uuid="20514f3e-91e7-4d98-ade8-725d4f390397"> | <reportElement x="640" y="29" width="68" height="23" uuid="20514f3e-91e7-4d98-ade8-725d4f390397"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -296,8 +291,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[報告時間:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rf3924122809a}]]></textFieldExpression> | |||||
| </textField> | |||||
| <line> | <line> | ||||
| <reportElement x="0" y="79" width="799" height="1" uuid="4ff25125-9aa9-4dae-8a3e-55ab708ed66a"> | <reportElement x="0" y="79" width="799" height="1" uuid="4ff25125-9aa9-4dae-8a3e-55ab708ed66a"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -308,9 +303,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{lastInDateStart} + " 至 " + $P{lastInDateEnd}]]></textFieldExpression> | |||||
| <textFieldExpression><![CDATA[$P{lastInDateStart} + $R{r9f96f7e891cd} + $P{lastInDateEnd}]]></textFieldExpression> | |||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="677" y="0" width="40" height="23" uuid="2ebe654d-a62f-48a7-b5f5-af7e1089dc84"> | <reportElement x="677" y="0" width="40" height="23" uuid="2ebe654d-a62f-48a7-b5f5-af7e1089dc84"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -318,8 +313,8 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[頁數]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r604d446aa100}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="708" y="29" width="90" height="23" uuid="e751b9ba-1906-455c-a638-f3923a29c78b"/> | <reportElement x="708" y="29" width="90" height="23" uuid="e751b9ba-1906-455c-a638-f3923a29c78b"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -344,7 +339,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[/]]></text> | <text><![CDATA[/]]></text> | ||||
| </staticText> | </staticText> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="30" width="90" height="23" uuid="f57a2b35-2bb4-46cc-b4fc-80fc7adc8ee2"> | <reportElement x="10" y="30" width="90" height="23" uuid="f57a2b35-2bb4-46cc-b4fc-80fc7adc8ee2"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -352,9 +347,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[報告日期:]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{re6eda806c6b1}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="53" width="90" height="23" uuid="8c19e04a-12bc-4d58-9873-ffe83ae77811"> | <reportElement x="10" y="53" width="90" height="23" uuid="8c19e04a-12bc-4d58-9873-ffe83ae77811"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="pixel"/> | <property name="com.jaspersoft.studio.unit.y" value="pixel"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -363,8 +358,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[最後入倉日期:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rdd672eea7e72}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField evaluationTime="Report"> | <textField evaluationTime="Report"> | ||||
| <reportElement x="768" y="0" width="30" height="23" uuid="3ef90e65-b07e-46d1-828a-7a345f96dc0d"> | <reportElement x="768" y="0" width="30" height="23" uuid="3ef90e65-b07e-46d1-828a-7a345f96dc0d"> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -366,7 +366,7 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"/> | <textElement textAlignment="Center" verticalAlignment="Middle"/> | ||||
| <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> | <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="677" y="0" width="40" height="23" uuid="5a9e0fa9-418d-4838-9f82-e2f336e5bce7"> | <reportElement x="677" y="0" width="40" height="23" uuid="5a9e0fa9-418d-4838-9f82-e2f336e5bce7"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -374,8 +374,8 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[頁數]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r604d446aa100}]]></textFieldExpression> | |||||
| </textField> | |||||
| <staticText> | <staticText> | ||||
| <reportElement x="747" y="0" width="21" height="23" uuid="26d3d09c-48aa-4870-822a-c403e7faddfa"> | <reportElement x="747" y="0" width="21" height="23" uuid="26d3d09c-48aa-4870-822a-c403e7faddfa"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| @@ -393,7 +393,7 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"/> | <textElement textAlignment="Center" verticalAlignment="Middle"/> | ||||
| <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> | <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="30" width="90" height="23" uuid="0daddd8b-ca61-42af-9c2b-cbf11b7d7dac"> | <reportElement x="10" y="30" width="90" height="23" uuid="0daddd8b-ca61-42af-9c2b-cbf11b7d7dac"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -401,8 +401,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[報告日期:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{re6eda806c6b1}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="738" y="52" width="60" height="23" uuid="53b66bc3-4925-4340-add0-b4f2069a76c1"/> | <reportElement x="738" y="52" width="60" height="23" uuid="53b66bc3-4925-4340-add0-b4f2069a76c1"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -410,7 +410,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{year}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{year}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="670" y="29" width="68" height="23" uuid="e2be43a3-3570-4a4e-a671-d96f872a5ad7"> | <reportElement x="670" y="29" width="68" height="23" uuid="e2be43a3-3570-4a4e-a671-d96f872a5ad7"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -418,9 +418,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[報告時間:]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{rf3924122809a}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="670" y="52" width="68" height="23" uuid="29ed871d-3417-4978-9799-964389143451"> | <reportElement x="670" y="52" width="68" height="23" uuid="29ed871d-3417-4978-9799-964389143451"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -428,8 +428,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[年份:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rb568e0135677}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="738" y="29" width="60" height="23" uuid="cb1fbb06-e953-40e5-bdbe-5fc219f7c884"/> | <reportElement x="738" y="29" width="60" height="23" uuid="cb1fbb06-e953-40e5-bdbe-5fc219f7c884"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -444,7 +444,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{reportDate}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{reportDate}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="300" y="0" width="210" height="23" uuid="7451001b-6d5a-438c-82db-2b9e687d9a27"> | <reportElement x="300" y="0" width="210" height="23" uuid="7451001b-6d5a-438c-82db-2b9e687d9a27"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -452,8 +452,8 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="16" isBold="true"/> | <font fontName="微軟正黑體" size="16" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[庫存材料消耗趨勢報告]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r909fd3cf3808}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="100" y="53" width="336" height="23" uuid="b51949e1-c40a-4db0-a799-4243555893fd"> | <reportElement x="100" y="53" width="336" height="23" uuid="b51949e1-c40a-4db0-a799-4243555893fd"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -461,9 +461,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{lastOutDateStart} + " 至 " + $P{lastOutDateEnd}]]></textFieldExpression> | |||||
| <textFieldExpression><![CDATA[$P{lastOutDateStart} + $R{r9f96f7e891cd} + $P{lastOutDateEnd}]]></textFieldExpression> | |||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="53" width="90" height="23" uuid="fb09a559-f5fa-4e56-a891-87c600a2745a"> | <reportElement x="10" y="53" width="90" height="23" uuid="fb09a559-f5fa-4e56-a891-87c600a2745a"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -472,8 +472,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[材料消耗日期:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r0db83ab5ad90}]]></textFieldExpression> | |||||
| </textField> | |||||
| <line> | <line> | ||||
| <reportElement x="0" y="76" width="799" height="1" uuid="c97a9d60-80d8-4bdb-b7ba-999b3959417b"> | <reportElement x="0" y="76" width="799" height="1" uuid="c97a9d60-80d8-4bdb-b7ba-999b3959417b"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -488,16 +488,16 @@ | |||||
| </pageHeader> | </pageHeader> | ||||
| <columnHeader> | <columnHeader> | ||||
| <band height="29"> | <band height="29"> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="200" y="0" width="45" height="20" uuid="e4267f38-4a00-4a22-965d-9ab531262592"> | <reportElement x="200" y="0" width="45" height="20" uuid="e4267f38-4a00-4a22-965d-9ab531262592"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| </reportElement> | </reportElement> | ||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[一月]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r313fd5bb330e}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="650" y="0" width="45" height="20" uuid="e51758d1-2a7e-4fef-8b41-206e9aa6c611"> | <reportElement x="650" y="0" width="45" height="20" uuid="e51758d1-2a7e-4fef-8b41-206e9aa6c611"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -505,9 +505,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[十一月]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{rdfef764f339a}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="695" y="0" width="45" height="20" uuid="d7c79995-7b3c-4622-8d08-6b4a87345cbe"> | <reportElement x="695" y="0" width="45" height="20" uuid="d7c79995-7b3c-4622-8d08-6b4a87345cbe"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -515,9 +515,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[十二月]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r37b5ae5f0edd}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="290" y="0" width="45" height="20" uuid="ac124afb-3aa8-4ec6-b4a8-8de161e8bbc5"> | <reportElement x="290" y="0" width="45" height="20" uuid="ac124afb-3aa8-4ec6-b4a8-8de161e8bbc5"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -525,9 +525,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[三月]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r14aba5f426df}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="740" y="0" width="50" height="20" uuid="f092d4db-d5c5-4515-a826-8fec621a8992"> | <reportElement x="740" y="0" width="50" height="20" uuid="f092d4db-d5c5-4515-a826-8fec621a8992"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -535,9 +535,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[總和]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r9e296b27523f}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="560" y="0" width="45" height="20" uuid="85c77a9b-c044-4bc2-8cd9-3b0058e4b74e"> | <reportElement x="560" y="0" width="45" height="20" uuid="85c77a9b-c044-4bc2-8cd9-3b0058e4b74e"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -545,9 +545,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[九月]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{rd5712c61aadb}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="245" y="0" width="45" height="20" uuid="ec7698ae-c92b-4b44-9f7a-28f10ba5f385"> | <reportElement x="245" y="0" width="45" height="20" uuid="ec7698ae-c92b-4b44-9f7a-28f10ba5f385"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -555,9 +555,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle" markup="html"> | <textElement textAlignment="Right" verticalAlignment="Middle" markup="html"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[二月]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{rcd2a4bdc0cd8}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="380" y="0" width="45" height="20" uuid="5204319c-5b4e-421b-9493-4dd988caca52"> | <reportElement x="380" y="0" width="45" height="20" uuid="5204319c-5b4e-421b-9493-4dd988caca52"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -565,9 +565,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[五月]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r93e2b9f9f280}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="605" y="0" width="45" height="20" uuid="a6161aa7-2abd-4bb6-894d-ccdd6f9575c4"> | <reportElement x="605" y="0" width="45" height="20" uuid="a6161aa7-2abd-4bb6-894d-ccdd6f9575c4"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -575,9 +575,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[十月]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r5b17a0615359}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="425" y="0" width="45" height="20" uuid="424446ec-655d-4bff-a30a-61e898dbc7ad"> | <reportElement x="425" y="0" width="45" height="20" uuid="424446ec-655d-4bff-a30a-61e898dbc7ad"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -585,9 +585,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[六月]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r8f3cddd57d47}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="515" y="0" width="45" height="20" uuid="2a9e0115-d056-4c4b-b0b2-0800f55435ad"> | <reportElement x="515" y="0" width="45" height="20" uuid="2a9e0115-d056-4c4b-b0b2-0800f55435ad"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -595,9 +595,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true" isItalic="false"/> | <font fontName="微軟正黑體" size="10" isBold="true" isItalic="false"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[八月]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r384f3abedb37}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="470" y="0" width="45" height="20" uuid="b221e73b-0f35-4036-bffb-9230a495b827"> | <reportElement x="470" y="0" width="45" height="20" uuid="b221e73b-0f35-4036-bffb-9230a495b827"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -605,9 +605,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[七月]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{rdfd42b9c455a}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="335" y="0" width="45" height="20" uuid="8c5260bc-9079-4f62-803d-1c3e3fc9f41c"> | <reportElement x="335" y="0" width="45" height="20" uuid="8c5260bc-9079-4f62-803d-1c3e3fc9f41c"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -615,14 +615,14 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[四月]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r03ce1d5613e8}]]></textFieldExpression> | |||||
| </textField> | |||||
| <line> | <line> | ||||
| <reportElement x="0" y="24" width="799" height="1" uuid="ad5d85ce-e7fe-46c0-9b37-76b2ed3f4152"> | <reportElement x="0" y="24" width="799" height="1" uuid="ad5d85ce-e7fe-46c0-9b37-76b2ed3f4152"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| </reportElement> | </reportElement> | ||||
| </line> | </line> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="130" y="0" width="70" height="20" uuid="08d93aec-e4ae-46a6-afcb-3af9de518ca6"> | <reportElement x="130" y="0" width="70" height="20" uuid="08d93aec-e4ae-46a6-afcb-3af9de518ca6"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -630,9 +630,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[單位]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r4ce0ee8cc0b2}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="0" width="48" height="20" uuid="b4a1a243-36d7-46f7-90ea-b38dd5641a9c"> | <reportElement x="10" y="0" width="48" height="20" uuid="b4a1a243-36d7-46f7-90ea-b38dd5641a9c"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -640,9 +640,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[貨品編號]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r7f693b56a6ce}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="58" y="0" width="72" height="20" uuid="0b6e2d73-ed45-46c8-b330-07d81fe7f2da"> | <reportElement x="58" y="0" width="72" height="20" uuid="0b6e2d73-ed45-46c8-b330-07d81fe7f2da"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -650,8 +650,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[貨品名稱]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r17f6b62ed896}]]></textFieldExpression> | |||||
| </textField> | |||||
| </band> | </band> | ||||
| </columnHeader> | </columnHeader> | ||||
| </jasperReport> | </jasperReport> | ||||
| @@ -89,7 +89,7 @@ | |||||
| <groupFooter> | <groupFooter> | ||||
| <band height="19"> | <band height="19"> | ||||
| <printWhenExpression><![CDATA[$V{Group1_COUNT} > 1]]></printWhenExpression> | <printWhenExpression><![CDATA[$V{Group1_COUNT} > 1]]></printWhenExpression> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="359" y="0" width="57" height="18" uuid="518b1512-2f82-48ca-b334-652fe5991b72"> | <reportElement x="359" y="0" width="57" height="18" uuid="518b1512-2f82-48ca-b334-652fe5991b72"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -98,8 +98,8 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[貨品總量:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r9460041e30e6}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="416" y="0" width="50" height="18" uuid="6c141d7d-766e-49bf-b987-e790312573a5"> | <reportElement x="416" y="0" width="50" height="18" uuid="6c141d7d-766e-49bf-b987-e790312573a5"> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -151,7 +151,7 @@ | |||||
| </group> | </group> | ||||
| <pageHeader> | <pageHeader> | ||||
| <band height="96" splitType="Stretch"> | <band height="96" splitType="Stretch"> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="324" y="5" width="165" height="23" uuid="61492f60-688d-4110-b8d2-fcc5b5b24ba7"> | <reportElement x="324" y="5" width="165" height="23" uuid="61492f60-688d-4110-b8d2-fcc5b5b24ba7"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -159,8 +159,8 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="16" isBold="true"/> | <font fontName="微軟正黑體" size="16" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[庫存明細報告]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r53fcb0cb5f04}]]></textFieldExpression> | |||||
| </textField> | |||||
| <line> | <line> | ||||
| <reportElement x="2" y="55" width="799" height="1" uuid="33569f74-fee4-43c9-9bfe-b6bf7e12ecd4"> | <reportElement x="2" y="55" width="799" height="1" uuid="33569f74-fee4-43c9-9bfe-b6bf7e12ecd4"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -171,7 +171,7 @@ | |||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| </reportElement> | </reportElement> | ||||
| </line> | </line> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="416" y="60" width="50" height="32" uuid="75d5ce02-8001-4f6f-85ae-88c6c21c038a"> | <reportElement x="416" y="60" width="50" height="32" uuid="75d5ce02-8001-4f6f-85ae-88c6c21c038a"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -179,9 +179,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[入庫]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r7e6f86ce8a6b}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="704" y="60" width="94" height="32" uuid="bb54ccd3-e003-4eba-9d95-d2c9c84767a5"> | <reportElement x="704" y="60" width="94" height="32" uuid="bb54ccd3-e003-4eba-9d95-d2c9c84767a5"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -190,9 +190,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[存貨位置]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r7eac0bb11fb9}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="159" y="60" width="125" height="32" uuid="1a37e08c-8c54-462f-9a2d-876fc665cdba"> | <reportElement x="159" y="60" width="125" height="32" uuid="1a37e08c-8c54-462f-9a2d-876fc665cdba"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -201,9 +201,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[批號]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r1efbb116be18}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="11" y="60" width="78" height="32" uuid="29d7c8b3-689f-46c6-8283-ebc81c12e3b9"> | <reportElement x="11" y="60" width="78" height="32" uuid="29d7c8b3-689f-46c6-8283-ebc81c12e3b9"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -212,9 +212,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[出入賬日期]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r6ba3e4fc4ed5}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="524" y="60" width="66" height="32" uuid="12c55779-4875-4d8b-914c-9bbf4dcd64ff"> | <reportElement x="524" y="60" width="66" height="32" uuid="12c55779-4875-4d8b-914c-9bbf4dcd64ff"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -222,9 +222,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[纍計存量]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r832e34b15e49}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="592" y="60" width="112" height="32" uuid="19e06f3b-0c2a-4e9e-b436-79c21d497ebb"> | <reportElement x="592" y="60" width="112" height="32" uuid="19e06f3b-0c2a-4e9e-b436-79c21d497ebb"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -232,9 +232,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[參考編號]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r9e0c52c95eed}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="466" y="60" width="50" height="32" uuid="86dcb3cb-197d-458e-9530-d2f4de6e5980"> | <reportElement x="466" y="60" width="50" height="32" uuid="86dcb3cb-197d-458e-9530-d2f4de6e5980"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -243,9 +243,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[出庫]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r62feaa72467a}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="97" y="60" width="62" height="32" uuid="8fde28bc-907f-406e-9efc-b1e2ff54d819"> | <reportElement x="97" y="60" width="62" height="32" uuid="8fde28bc-907f-406e-9efc-b1e2ff54d819"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -254,9 +254,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[類型]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r469fb16b34e6}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="359" y="60" width="57" height="32" uuid="9bfc6cdc-28da-4533-a349-5951fd3bdb8d"> | <reportElement x="359" y="60" width="57" height="32" uuid="9bfc6cdc-28da-4533-a349-5951fd3bdb8d"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -264,10 +264,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[纍計期初 | |||||
| 存量]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r63c7976d4b5b}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="284" y="60" width="75" height="32" uuid="42332f71-1b1f-4cef-a8c8-c2e66f125cb7"> | <reportElement x="284" y="60" width="75" height="32" uuid="42332f71-1b1f-4cef-a8c8-c2e66f125cb7"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -275,8 +274,8 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[到期日]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r11cb5e87977f}]]></textFieldExpression> | |||||
| </textField> | |||||
| <line> | <line> | ||||
| <reportElement x="2" y="93" width="799" height="1" uuid="25601617-e2c7-4daf-829d-4525fdde0b6a"> | <reportElement x="2" y="93" width="799" height="1" uuid="25601617-e2c7-4daf-829d-4525fdde0b6a"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -296,7 +295,7 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"/> | <textElement textAlignment="Center" verticalAlignment="Middle"/> | ||||
| <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> | <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="670" y="29" width="68" height="23" uuid="743080b7-0b92-48b8-8a24-5fb93fb1a88d"> | <reportElement x="670" y="29" width="68" height="23" uuid="743080b7-0b92-48b8-8a24-5fb93fb1a88d"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -304,8 +303,8 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[報告時間:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rf3924122809a}]]></textFieldExpression> | |||||
| </textField> | |||||
| <staticText> | <staticText> | ||||
| <reportElement x="747" y="0" width="21" height="23" uuid="98c8e822-fec6-445a-9d58-93bfb137f220"> | <reportElement x="747" y="0" width="21" height="23" uuid="98c8e822-fec6-445a-9d58-93bfb137f220"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| @@ -331,7 +330,7 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"/> | <textElement textAlignment="Center" verticalAlignment="Middle"/> | ||||
| <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> | <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="30" width="90" height="23" uuid="836037e7-c4d4-40ac-a079-aefcf0bac275"> | <reportElement x="10" y="30" width="90" height="23" uuid="836037e7-c4d4-40ac-a079-aefcf0bac275"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -339,9 +338,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[報告日期:]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{re6eda806c6b1}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="677" y="0" width="40" height="23" uuid="8beee270-4955-4bd8-b315-814bea3661e0"> | <reportElement x="677" y="0" width="40" height="23" uuid="8beee270-4955-4bd8-b315-814bea3661e0"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -349,8 +348,8 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[頁數]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r604d446aa100}]]></textFieldExpression> | |||||
| </textField> | |||||
| </band> | </band> | ||||
| </pageHeader> | </pageHeader> | ||||
| <detail> | <detail> | ||||
| @@ -152,7 +152,7 @@ | |||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| </reportElement> | </reportElement> | ||||
| </line> | </line> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="290" y="0" width="220" height="23" uuid="ae59d134-591e-4212-b594-6388bc15e629"> | <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.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -160,8 +160,8 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="16" isBold="true"/> | <font fontName="微軟正黑體" size="16" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[庫存盤點報告]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r4d7049a1bca9}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="717" y="0" width="30" height="23" uuid="2b671e24-ab30-4c72-8d3c-0e68a7b7cb36"> | <reportElement x="717" y="0" width="30" height="23" uuid="2b671e24-ab30-4c72-8d3c-0e68a7b7cb36"> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -181,7 +181,7 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[($P{stockTakeFilterCaption} != null && !$P{stockTakeFilterCaption}.isEmpty()) ? $P{stockTakeFilterCaption} : ($P{stockTakeDateStart} + " 至 " + $P{stockTakeDateEnd})]]></textFieldExpression> | |||||
| <textFieldExpression><![CDATA[($P{stockTakeFilterCaption} != null && !$P{stockTakeFilterCaption}.isEmpty()) ? $P{stockTakeFilterCaption} : ($P{stockTakeDateStart} + $R{r9f96f7e891cd} + $P{stockTakeDateEnd})]]></textFieldExpression> | |||||
| </textField> | </textField> | ||||
| <staticText> | <staticText> | ||||
| <reportElement x="747" y="0" width="21" height="23" uuid="5a1b4b58-b7b1-48c9-b229-7e96392c6425"> | <reportElement x="747" y="0" width="21" height="23" uuid="5a1b4b58-b7b1-48c9-b229-7e96392c6425"> | ||||
| @@ -211,7 +211,7 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{stockTakeConditionLabel}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{stockTakeConditionLabel}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="30" width="90" height="23" uuid="0628b331-5736-4f93-bed3-2278011456aa"> | <reportElement x="10" y="30" width="90" height="23" uuid="0628b331-5736-4f93-bed3-2278011456aa"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -219,9 +219,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12" isBold="true"/> | <font fontName="微軟正黑體" size="12" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[報告日期:]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{re6eda806c6b1}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="677" y="0" width="40" height="23" uuid="db6e3fb3-b375-497b-bfc2-1795ec7ecefb"> | <reportElement x="677" y="0" width="40" height="23" uuid="db6e3fb3-b375-497b-bfc2-1795ec7ecefb"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -229,13 +229,13 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[頁數]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r604d446aa100}]]></textFieldExpression> | |||||
| </textField> | |||||
| </band> | </band> | ||||
| </pageHeader> | </pageHeader> | ||||
| <columnHeader> | <columnHeader> | ||||
| <band height="20"> | <band height="20"> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement isPrintRepeatedValues="false" x="10" y="1" width="100" height="18" isPrintInFirstWholeBand="true" uuid="12b01171-4800-444d-b50a-e9b204f526a7"> | <reportElement isPrintRepeatedValues="false" x="10" y="1" width="100" height="18" isPrintInFirstWholeBand="true" uuid="12b01171-4800-444d-b50a-e9b204f526a7"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -244,9 +244,9 @@ | |||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[批號]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r1efbb116be18}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement isPrintRepeatedValues="false" x="110" y="1" width="98" height="18" isPrintInFirstWholeBand="true" uuid="8d6b48f0-38f2-45b9-b306-9e7c81b99d5f"> | <reportElement isPrintRepeatedValues="false" x="110" y="1" width="98" height="18" isPrintInFirstWholeBand="true" uuid="8d6b48f0-38f2-45b9-b306-9e7c81b99d5f"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -255,9 +255,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[到期日]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r11cb5e87977f}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement isPrintRepeatedValues="false" x="324" y="1" width="64" height="18" isPrintInFirstWholeBand="true" uuid="38b97df1-2013-4b2d-a48d-06015c159953"> | <reportElement isPrintRepeatedValues="false" x="324" y="1" width="64" height="18" isPrintInFirstWholeBand="true" uuid="38b97df1-2013-4b2d-a48d-06015c159953"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -266,9 +266,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[盤點前存量]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r5f2d6fed3a7d}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement isPrintRepeatedValues="false" x="208" y="1" width="110" height="18" isPrintInFirstWholeBand="true" uuid="e95a755d-4ecb-4900-ac9a-3a6e3b9b3470"> | <reportElement isPrintRepeatedValues="false" x="208" y="1" width="110" height="18" isPrintInFirstWholeBand="true" uuid="e95a755d-4ecb-4900-ac9a-3a6e3b9b3470"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -277,9 +277,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[存貨位置]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r7eac0bb11fb9}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement isPrintRepeatedValues="false" x="688" y="1" width="110" height="18" isPrintInFirstWholeBand="true" uuid="12a99c2d-6eb7-44c3-b442-37a89be3fe15"> | <reportElement isPrintRepeatedValues="false" x="688" y="1" width="110" height="18" isPrintInFirstWholeBand="true" uuid="12a99c2d-6eb7-44c3-b442-37a89be3fe15"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -288,9 +288,9 @@ | |||||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | <textElement textAlignment="Center" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[審核時間]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r2d36c3ab208f}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement isPrintRepeatedValues="false" x="520" y="1" width="82" height="18" isPrintInFirstWholeBand="true" uuid="921c16b3-172b-43b9-a090-24d2ee88a1b2"> | <reportElement isPrintRepeatedValues="false" x="520" y="1" width="82" height="18" isPrintInFirstWholeBand="true" uuid="921c16b3-172b-43b9-a090-24d2ee88a1b2"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -299,9 +299,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[盤盈虧百分比]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{rbad7c57898bb}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement isPrintRepeatedValues="false" x="461" y="1" width="59" height="18" isPrintInFirstWholeBand="true" uuid="5dfc210f-b576-472b-a8a2-9db870c19b92"> | <reportElement isPrintRepeatedValues="false" x="461" y="1" width="59" height="18" isPrintInFirstWholeBand="true" uuid="5dfc210f-b576-472b-a8a2-9db870c19b92"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -310,9 +310,9 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[盤盈虧]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r4876d5589e5b}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement isPrintRepeatedValues="false" x="388" y="1" width="72" height="18" isPrintInFirstWholeBand="true" uuid="1590e6c1-5f5a-46ca-84ae-a45e2d4c5a0b"> | <reportElement isPrintRepeatedValues="false" x="388" y="1" width="72" height="18" isPrintInFirstWholeBand="true" uuid="1590e6c1-5f5a-46ca-84ae-a45e2d4c5a0b"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -321,14 +321,14 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[盤點數]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rcfb0ffd45d73}]]></textFieldExpression> | |||||
| </textField> | |||||
| <line> | <line> | ||||
| <reportElement isPrintRepeatedValues="false" x="0" y="19" width="800" height="1" isPrintInFirstWholeBand="true" uuid="8bdc6e64-fc14-4fee-bfd3-f2e68abdc606"> | <reportElement isPrintRepeatedValues="false" x="0" y="19" width="800" height="1" isPrintInFirstWholeBand="true" uuid="8bdc6e64-fc14-4fee-bfd3-f2e68abdc606"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| </reportElement> | </reportElement> | ||||
| </line> | </line> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement isPrintRepeatedValues="false" x="602" y="1" width="86" height="18" isPrintInFirstWholeBand="true" uuid="0b8d0574-7a70-46f4-a622-384e0c32f0de"> | <reportElement isPrintRepeatedValues="false" x="602" y="1" width="86" height="18" isPrintInFirstWholeBand="true" uuid="0b8d0574-7a70-46f4-a622-384e0c32f0de"> | ||||
| <property name="com.jaspersoft.studio.unit.y" value="px"/> | <property name="com.jaspersoft.studio.unit.y" value="px"/> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -337,8 +337,8 @@ | |||||
| <textElement textAlignment="Right" verticalAlignment="Middle"> | <textElement textAlignment="Right" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10"/> | <font fontName="微軟正黑體" size="10"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[類型]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r469fb16b34e6}]]></textFieldExpression> | |||||
| </textField> | |||||
| </band> | </band> | ||||
| </columnHeader> | </columnHeader> | ||||
| <detail> | <detail> | ||||
| @@ -38,20 +38,20 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$F{lotNo}]]></textFieldExpression> | <textFieldExpression><![CDATA[$F{lotNo}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="14" width="80" height="16" uuid="f5f145f1-123f-4fe5-90fa-8550b3d2eb63"/> | <reportElement x="10" y="14" width="80" height="16" uuid="f5f145f1-123f-4fe5-90fa-8550b3d2eb63"/> | ||||
| <textElement textAlignment="Left"> | <textElement textAlignment="Left"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[批次編號:]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{rd27e4a4ff359}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="42" width="80" height="16" uuid="c2041205-51f8-45bb-a1d1-e3de37eebed7"/> | <reportElement x="10" y="42" width="80" height="16" uuid="c2041205-51f8-45bb-a1d1-e3de37eebed7"/> | ||||
| <textElement textAlignment="Left"> | <textElement textAlignment="Left"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[供應商:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r60650ec2d16b}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="90" y="42" width="150" height="16" uuid="ab82ca39-8840-4471-b7c0-cdeec9cb5693"> | <reportElement x="90" y="42" width="150" height="16" uuid="ab82ca39-8840-4471-b7c0-cdeec9cb5693"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -62,13 +62,13 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$F{supplier}]]></textFieldExpression> | <textFieldExpression><![CDATA[$F{supplier}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="97" width="80" height="16" uuid="96d46fb1-939d-4f3e-b8f0-172b69b85e9f"/> | <reportElement x="10" y="97" width="80" height="16" uuid="96d46fb1-939d-4f3e-b8f0-172b69b85e9f"/> | ||||
| <textElement textAlignment="Left"> | <textElement textAlignment="Left"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[物料編號:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r3a4716a37bef}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="90" y="97" width="150" height="16" uuid="1f289946-b945-4f79-8515-212368b8be3b"> | <reportElement x="90" y="97" width="150" height="16" uuid="1f289946-b945-4f79-8515-212368b8be3b"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -79,13 +79,13 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$F{itemNo}]]></textFieldExpression> | <textFieldExpression><![CDATA[$F{itemNo}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="163" width="80" height="16" uuid="53a2d7cf-bd50-4264-abee-346823cd49dd"/> | <reportElement x="10" y="163" width="80" height="16" uuid="53a2d7cf-bd50-4264-abee-346823cd49dd"/> | ||||
| <textElement textAlignment="Left"> | <textElement textAlignment="Left"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[數量:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r8404b57157c6}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="StretchHeight"> | <textField textAdjust="StretchHeight"> | ||||
| <reportElement x="90" y="163" width="150" height="16" uuid="629d9af8-c73f-4614-ba9d-a582e2ed4a29"> | <reportElement x="90" y="163" width="150" height="16" uuid="629d9af8-c73f-4614-ba9d-a582e2ed4a29"> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -103,15 +103,15 @@ | |||||
| </reportElement> | </reportElement> | ||||
| <imageExpression><![CDATA[$F{qrCode}]]></imageExpression> | <imageExpression><![CDATA[$F{qrCode}]]></imageExpression> | ||||
| </image> | </image> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="209" width="80" height="16" uuid="c62ac00a-c495-462c-93bc-97bdd3cdb395"> | <reportElement x="10" y="209" width="80" height="16" uuid="c62ac00a-c495-462c-93bc-97bdd3cdb395"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| </reportElement> | </reportElement> | ||||
| <textElement textAlignment="Left"> | <textElement textAlignment="Left"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[收貨日期:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r8689d87a0ff1}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="90" y="209" width="150" height="16" uuid="74a5cfba-046d-42f4-92d7-113729514a6f"> | <reportElement x="90" y="209" width="150" height="16" uuid="74a5cfba-046d-42f4-92d7-113729514a6f"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -122,13 +122,13 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$F{productionDate}]]></textFieldExpression> | <textFieldExpression><![CDATA[$F{productionDate}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="70" width="80" height="16" uuid="1b1efafd-049a-432e-93c4-9662273011f7"/> | <reportElement x="10" y="70" width="80" height="16" uuid="1b1efafd-049a-432e-93c4-9662273011f7"/> | ||||
| <textElement textAlignment="Left"> | <textElement textAlignment="Left"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[採購訂單編號:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r659a9e9a692d}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="90" y="70" width="150" height="16" uuid="b805e20a-9a36-45c8-8255-23b6cc58f47c"> | <reportElement x="90" y="70" width="150" height="16" uuid="b805e20a-9a36-45c8-8255-23b6cc58f47c"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -139,13 +139,13 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$P{poCode}]]></textFieldExpression> | <textFieldExpression><![CDATA[$P{poCode}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="125" width="80" height="16" uuid="5c3f9b03-222c-4c94-ab58-6bc86d44c5ce"/> | <reportElement x="10" y="125" width="80" height="16" uuid="5c3f9b03-222c-4c94-ab58-6bc86d44c5ce"/> | ||||
| <textElement textAlignment="Left"> | <textElement textAlignment="Left"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[物料名稱:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r5d526c7219e5}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="StretchHeight"> | <textField textAdjust="StretchHeight"> | ||||
| <reportElement x="90" y="125" width="150" height="16" uuid="e04b094d-2d16-4060-b6d9-2e6033a673ab"> | <reportElement x="90" y="125" width="150" height="16" uuid="e04b094d-2d16-4060-b6d9-2e6033a673ab"> | ||||
| <property name="com.jaspersoft.studio.unit.width" value="px"/> | <property name="com.jaspersoft.studio.unit.width" value="px"/> | ||||
| @@ -156,13 +156,13 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$F{itemName}]]></textFieldExpression> | <textFieldExpression><![CDATA[$F{itemName}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="10" y="237" width="80" height="16" uuid="32edcad1-23c1-4d41-8c9a-352d9e6ef377"/> | <reportElement x="10" y="237" width="80" height="16" uuid="32edcad1-23c1-4d41-8c9a-352d9e6ef377"/> | ||||
| <textElement textAlignment="Left"> | <textElement textAlignment="Left"> | ||||
| <font fontName="微軟正黑體" size="12"/> | <font fontName="微軟正黑體" size="12"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[到期日:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rf79aab5b7eed}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField> | <textField> | ||||
| <reportElement x="90" y="237" width="150" height="16" uuid="97e4a9bb-fc84-4074-b523-ddf9eb9ed2d2"> | <reportElement x="90" y="237" width="150" height="16" uuid="97e4a9bb-fc84-4074-b523-ddf9eb9ed2d2"> | ||||
| <property name="com.jaspersoft.studio.unit.height" value="px"/> | <property name="com.jaspersoft.studio.unit.height" value="px"/> | ||||
| @@ -30,13 +30,13 @@ | |||||
| </background> | </background> | ||||
| <detail> | <detail> | ||||
| <band height="279" splitType="Prevent"> | <band height="279" splitType="Prevent"> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="8" y="0" width="108" height="56" uuid="c62ac00a-c495-462c-93bc-97bdd3cdb395"/> | <reportElement x="8" y="0" width="108" height="56" uuid="c62ac00a-c495-462c-93bc-97bdd3cdb395"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="18" isBold="true"/> | <font fontName="微軟正黑體" size="18" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[收貨日期:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r8689d87a0ff1}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | ||||
| <reportElement x="116" y="0" width="301" height="56" uuid="74a5cfba-046d-42f4-92d7-113729514a6f"/> | <reportElement x="116" y="0" width="301" height="56" uuid="74a5cfba-046d-42f4-92d7-113729514a6f"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -44,13 +44,13 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$F{productionDate}]]></textFieldExpression> | <textFieldExpression><![CDATA[$F{productionDate}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="8" y="56" width="108" height="56" uuid="32edcad1-23c1-4d41-8c9a-352d9e6ef377"/> | <reportElement x="8" y="56" width="108" height="56" uuid="32edcad1-23c1-4d41-8c9a-352d9e6ef377"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="18" isBold="true"/> | <font fontName="微軟正黑體" size="18" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[到期日:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rf79aab5b7eed}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | ||||
| <reportElement x="116" y="56" width="301" height="56" uuid="97e4a9bb-fc84-4074-b523-ddf9eb9ed2d2"/> | <reportElement x="116" y="56" width="301" height="56" uuid="97e4a9bb-fc84-4074-b523-ddf9eb9ed2d2"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -58,13 +58,13 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$F{expiryDate}]]></textFieldExpression> | <textFieldExpression><![CDATA[$F{expiryDate}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="8" y="114" width="230" height="18" uuid="f5f145f1-123f-4fe5-90fa-8550b3d2eb63"/> | <reportElement x="8" y="114" width="230" height="18" uuid="f5f145f1-123f-4fe5-90fa-8550b3d2eb63"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[批次編號:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rd27e4a4ff359}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | ||||
| <reportElement x="8" y="132" width="230" height="20" uuid="402f35fc-b11a-4bf1-982d-e12c622f38ea"/> | <reportElement x="8" y="132" width="230" height="20" uuid="402f35fc-b11a-4bf1-982d-e12c622f38ea"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -72,20 +72,20 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$F{lotNo}]]></textFieldExpression> | <textFieldExpression><![CDATA[$F{lotNo}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="8" y="152" width="108" height="18" uuid="96d46fb1-939d-4f3e-b8f0-172b69b85e9f"/> | <reportElement x="8" y="152" width="108" height="18" uuid="96d46fb1-939d-4f3e-b8f0-172b69b85e9f"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[物料編號:]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r3a4716a37bef}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="120" y="152" width="118" height="18" uuid="53a2d7cf-bd50-4264-abee-346823cd49dd"/> | <reportElement x="120" y="152" width="118" height="18" uuid="53a2d7cf-bd50-4264-abee-346823cd49dd"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[數量:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r8404b57157c6}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | ||||
| <reportElement x="8" y="170" width="108" height="28" uuid="1f289946-b945-4f79-8515-212368b8be3b"/> | <reportElement x="8" y="170" width="108" height="28" uuid="1f289946-b945-4f79-8515-212368b8be3b"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -109,13 +109,13 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$F{qtyDetail}]]></textFieldExpression> | <textFieldExpression><![CDATA[$F{qtyDetail}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="8" y="200" width="230" height="16" uuid="5c3f9b03-222c-4c94-ab58-6bc86d44c5ce"/> | <reportElement x="8" y="200" width="230" height="16" uuid="5c3f9b03-222c-4c94-ab58-6bc86d44c5ce"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[物料名稱:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r5d526c7219e5}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | ||||
| <reportElement x="8" y="216" width="230" height="30" uuid="e04b094d-2d16-4060-b6d9-2e6033a673ab"/> | <reportElement x="8" y="216" width="230" height="30" uuid="e04b094d-2d16-4060-b6d9-2e6033a673ab"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -127,13 +127,13 @@ | |||||
| <reportElement x="248" y="112" width="166" height="166" uuid="5dd35c73-973b-4f0d-9cad-13305a29a9fd"/> | <reportElement x="248" y="112" width="166" height="166" uuid="5dd35c73-973b-4f0d-9cad-13305a29a9fd"/> | ||||
| <imageExpression><![CDATA[$F{qrCode}]]></imageExpression> | <imageExpression><![CDATA[$F{qrCode}]]></imageExpression> | ||||
| </image> | </image> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="8" y="248" width="42" height="14" uuid="c2041205-51f8-45bb-a1d1-e3de37eebed7"/> | <reportElement x="8" y="248" width="42" height="14" uuid="c2041205-51f8-45bb-a1d1-e3de37eebed7"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="8"/> | <font fontName="微軟正黑體" size="8"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[供應商:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r60650ec2d16b}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | ||||
| <reportElement x="50" y="248" width="188" height="14" uuid="ab82ca39-8840-4471-b7c0-cdeec9cb5693"/> | <reportElement x="50" y="248" width="188" height="14" uuid="ab82ca39-8840-4471-b7c0-cdeec9cb5693"/> | ||||
| <textElement verticalAlignment="Middle"> | <textElement verticalAlignment="Middle"> | ||||
| @@ -141,13 +141,13 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$F{supplier}]]></textFieldExpression> | <textFieldExpression><![CDATA[$F{supplier}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="8" y="262" width="76" height="14" uuid="1b1efafd-049a-432e-93c4-9662273011f7"/> | <reportElement x="8" y="262" width="76" height="14" uuid="1b1efafd-049a-432e-93c4-9662273011f7"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="8"/> | <font fontName="微軟正黑體" size="8"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[採購訂單編號:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r659a9e9a692d}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | ||||
| <reportElement x="84" y="262" width="154" height="14" uuid="b805e20a-9a36-45c8-8255-23b6cc58f47c"/> | <reportElement x="84" y="262" width="154" height="14" uuid="b805e20a-9a36-45c8-8255-23b6cc58f47c"/> | ||||
| <textElement verticalAlignment="Middle"> | <textElement verticalAlignment="Middle"> | ||||
| @@ -30,13 +30,13 @@ | |||||
| </background> | </background> | ||||
| <detail> | <detail> | ||||
| <band height="279" splitType="Prevent"> | <band height="279" splitType="Prevent"> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="8" y="0" width="108" height="56" uuid="c62ac00a-c495-462c-93bc-97bdd3cdb395"/> | <reportElement x="8" y="0" width="108" height="56" uuid="c62ac00a-c495-462c-93bc-97bdd3cdb395"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="18" isBold="true"/> | <font fontName="微軟正黑體" size="18" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[收貨日期:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r8689d87a0ff1}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | ||||
| <reportElement x="116" y="0" width="301" height="56" uuid="74a5cfba-046d-42f4-92d7-113729514a6f"/> | <reportElement x="116" y="0" width="301" height="56" uuid="74a5cfba-046d-42f4-92d7-113729514a6f"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -44,13 +44,13 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$F{productionDate}]]></textFieldExpression> | <textFieldExpression><![CDATA[$F{productionDate}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="8" y="56" width="108" height="56" uuid="32edcad1-23c1-4d41-8c9a-352d9e6ef377"/> | <reportElement x="8" y="56" width="108" height="56" uuid="32edcad1-23c1-4d41-8c9a-352d9e6ef377"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="18" isBold="true"/> | <font fontName="微軟正黑體" size="18" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[到期日:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rf79aab5b7eed}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | ||||
| <reportElement x="116" y="56" width="301" height="56" uuid="97e4a9bb-fc84-4074-b523-ddf9eb9ed2d2"/> | <reportElement x="116" y="56" width="301" height="56" uuid="97e4a9bb-fc84-4074-b523-ddf9eb9ed2d2"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -58,13 +58,13 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$F{expiryDate}]]></textFieldExpression> | <textFieldExpression><![CDATA[$F{expiryDate}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="8" y="114" width="286" height="16" uuid="f5f145f1-123f-4fe5-90fa-8550b3d2eb63"/> | <reportElement x="8" y="114" width="286" height="16" uuid="f5f145f1-123f-4fe5-90fa-8550b3d2eb63"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[批次編號:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rd27e4a4ff359}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | ||||
| <reportElement x="8" y="130" width="286" height="20" uuid="402f35fc-b11a-4bf1-982d-e12c622f38ea"/> | <reportElement x="8" y="130" width="286" height="20" uuid="402f35fc-b11a-4bf1-982d-e12c622f38ea"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -72,20 +72,20 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$F{lotNo}]]></textFieldExpression> | <textFieldExpression><![CDATA[$F{lotNo}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="8" y="152" width="140" height="16" uuid="96d46fb1-939d-4f3e-b8f0-172b69b85e9f"/> | <reportElement x="8" y="152" width="140" height="16" uuid="96d46fb1-939d-4f3e-b8f0-172b69b85e9f"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[物料編號:]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r3a4716a37bef}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="152" y="152" width="142" height="16" uuid="53a2d7cf-bd50-4264-abee-346823cd49dd"/> | <reportElement x="152" y="152" width="142" height="16" uuid="53a2d7cf-bd50-4264-abee-346823cd49dd"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[數量:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r8404b57157c6}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | ||||
| <reportElement x="8" y="168" width="140" height="26" uuid="1f289946-b945-4f79-8515-212368b8be3b"/> | <reportElement x="8" y="168" width="140" height="26" uuid="1f289946-b945-4f79-8515-212368b8be3b"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -109,13 +109,13 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$F{qtyDetail}]]></textFieldExpression> | <textFieldExpression><![CDATA[$F{qtyDetail}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="8" y="200" width="290" height="18" uuid="5c3f9b03-222c-4c94-ab58-6bc86d44c5ce"/> | <reportElement x="8" y="200" width="290" height="18" uuid="5c3f9b03-222c-4c94-ab58-6bc86d44c5ce"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[物料名稱:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r5d526c7219e5}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | ||||
| <reportElement x="8" y="218" width="290" height="58" uuid="e04b094d-2d16-4060-b6d9-2e6033a673ab"/> | <reportElement x="8" y="218" width="290" height="58" uuid="e04b094d-2d16-4060-b6d9-2e6033a673ab"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -127,13 +127,13 @@ | |||||
| <reportElement x="308" y="116" width="108" height="108" uuid="5dd35c73-973b-4f0d-9cad-13305a29a9fd"/> | <reportElement x="308" y="116" width="108" height="108" uuid="5dd35c73-973b-4f0d-9cad-13305a29a9fd"/> | ||||
| <imageExpression><![CDATA[$F{qrCode}]]></imageExpression> | <imageExpression><![CDATA[$F{qrCode}]]></imageExpression> | ||||
| </image> | </image> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="308" y="226" width="108" height="12" uuid="c2041205-51f8-45bb-a1d1-e3de37eebed7"/> | <reportElement x="308" y="226" width="108" height="12" uuid="c2041205-51f8-45bb-a1d1-e3de37eebed7"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="8"/> | <font fontName="微軟正黑體" size="8"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[供應商:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r60650ec2d16b}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | ||||
| <reportElement x="308" y="238" width="108" height="14" uuid="ab82ca39-8840-4471-b7c0-cdeec9cb5693"/> | <reportElement x="308" y="238" width="108" height="14" uuid="ab82ca39-8840-4471-b7c0-cdeec9cb5693"/> | ||||
| <textElement verticalAlignment="Middle"> | <textElement verticalAlignment="Middle"> | ||||
| @@ -141,13 +141,13 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$F{supplier}]]></textFieldExpression> | <textFieldExpression><![CDATA[$F{supplier}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="308" y="252" width="108" height="12" uuid="1b1efafd-049a-432e-93c4-9662273011f7"/> | <reportElement x="308" y="252" width="108" height="12" uuid="1b1efafd-049a-432e-93c4-9662273011f7"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="8"/> | <font fontName="微軟正黑體" size="8"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[採購訂單編號:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r659a9e9a692d}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | ||||
| <reportElement x="308" y="264" width="108" height="14" uuid="b805e20a-9a36-45c8-8255-23b6cc58f47c"/> | <reportElement x="308" y="264" width="108" height="14" uuid="b805e20a-9a36-45c8-8255-23b6cc58f47c"/> | ||||
| <textElement verticalAlignment="Middle"> | <textElement verticalAlignment="Middle"> | ||||
| @@ -30,13 +30,13 @@ | |||||
| </background> | </background> | ||||
| <detail> | <detail> | ||||
| <band height="279" splitType="Prevent"> | <band height="279" splitType="Prevent"> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="4" y="0" width="222" height="16" uuid="c62ac00a-c495-462c-93bc-97bdd3cdb395"/> | <reportElement x="4" y="0" width="222" height="16" uuid="c62ac00a-c495-462c-93bc-97bdd3cdb395"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="11" isBold="true"/> | <font fontName="微軟正黑體" size="11" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[收貨日期:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r8689d87a0ff1}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | ||||
| <reportElement x="4" y="16" width="222" height="52" uuid="74a5cfba-046d-42f4-92d7-113729514a6f"/> | <reportElement x="4" y="16" width="222" height="52" uuid="74a5cfba-046d-42f4-92d7-113729514a6f"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -44,13 +44,13 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$F{productionDate}]]></textFieldExpression> | <textFieldExpression><![CDATA[$F{productionDate}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="4" y="70" width="222" height="16" uuid="32edcad1-23c1-4d41-8c9a-352d9e6ef377"/> | <reportElement x="4" y="70" width="222" height="16" uuid="32edcad1-23c1-4d41-8c9a-352d9e6ef377"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="11" isBold="true"/> | <font fontName="微軟正黑體" size="11" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[到期日:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rf79aab5b7eed}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | ||||
| <reportElement x="4" y="86" width="222" height="52" uuid="97e4a9bb-fc84-4074-b523-ddf9eb9ed2d2"/> | <reportElement x="4" y="86" width="222" height="52" uuid="97e4a9bb-fc84-4074-b523-ddf9eb9ed2d2"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -58,20 +58,20 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$F{expiryDate}]]></textFieldExpression> | <textFieldExpression><![CDATA[$F{expiryDate}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="8" y="142" width="104" height="16" uuid="96d46fb1-939d-4f3e-b8f0-172b69b85e9f"/> | <reportElement x="8" y="142" width="104" height="16" uuid="96d46fb1-939d-4f3e-b8f0-172b69b85e9f"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[物料編號:]]></text> | |||||
| </staticText> | |||||
| <staticText> | |||||
| <textFieldExpression><![CDATA[$R{r3a4716a37bef}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="130" y="142" width="96" height="16" uuid="53a2d7cf-bd50-4264-abee-346823cd49dd"/> | <reportElement x="130" y="142" width="96" height="16" uuid="53a2d7cf-bd50-4264-abee-346823cd49dd"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[數量:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r8404b57157c6}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | ||||
| <reportElement x="8" y="158" width="118" height="34" uuid="1f289946-b945-4f79-8515-212368b8be3b"/> | <reportElement x="8" y="158" width="118" height="34" uuid="1f289946-b945-4f79-8515-212368b8be3b"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -95,13 +95,13 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$F{qtyDetail}]]></textFieldExpression> | <textFieldExpression><![CDATA[$F{qtyDetail}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="8" y="196" width="218" height="16" uuid="5c3f9b03-222c-4c94-ab58-6bc86d44c5ce"/> | <reportElement x="8" y="196" width="218" height="16" uuid="5c3f9b03-222c-4c94-ab58-6bc86d44c5ce"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[物料名稱:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r5d526c7219e5}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | ||||
| <reportElement x="8" y="212" width="218" height="64" uuid="e04b094d-2d16-4060-b6d9-2e6033a673ab"/> | <reportElement x="8" y="212" width="218" height="64" uuid="e04b094d-2d16-4060-b6d9-2e6033a673ab"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -113,13 +113,13 @@ | |||||
| <reportElement x="230" y="4" width="190" height="190" uuid="5dd35c73-973b-4f0d-9cad-13305a29a9fd"/> | <reportElement x="230" y="4" width="190" height="190" uuid="5dd35c73-973b-4f0d-9cad-13305a29a9fd"/> | ||||
| <imageExpression><![CDATA[$F{qrCode}]]></imageExpression> | <imageExpression><![CDATA[$F{qrCode}]]></imageExpression> | ||||
| </image> | </image> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="230" y="196" width="190" height="16" uuid="f5f145f1-123f-4fe5-90fa-8550b3d2eb63"/> | <reportElement x="230" y="196" width="190" height="16" uuid="f5f145f1-123f-4fe5-90fa-8550b3d2eb63"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | <font fontName="微軟正黑體" size="10" isBold="true"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[批次編號:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{rd27e4a4ff359}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | ||||
| <reportElement x="230" y="212" width="190" height="26" uuid="402f35fc-b11a-4bf1-982d-e12c622f38ea"/> | <reportElement x="230" y="212" width="190" height="26" uuid="402f35fc-b11a-4bf1-982d-e12c622f38ea"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| @@ -127,13 +127,13 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$F{lotNo}]]></textFieldExpression> | <textFieldExpression><![CDATA[$F{lotNo}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="230" y="240" width="42" height="16" uuid="c2041205-51f8-45bb-a1d1-e3de37eebed7"/> | <reportElement x="230" y="240" width="42" height="16" uuid="c2041205-51f8-45bb-a1d1-e3de37eebed7"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="8"/> | <font fontName="微軟正黑體" size="8"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[供應商:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r60650ec2d16b}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | ||||
| <reportElement x="272" y="240" width="148" height="16" uuid="ab82ca39-8840-4471-b7c0-cdeec9cb5693"/> | <reportElement x="272" y="240" width="148" height="16" uuid="ab82ca39-8840-4471-b7c0-cdeec9cb5693"/> | ||||
| <textElement verticalAlignment="Middle"> | <textElement verticalAlignment="Middle"> | ||||
| @@ -141,13 +141,13 @@ | |||||
| </textElement> | </textElement> | ||||
| <textFieldExpression><![CDATA[$F{supplier}]]></textFieldExpression> | <textFieldExpression><![CDATA[$F{supplier}]]></textFieldExpression> | ||||
| </textField> | </textField> | ||||
| <staticText> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||||
| <reportElement x="230" y="258" width="72" height="16" uuid="1b1efafd-049a-432e-93c4-9662273011f7"/> | <reportElement x="230" y="258" width="72" height="16" uuid="1b1efafd-049a-432e-93c4-9662273011f7"/> | ||||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | <textElement textAlignment="Left" verticalAlignment="Middle"> | ||||
| <font fontName="微軟正黑體" size="8"/> | <font fontName="微軟正黑體" size="8"/> | ||||
| </textElement> | </textElement> | ||||
| <text><![CDATA[採購訂單編號:]]></text> | |||||
| </staticText> | |||||
| <textFieldExpression><![CDATA[$R{r659a9e9a692d}]]></textFieldExpression> | |||||
| </textField> | |||||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | ||||
| <reportElement x="302" y="258" width="118" height="16" uuid="b805e20a-9a36-45c8-8255-23b6cc58f47c"/> | <reportElement x="302" y="258" width="118" height="16" uuid="b805e20a-9a36-45c8-8255-23b6cc58f47c"/> | ||||
| <textElement verticalAlignment="Middle"> | <textElement verticalAlignment="Middle"> | ||||