| Аутор | SHA1 | Порука | Датум |
|---|---|---|---|
|
|
e5ae1e7a65 | fixing the pdf label | пре 1 месец |
|
|
4c63122e9c |
Add PO item label versions 2-4, selected by LABEL.poItem.version.
Version 1 stays the default until the setting is changed. Co-authored-by: Cursor <[email protected]> |
пре 1 месец |
| @@ -12,6 +12,7 @@ import net.sf.jasperreports.engine.JRDataSource; | |||
| import net.sf.jasperreports.engine.JREmptyDataSource; | |||
| import net.sf.jasperreports.engine.JasperFillManager; | |||
| import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; | |||
| import net.sf.jasperreports.engine.data.JRMapCollectionDataSource; | |||
| public class PdfUtils { | |||
| @@ -23,8 +24,16 @@ public class PdfUtils { | |||
| public static <T> JasperPrint fillReport(JasperReport report, List<T> loopList, Map<String, Object> params) | |||
| throws Exception { | |||
| JRDataSource dataSources = loopList.size() > 0 ? new JRBeanCollectionDataSource(loopList) | |||
| : new JREmptyDataSource(); | |||
| JRDataSource dataSources; | |||
| if (loopList == null || loopList.isEmpty()) { | |||
| dataSources = new JREmptyDataSource(); | |||
| } else if (loopList.get(0) instanceof Map) { | |||
| @SuppressWarnings("unchecked") | |||
| List<Map<String, ?>> rows = (List<Map<String, ?>>) loopList; | |||
| dataSources = new JRMapCollectionDataSource(rows); | |||
| } else { | |||
| dataSources = new JRBeanCollectionDataSource(loopList); | |||
| } | |||
| JasperPrint jasperPrint = JasperFillManager.fillReport(report, params, dataSources); | |||
| return jasperPrint; | |||
| } | |||
| @@ -1,18 +1,21 @@ | |||
| package com.ffii.core.utils | |||
| import com.google.zxing.BarcodeFormat | |||
| import com.google.zxing.EncodeHintType | |||
| import java.awt.image.BufferedImage | |||
| import com.google.zxing.client.j2se.MatrixToImageWriter; | |||
| import com.google.zxing.common.BitMatrix; | |||
| import com.google.zxing.qrcode.QRCodeWriter; | |||
| import com.google.zxing.client.j2se.MatrixToImageWriter | |||
| import com.google.zxing.qrcode.QRCodeWriter | |||
| open class QrCodeUtil { | |||
| companion object { | |||
| fun generateQRCodeImage(barcodeText: String?): BufferedImage { | |||
| val barcodeWriter = QRCodeWriter() | |||
| val bitMatrix: BitMatrix = barcodeWriter.encode(barcodeText, BarcodeFormat.QR_CODE, 250, 250) | |||
| val img: BufferedImage = MatrixToImageWriter.toBufferedImage(bitMatrix) | |||
| return img | |||
| return generateQRCodeImage(barcodeText, 250, 4) | |||
| } | |||
| fun generateQRCodeImage(barcodeText: String?, size: Int, margin: Int): BufferedImage { | |||
| val hints = hashMapOf<EncodeHintType, Any>(EncodeHintType.MARGIN to margin) | |||
| val bitMatrix = QRCodeWriter().encode(barcodeText, BarcodeFormat.QR_CODE, size, size, hints) | |||
| return MatrixToImageWriter.toBufferedImage(bitMatrix) | |||
| } | |||
| } | |||
| } | |||
| @@ -135,4 +135,7 @@ public abstract class SettingNames { | |||
| /** JSON: last laser TCP send where printer returned receive (job order no., lot, itemId/stockInLineId, etc.) */ | |||
| public static final String LASER_PRINT_LAST_RECEIVE_SUCCESS = "LASER_PRINT.lastReceiveSuccess"; | |||
| /** PO / stock-in item label: 1 = original, 2 = enlarged, 3 = smaller QR, 4 = version 3 with the version 1 QR size. */ | |||
| public static final String LABEL_PO_ITEM_VERSION = "LABEL.poItem.version"; | |||
| } | |||
| @@ -2,7 +2,6 @@ package com.ffii.fpsms.modules.stock.service | |||
| import com.ffii.core.response.RecordsRes | |||
| import com.ffii.core.utils.PdfUtils | |||
| import com.ffii.core.utils.QrCodeUtil | |||
| import com.ffii.fpsms.modules.master.entity.ItemUomRespository | |||
| import com.ffii.fpsms.modules.master.entity.WarehouseRepository | |||
| import com.ffii.fpsms.modules.stock.entity.InventoryLotLine | |||
| @@ -44,6 +43,7 @@ import com.ffii.fpsms.modules.stock.web.model.WorkbenchItemLotsResponse | |||
| import com.ffii.fpsms.modules.jobOrder.service.JobOrderService | |||
| import com.ffii.fpsms.modules.jobOrder.web.model.ExportFGStockInLabelRequest | |||
| import com.ffii.fpsms.modules.master.service.PrinterService | |||
| import com.ffii.fpsms.modules.settings.service.SettingsService | |||
| import com.ffii.fpsms.modules.stock.web.model.PrintLabelForInventoryLotLineRequest | |||
| import com.ffii.fpsms.modules.jobOrder.web.model.PrintFGStockInLabelRequest | |||
| import com.ffii.core.utils.ZebraPrinterUtil | |||
| @@ -60,6 +60,7 @@ open class InventoryLotLineService( | |||
| private val stockInLineRepository: StockInLineRepository, | |||
| private val inventoryRepository: InventoryRepository, | |||
| private val printerService: PrinterService, | |||
| private val settingsService: SettingsService, | |||
| @Lazy | |||
| private val jobOrderService: JobOrderService | |||
| ) { | |||
| @@ -247,7 +248,8 @@ open class InventoryLotLineService( | |||
| @Throws(IOException::class) | |||
| @Transactional | |||
| open fun exportStockInLineQrcode(request: LotLineToQrcode): Map<String, Any> { | |||
| val QRCODE_PDF = "qrCodeLabel/poItemPDF.jrxml" | |||
| val labelVersion = PoItemLabelTemplate.version(settingsService) | |||
| val QRCODE_PDF = PoItemLabelTemplate.path(labelVersion) | |||
| val resource = ClassPathResource(QRCODE_PDF) | |||
| if (!resource.exists()) { | |||
| println("here") | |||
| @@ -287,13 +289,18 @@ open class InventoryLotLineService( | |||
| field["acceptedQty"] = "%.2f".format(info.acceptedQty) | |||
| val stockItemUom = itemUomRespository.findBaseUnitByItemIdAndStockUnitIsTrueAndDeletedIsFalse(info.itemId) | |||
| field["uom"] = stockItemUom?.uom?.udfudesc ?: info.uom?.udfudesc?.toString() ?: "N/A" | |||
| val fullUom = stockItemUom?.uom?.udfudesc ?: info.uom?.udfudesc?.toString() ?: "N/A" | |||
| val shortUom = stockItemUom?.uom?.udfShortDesc ?: info.uom?.udfShortDesc | |||
| field["uom"] = fullUom | |||
| val (qtyLabel, qtyDetail) = PoItemLabelTemplate.qtyLines(field["acceptedQty"] as String, fullUom, shortUom) | |||
| field["qtyLabel"] = qtyLabel | |||
| field["qtyDetail"] = qtyDetail | |||
| field["productionDate"] = info.productionDate?.format(DateTimeFormatter.ISO_LOCAL_DATE) ?: "" | |||
| field["expiryDate"] = info.expiryDate?.format(DateTimeFormatter.ISO_LOCAL_DATE) ?: "" | |||
| field["lotNo"] = info.lotNo!! | |||
| field["supplier"] = info.supplier ?: "N/A" | |||
| val image = QrCodeUtil.generateQRCodeImage(qrCodeContent) | |||
| val image = PoItemLabelTemplate.qrImage(qrCodeContent, labelVersion) | |||
| field["qrCode"] = image | |||
| fields.add(field) | |||
| } | |||
| @@ -0,0 +1,66 @@ | |||
| package com.ffii.fpsms.modules.stock.service | |||
| import com.ffii.core.utils.QrCodeUtil | |||
| import com.ffii.fpsms.modules.common.SettingNames | |||
| import com.ffii.fpsms.modules.settings.service.SettingsService | |||
| import java.awt.image.BufferedImage | |||
| object PoItemLabelTemplate { | |||
| const val V1 = "qrCodeLabel/poItemPDF.jrxml" | |||
| const val V2 = "qrCodeLabel/poItemPDF_v2.jrxml" | |||
| const val V3 = "qrCodeLabel/poItemPDF_v3.jrxml" | |||
| const val V4 = "qrCodeLabel/poItemPDF_v4.jrxml" | |||
| fun version(settingsService: SettingsService): Int { | |||
| val raw = settingsService.findByName(SettingNames.LABEL_PO_ITEM_VERSION) | |||
| .map { it.value } | |||
| .orElse("1") | |||
| ?.trim() | |||
| return when (raw) { | |||
| "2" -> 2 | |||
| "3" -> 3 | |||
| "4" -> 4 | |||
| else -> 1 | |||
| } | |||
| } | |||
| fun path(version: Int): String = when (version) { | |||
| 2 -> V2 | |||
| 3 -> V3 | |||
| 4 -> V4 | |||
| else -> V1 | |||
| } | |||
| fun qrImage(content: String, version: Int): BufferedImage = | |||
| if (version == 1) QrCodeUtil.generateQRCodeImage(content) | |||
| else QrCodeUtil.generateQRCodeImage(content, 500, 1) | |||
| /** First line is qty + short unit. Second line is the full unit only when it differs. */ | |||
| fun qtyLines(qtyRaw: String?, fullRaw: String?, shortRaw: String?): Pair<String, String> { | |||
| val qty = stripTrailingZeros(qtyRaw) | |||
| val full = blankUnit(fullRaw) | |||
| val short = blankUnit(shortRaw) | |||
| val same = short.isEmpty() || full.isEmpty() || short.equals(full, ignoreCase = true) | |||
| if (same) { | |||
| val unit = short.ifEmpty { full } | |||
| val line = when { | |||
| unit.isEmpty() -> qty | |||
| unit.first().isDigit() -> listOf(qty, unit).filter { it.isNotEmpty() }.joinToString(" ") | |||
| else -> qty + unit | |||
| } | |||
| return line to "" | |||
| } | |||
| return (qty + short) to full | |||
| } | |||
| private fun blankUnit(raw: String?): String { | |||
| val text = raw?.trim().orEmpty() | |||
| return if (text.isEmpty() || text.equals("N/A", ignoreCase = true)) "" else text | |||
| } | |||
| private fun stripTrailingZeros(raw: String?): String { | |||
| val text = raw?.trim().orEmpty() | |||
| if (!text.contains('.')) return text | |||
| return text.replace(Regex("0+$"), "").removeSuffix(".") | |||
| } | |||
| } | |||
| @@ -3,7 +3,6 @@ package com.ffii.fpsms.modules.stock.service | |||
| import com.ffii.core.exception.BadRequestException | |||
| import com.ffii.core.support.AbstractBaseEntityService | |||
| import com.ffii.core.support.JdbcDao | |||
| import com.ffii.core.utils.QrCodeUtil | |||
| import com.ffii.fpsms.modules.common.CodeGenerator | |||
| import com.ffii.fpsms.modules.master.entity.ItemsRepository | |||
| import com.ffii.fpsms.modules.master.entity.QcItemRepository | |||
| @@ -33,6 +32,7 @@ import com.ffii.fpsms.modules.master.entity.WarehouseRepository | |||
| import com.ffii.fpsms.modules.master.service.ItemUomService | |||
| //import com.ffii.fpsms.modules.master.service.BomOutputQtyService | |||
| import com.ffii.fpsms.modules.master.service.PrinterService | |||
| import com.ffii.fpsms.modules.settings.service.SettingsService | |||
| import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrder | |||
| import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrderLine | |||
| import com.ffii.fpsms.modules.purchaseOrder.entity.PurchaseOrderRepository | |||
| @@ -98,6 +98,7 @@ open class StockInLineService( | |||
| private val itemUomRepository: ItemUomRespository, | |||
| private val itemUomService: ItemUomService, | |||
| private val printerService: PrinterService, | |||
| private val settingsService: SettingsService, | |||
| private val stockTakeLineRepository: StockTakeLineRepository, | |||
| private val inventoryLotLineService: InventoryLotLineService, | |||
| private val deliveryOrderRepository: DeliveryOrderRepository, | |||
| @@ -445,6 +446,8 @@ open class StockInLineService( | |||
| } | |||
| dnNo = request.dnNo | |||
| receiptDate = request.receiptDate?.atStartOfDay() ?: LocalDateTime.now() | |||
| // The item label prints this field under 收貨日期. | |||
| productionDate = request.productionDate?.atStartOfDay() ?: receiptDate | |||
| productLotNo = request.productLotNo | |||
| this.type = "NOR" | |||
| status = StockInLineStatus.PENDING.status | |||
| @@ -1208,7 +1211,8 @@ open class StockInLineService( | |||
| @Throws(IOException::class) | |||
| @Transactional | |||
| open fun exportStockInLineQrcode(request: ExportQrCodeRequest): Map<String, Any> { | |||
| val QRCODE_PDF = "qrCodeLabel/poItemPDF.jrxml" | |||
| val labelVersion = PoItemLabelTemplate.version(settingsService) | |||
| val QRCODE_PDF = PoItemLabelTemplate.path(labelVersion) | |||
| val resource = ClassPathResource(QRCODE_PDF) | |||
| if (!resource.exists()) { | |||
| println("here") | |||
| @@ -1217,6 +1221,9 @@ open class StockInLineService( | |||
| val inputStream = resource.inputStream | |||
| val poLabel = JasperCompileManager.compileReport(inputStream) | |||
| val qrCodeInfo = stockInLineRepository.findStockInLineInfoByIdInAndDeletedFalse(request.stockInLineIds).toMutableList() | |||
| if (qrCodeInfo.isEmpty()) { | |||
| throw IllegalArgumentException("找不到來貨記錄,無法產生二維碼") | |||
| } | |||
| val fields = mutableListOf<MutableMap<String ,Any>>() | |||
| for (info in qrCodeInfo) { | |||
| @@ -1242,12 +1249,17 @@ open class StockInLineService( | |||
| field["poCode"] = info.poCode ?: "N/A" | |||
| field["itemType"] = info.itemType ?: "N/A" | |||
| field["acceptedQty"] = "%.2f".format(acceptedQty) | |||
| field["uom"] = stockItemUom?.uom?.udfudesc ?: info.uom?.udfudesc?.toString() ?: "N/A" | |||
| field["productionDate"] = info.productionDate?.format(DateTimeFormatter.ISO_LOCAL_DATE) ?: "" | |||
| val fullUom = stockItemUom?.uom?.udfudesc ?: info.uom?.udfudesc?.toString() ?: "N/A" | |||
| val shortUom = stockItemUom?.uom?.udfShortDesc ?: info.uom?.udfShortDesc | |||
| field["uom"] = fullUom | |||
| val (qtyLabel, qtyDetail) = PoItemLabelTemplate.qtyLines(field["acceptedQty"] as String, fullUom, shortUom) | |||
| field["qtyLabel"] = qtyLabel | |||
| field["qtyDetail"] = qtyDetail | |||
| field["productionDate"] = (info.productionDate ?: info.receiptDate)?.format(DateTimeFormatter.ISO_LOCAL_DATE) ?: "" | |||
| field["expiryDate"] = info.expiryDate?.format(DateTimeFormatter.ISO_LOCAL_DATE) ?: "" | |||
| field["lotNo"] = info.lotNo ?: "N/A" | |||
| field["supplier"] = info.supplier ?: "N/A" | |||
| val image = QrCodeUtil.generateQRCodeImage(qrCodeContent) | |||
| val image = PoItemLabelTemplate.qrImage(qrCodeContent, labelVersion) | |||
| field["qrCode"] = image | |||
| fields.add(field) | |||
| } | |||
| @@ -0,0 +1,9 @@ | |||
| --liquibase formatted sql | |||
| --changeset fpsms:20261001_po_item_label_version | |||
| INSERT INTO `settings` (`name`, `value`, `category`, `type`) | |||
| SELECT 'LABEL.poItem.version', '1', 'LABEL', '1/2' | |||
| FROM DUAL | |||
| WHERE NOT EXISTS ( | |||
| SELECT 1 FROM `settings` WHERE `name` = 'LABEL.poItem.version' | |||
| ); | |||
| @@ -0,0 +1,7 @@ | |||
| --liquibase formatted sql | |||
| --changeset fpsms:20261001_po_item_label_version_allow_3 | |||
| UPDATE `settings` | |||
| SET `type` = '1/2/3' | |||
| WHERE `name` = 'LABEL.poItem.version' | |||
| AND `type` = '1/2'; | |||
| @@ -0,0 +1,7 @@ | |||
| --liquibase formatted sql | |||
| --changeset fpsms:20261002_po_item_label_version_allow_4 | |||
| UPDATE `settings` | |||
| SET `type` = '1/2/3/4' | |||
| WHERE `name` = 'LABEL.poItem.version' | |||
| AND `type` IN ('1/2', '1/2/3'); | |||
| @@ -0,0 +1,172 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <!-- 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="poItemPDF" printOrder="Horizontal" pageWidth="425" pageHeight="283" orientation="Landscape" columnWidth="425" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="6cb85eb9-3573-42f3-a293-099db250aec0"> | |||
| <property name="com.jaspersoft.studio.unit." value="pixel"/> | |||
| <parameter name="lotNo" class="java.lang.String"/> | |||
| <parameter name="itemName" class="java.lang.String"/> | |||
| <parameter name="itemNo" class="java.lang.String"/> | |||
| <parameter name="poCode" class="java.lang.String"/> | |||
| <parameter name="qrCode" class="java.awt.Image"/> | |||
| <parameter name="acceptedQty" class="java.math.BigDecimal"/> | |||
| <parameter name="uom" class="java.lang.String"/> | |||
| <parameter name="isTransfer" class="java.lang.String"/> | |||
| <queryString> | |||
| <![CDATA[]]> | |||
| </queryString> | |||
| <field name="lotNo" class="java.lang.String"/> | |||
| <field name="itemName" class="java.lang.String"/> | |||
| <field name="itemNo" class="java.lang.String"/> | |||
| <field name="acceptedQty" class="java.lang.String"/> | |||
| <field name="uom" class="java.lang.String"/> | |||
| <field name="qtyLabel" class="java.lang.String"/> | |||
| <field name="qtyDetail" class="java.lang.String"/> | |||
| <field name="qrCode" class="java.awt.Image"/> | |||
| <field name="poCode" class="java.lang.String"/> | |||
| <field name="supplier" class="java.lang.String"/> | |||
| <field name="productionDate" class="java.lang.String"/> | |||
| <field name="expiryDate" class="java.lang.String"/> | |||
| <background> | |||
| <band splitType="Stretch"/> | |||
| </background> | |||
| <detail> | |||
| <band height="279" splitType="Prevent"> | |||
| <staticText> | |||
| <reportElement x="8" y="0" width="108" height="56" uuid="c62ac00a-c495-462c-93bc-97bdd3cdb395"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="18" isBold="true"/> | |||
| </textElement> | |||
| <text><![CDATA[收貨日期:]]></text> | |||
| </staticText> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="116" y="0" width="301" height="56" uuid="74a5cfba-046d-42f4-92d7-113729514a6f"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="44" isBold="true"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{productionDate}]]></textFieldExpression> | |||
| </textField> | |||
| <staticText> | |||
| <reportElement x="8" y="56" width="108" height="56" uuid="32edcad1-23c1-4d41-8c9a-352d9e6ef377"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="18" isBold="true"/> | |||
| </textElement> | |||
| <text><![CDATA[到期日:]]></text> | |||
| </staticText> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="116" y="56" width="301" height="56" uuid="97e4a9bb-fc84-4074-b523-ddf9eb9ed2d2"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="44" isBold="true"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{expiryDate}]]></textFieldExpression> | |||
| </textField> | |||
| <staticText> | |||
| <reportElement x="8" y="114" width="230" height="18" uuid="f5f145f1-123f-4fe5-90fa-8550b3d2eb63"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | |||
| </textElement> | |||
| <text><![CDATA[批次編號:]]></text> | |||
| </staticText> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="8" y="132" width="230" height="20" uuid="402f35fc-b11a-4bf1-982d-e12c622f38ea"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="18" isBold="true"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{lotNo}]]></textFieldExpression> | |||
| </textField> | |||
| <staticText> | |||
| <reportElement x="8" y="152" width="108" height="18" uuid="96d46fb1-939d-4f3e-b8f0-172b69b85e9f"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | |||
| </textElement> | |||
| <text><![CDATA[物料編號:]]></text> | |||
| </staticText> | |||
| <staticText> | |||
| <reportElement x="120" y="152" width="118" height="18" uuid="53a2d7cf-bd50-4264-abee-346823cd49dd"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | |||
| </textElement> | |||
| <text><![CDATA[數量:]]></text> | |||
| </staticText> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="8" y="170" width="108" height="28" uuid="1f289946-b945-4f79-8515-212368b8be3b"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="24" isBold="true"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{itemNo}]]></textFieldExpression> | |||
| </textField> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="120" y="170" width="120" height="18" uuid="629d9af8-c73f-4614-ba9d-a582e2ed4a29"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="14" isBold="true"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{qtyLabel}]]></textFieldExpression> | |||
| </textField> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="120" y="188" width="120" height="12" uuid="7c1a0e44-6b2d-4a91-9f10-2d8e5b6c4a11"> | |||
| <printWhenExpression><![CDATA[$F{qtyDetail} != null && !$F{qtyDetail}.trim().isEmpty()]]></printWhenExpression> | |||
| </reportElement> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="8"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{qtyDetail}]]></textFieldExpression> | |||
| </textField> | |||
| <staticText> | |||
| <reportElement x="8" y="200" width="230" height="16" uuid="5c3f9b03-222c-4c94-ab58-6bc86d44c5ce"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | |||
| </textElement> | |||
| <text><![CDATA[物料名稱:]]></text> | |||
| </staticText> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="8" y="216" width="230" height="30" uuid="e04b094d-2d16-4060-b6d9-2e6033a673ab"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="32" isBold="true"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{itemName}]]></textFieldExpression> | |||
| </textField> | |||
| <image scaleImage="FillFrame" hAlign="Center" vAlign="Middle"> | |||
| <reportElement x="248" y="112" width="166" height="166" uuid="5dd35c73-973b-4f0d-9cad-13305a29a9fd"/> | |||
| <imageExpression><![CDATA[$F{qrCode}]]></imageExpression> | |||
| </image> | |||
| <staticText> | |||
| <reportElement x="8" y="248" width="42" height="14" uuid="c2041205-51f8-45bb-a1d1-e3de37eebed7"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="8"/> | |||
| </textElement> | |||
| <text><![CDATA[供應商:]]></text> | |||
| </staticText> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="50" y="248" width="188" height="14" uuid="ab82ca39-8840-4471-b7c0-cdeec9cb5693"/> | |||
| <textElement verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="8"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{supplier}]]></textFieldExpression> | |||
| </textField> | |||
| <staticText> | |||
| <reportElement x="8" y="262" width="76" height="14" uuid="1b1efafd-049a-432e-93c4-9662273011f7"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="8"/> | |||
| </textElement> | |||
| <text><![CDATA[採購訂單編號:]]></text> | |||
| </staticText> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="84" y="262" width="154" height="14" uuid="b805e20a-9a36-45c8-8255-23b6cc58f47c"/> | |||
| <textElement verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="8"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$P{poCode}]]></textFieldExpression> | |||
| </textField> | |||
| <textField> | |||
| <reportElement x="276" y="183" width="110" height="22" uuid="d66a64b0-3335-4846-bcb0-a67594520055"> | |||
| <printWhenExpression><![CDATA[$P{isTransfer} != null && !$P{isTransfer}.toString().trim().isEmpty()]]></printWhenExpression> | |||
| </reportElement> | |||
| <box> | |||
| <pen lineWidth="2.0"/> | |||
| </box> | |||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="11" isBold="true" isUnderline="true"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$P{isTransfer}]]></textFieldExpression> | |||
| </textField> | |||
| </band> | |||
| </detail> | |||
| </jasperReport> | |||
| @@ -0,0 +1,172 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <!-- 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="poItemPDF_v3" printOrder="Horizontal" pageWidth="425" pageHeight="283" orientation="Landscape" columnWidth="425" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="6cb85eb9-3573-42f3-a293-099db250aec0"> | |||
| <property name="com.jaspersoft.studio.unit." value="pixel"/> | |||
| <parameter name="lotNo" class="java.lang.String"/> | |||
| <parameter name="itemName" class="java.lang.String"/> | |||
| <parameter name="itemNo" class="java.lang.String"/> | |||
| <parameter name="poCode" class="java.lang.String"/> | |||
| <parameter name="qrCode" class="java.awt.Image"/> | |||
| <parameter name="acceptedQty" class="java.math.BigDecimal"/> | |||
| <parameter name="uom" class="java.lang.String"/> | |||
| <parameter name="isTransfer" class="java.lang.String"/> | |||
| <queryString> | |||
| <![CDATA[]]> | |||
| </queryString> | |||
| <field name="lotNo" class="java.lang.String"/> | |||
| <field name="itemName" class="java.lang.String"/> | |||
| <field name="itemNo" class="java.lang.String"/> | |||
| <field name="acceptedQty" class="java.lang.String"/> | |||
| <field name="uom" class="java.lang.String"/> | |||
| <field name="qtyLabel" class="java.lang.String"/> | |||
| <field name="qtyDetail" class="java.lang.String"/> | |||
| <field name="qrCode" class="java.awt.Image"/> | |||
| <field name="poCode" class="java.lang.String"/> | |||
| <field name="supplier" class="java.lang.String"/> | |||
| <field name="productionDate" class="java.lang.String"/> | |||
| <field name="expiryDate" class="java.lang.String"/> | |||
| <background> | |||
| <band splitType="Stretch"/> | |||
| </background> | |||
| <detail> | |||
| <band height="279" splitType="Prevent"> | |||
| <staticText> | |||
| <reportElement x="8" y="0" width="108" height="56" uuid="c62ac00a-c495-462c-93bc-97bdd3cdb395"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="18" isBold="true"/> | |||
| </textElement> | |||
| <text><![CDATA[收貨日期:]]></text> | |||
| </staticText> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="116" y="0" width="301" height="56" uuid="74a5cfba-046d-42f4-92d7-113729514a6f"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="44" isBold="true"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{productionDate}]]></textFieldExpression> | |||
| </textField> | |||
| <staticText> | |||
| <reportElement x="8" y="56" width="108" height="56" uuid="32edcad1-23c1-4d41-8c9a-352d9e6ef377"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="18" isBold="true"/> | |||
| </textElement> | |||
| <text><![CDATA[到期日:]]></text> | |||
| </staticText> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="116" y="56" width="301" height="56" uuid="97e4a9bb-fc84-4074-b523-ddf9eb9ed2d2"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="44" isBold="true"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{expiryDate}]]></textFieldExpression> | |||
| </textField> | |||
| <staticText> | |||
| <reportElement x="8" y="114" width="286" height="16" uuid="f5f145f1-123f-4fe5-90fa-8550b3d2eb63"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | |||
| </textElement> | |||
| <text><![CDATA[批次編號:]]></text> | |||
| </staticText> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="8" y="130" width="286" height="20" uuid="402f35fc-b11a-4bf1-982d-e12c622f38ea"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="18" isBold="true"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{lotNo}]]></textFieldExpression> | |||
| </textField> | |||
| <staticText> | |||
| <reportElement x="8" y="152" width="140" height="16" uuid="96d46fb1-939d-4f3e-b8f0-172b69b85e9f"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | |||
| </textElement> | |||
| <text><![CDATA[物料編號:]]></text> | |||
| </staticText> | |||
| <staticText> | |||
| <reportElement x="152" y="152" width="142" height="16" uuid="53a2d7cf-bd50-4264-abee-346823cd49dd"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | |||
| </textElement> | |||
| <text><![CDATA[數量:]]></text> | |||
| </staticText> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="8" y="168" width="140" height="26" uuid="1f289946-b945-4f79-8515-212368b8be3b"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="22" isBold="true"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{itemNo}]]></textFieldExpression> | |||
| </textField> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="152" y="168" width="142" height="16" uuid="629d9af8-c73f-4614-ba9d-a582e2ed4a29"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="14" isBold="true"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{qtyLabel}]]></textFieldExpression> | |||
| </textField> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="152" y="184" width="142" height="12" uuid="7c1a0e44-6b2d-4a91-9f10-2d8e5b6c4a11"> | |||
| <printWhenExpression><![CDATA[$F{qtyDetail} != null && !$F{qtyDetail}.trim().isEmpty()]]></printWhenExpression> | |||
| </reportElement> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="8"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{qtyDetail}]]></textFieldExpression> | |||
| </textField> | |||
| <staticText> | |||
| <reportElement x="8" y="200" width="290" height="18" uuid="5c3f9b03-222c-4c94-ab58-6bc86d44c5ce"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | |||
| </textElement> | |||
| <text><![CDATA[物料名稱:]]></text> | |||
| </staticText> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="8" y="218" width="290" height="58" uuid="e04b094d-2d16-4060-b6d9-2e6033a673ab"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="48" isBold="true"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{itemName}]]></textFieldExpression> | |||
| </textField> | |||
| <image scaleImage="FillFrame" hAlign="Center" vAlign="Middle"> | |||
| <reportElement x="308" y="116" width="108" height="108" uuid="5dd35c73-973b-4f0d-9cad-13305a29a9fd"/> | |||
| <imageExpression><![CDATA[$F{qrCode}]]></imageExpression> | |||
| </image> | |||
| <staticText> | |||
| <reportElement x="308" y="226" width="108" height="12" uuid="c2041205-51f8-45bb-a1d1-e3de37eebed7"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="8"/> | |||
| </textElement> | |||
| <text><![CDATA[供應商:]]></text> | |||
| </staticText> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="308" y="238" width="108" height="14" uuid="ab82ca39-8840-4471-b7c0-cdeec9cb5693"/> | |||
| <textElement verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="8"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{supplier}]]></textFieldExpression> | |||
| </textField> | |||
| <staticText> | |||
| <reportElement x="308" y="252" width="108" height="12" uuid="1b1efafd-049a-432e-93c4-9662273011f7"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="8"/> | |||
| </textElement> | |||
| <text><![CDATA[採購訂單編號:]]></text> | |||
| </staticText> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="308" y="264" width="108" height="14" uuid="b805e20a-9a36-45c8-8255-23b6cc58f47c"/> | |||
| <textElement verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="8"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$P{poCode}]]></textFieldExpression> | |||
| </textField> | |||
| <textField> | |||
| <reportElement x="322" y="156" width="80" height="20" uuid="d66a64b0-3335-4846-bcb0-a67594520055"> | |||
| <printWhenExpression><![CDATA[$P{isTransfer} != null && !$P{isTransfer}.toString().trim().isEmpty()]]></printWhenExpression> | |||
| </reportElement> | |||
| <box> | |||
| <pen lineWidth="2.0"/> | |||
| </box> | |||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="11" isBold="true" isUnderline="true"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$P{isTransfer}]]></textFieldExpression> | |||
| </textField> | |||
| </band> | |||
| </detail> | |||
| </jasperReport> | |||
| @@ -0,0 +1,172 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <!-- 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="poItemPDF_v4" printOrder="Horizontal" pageWidth="425" pageHeight="283" orientation="Landscape" columnWidth="425" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="6cb85eb9-3573-42f3-a293-099db250aec0"> | |||
| <property name="com.jaspersoft.studio.unit." value="pixel"/> | |||
| <parameter name="lotNo" class="java.lang.String"/> | |||
| <parameter name="itemName" class="java.lang.String"/> | |||
| <parameter name="itemNo" class="java.lang.String"/> | |||
| <parameter name="poCode" class="java.lang.String"/> | |||
| <parameter name="qrCode" class="java.awt.Image"/> | |||
| <parameter name="acceptedQty" class="java.math.BigDecimal"/> | |||
| <parameter name="uom" class="java.lang.String"/> | |||
| <parameter name="isTransfer" class="java.lang.String"/> | |||
| <queryString> | |||
| <![CDATA[]]> | |||
| </queryString> | |||
| <field name="lotNo" class="java.lang.String"/> | |||
| <field name="itemName" class="java.lang.String"/> | |||
| <field name="itemNo" class="java.lang.String"/> | |||
| <field name="acceptedQty" class="java.lang.String"/> | |||
| <field name="uom" class="java.lang.String"/> | |||
| <field name="qtyLabel" class="java.lang.String"/> | |||
| <field name="qtyDetail" class="java.lang.String"/> | |||
| <field name="qrCode" class="java.awt.Image"/> | |||
| <field name="poCode" class="java.lang.String"/> | |||
| <field name="supplier" class="java.lang.String"/> | |||
| <field name="productionDate" class="java.lang.String"/> | |||
| <field name="expiryDate" class="java.lang.String"/> | |||
| <background> | |||
| <band splitType="Stretch"/> | |||
| </background> | |||
| <detail> | |||
| <band height="279" splitType="Prevent"> | |||
| <staticText> | |||
| <reportElement x="4" y="0" width="222" height="16" uuid="c62ac00a-c495-462c-93bc-97bdd3cdb395"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="11" isBold="true"/> | |||
| </textElement> | |||
| <text><![CDATA[收貨日期:]]></text> | |||
| </staticText> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="4" y="16" width="222" height="52" uuid="74a5cfba-046d-42f4-92d7-113729514a6f"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="48" isBold="true"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{productionDate}]]></textFieldExpression> | |||
| </textField> | |||
| <staticText> | |||
| <reportElement x="4" y="70" width="222" height="16" uuid="32edcad1-23c1-4d41-8c9a-352d9e6ef377"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="11" isBold="true"/> | |||
| </textElement> | |||
| <text><![CDATA[到期日:]]></text> | |||
| </staticText> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="4" y="86" width="222" height="52" uuid="97e4a9bb-fc84-4074-b523-ddf9eb9ed2d2"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="48" isBold="true"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{expiryDate}]]></textFieldExpression> | |||
| </textField> | |||
| <staticText> | |||
| <reportElement x="8" y="142" width="104" height="16" uuid="96d46fb1-939d-4f3e-b8f0-172b69b85e9f"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | |||
| </textElement> | |||
| <text><![CDATA[物料編號:]]></text> | |||
| </staticText> | |||
| <staticText> | |||
| <reportElement x="130" y="142" width="96" height="16" uuid="53a2d7cf-bd50-4264-abee-346823cd49dd"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | |||
| </textElement> | |||
| <text><![CDATA[數量:]]></text> | |||
| </staticText> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="8" y="158" width="118" height="34" uuid="1f289946-b945-4f79-8515-212368b8be3b"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="30" isBold="true"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{itemNo}]]></textFieldExpression> | |||
| </textField> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="130" y="158" width="96" height="18" uuid="629d9af8-c73f-4614-ba9d-a582e2ed4a29"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="14" isBold="true"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{qtyLabel}]]></textFieldExpression> | |||
| </textField> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="130" y="178" width="96" height="14" uuid="7c1a0e44-6b2d-4a91-9f10-2d8e5b6c4a11"> | |||
| <printWhenExpression><![CDATA[$F{qtyDetail} != null && !$F{qtyDetail}.trim().isEmpty()]]></printWhenExpression> | |||
| </reportElement> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="8"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{qtyDetail}]]></textFieldExpression> | |||
| </textField> | |||
| <staticText> | |||
| <reportElement x="8" y="196" width="218" height="16" uuid="5c3f9b03-222c-4c94-ab58-6bc86d44c5ce"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | |||
| </textElement> | |||
| <text><![CDATA[物料名稱:]]></text> | |||
| </staticText> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="8" y="212" width="218" height="64" uuid="e04b094d-2d16-4060-b6d9-2e6033a673ab"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="48" isBold="true"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{itemName}]]></textFieldExpression> | |||
| </textField> | |||
| <image scaleImage="FillFrame" hAlign="Center" vAlign="Middle"> | |||
| <reportElement x="230" y="4" width="190" height="190" uuid="5dd35c73-973b-4f0d-9cad-13305a29a9fd"/> | |||
| <imageExpression><![CDATA[$F{qrCode}]]></imageExpression> | |||
| </image> | |||
| <staticText> | |||
| <reportElement x="230" y="196" width="190" height="16" uuid="f5f145f1-123f-4fe5-90fa-8550b3d2eb63"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="10" isBold="true"/> | |||
| </textElement> | |||
| <text><![CDATA[批次編號:]]></text> | |||
| </staticText> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="230" y="212" width="190" height="26" uuid="402f35fc-b11a-4bf1-982d-e12c622f38ea"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="18" isBold="true"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{lotNo}]]></textFieldExpression> | |||
| </textField> | |||
| <staticText> | |||
| <reportElement x="230" y="240" width="42" height="16" uuid="c2041205-51f8-45bb-a1d1-e3de37eebed7"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="8"/> | |||
| </textElement> | |||
| <text><![CDATA[供應商:]]></text> | |||
| </staticText> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="272" y="240" width="148" height="16" uuid="ab82ca39-8840-4471-b7c0-cdeec9cb5693"/> | |||
| <textElement verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="8"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$F{supplier}]]></textFieldExpression> | |||
| </textField> | |||
| <staticText> | |||
| <reportElement x="230" y="258" width="72" height="16" uuid="1b1efafd-049a-432e-93c4-9662273011f7"/> | |||
| <textElement textAlignment="Left" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="8"/> | |||
| </textElement> | |||
| <text><![CDATA[採購訂單編號:]]></text> | |||
| </staticText> | |||
| <textField textAdjust="ScaleFont" isBlankWhenNull="true"> | |||
| <reportElement x="302" y="258" width="118" height="16" uuid="b805e20a-9a36-45c8-8255-23b6cc58f47c"/> | |||
| <textElement verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="8"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$P{poCode}]]></textFieldExpression> | |||
| </textField> | |||
| <textField> | |||
| <reportElement x="265" y="87" width="120" height="24" uuid="d66a64b0-3335-4846-bcb0-a67594520055"> | |||
| <printWhenExpression><![CDATA[$P{isTransfer} != null && !$P{isTransfer}.toString().trim().isEmpty()]]></printWhenExpression> | |||
| </reportElement> | |||
| <box> | |||
| <pen lineWidth="2.0"/> | |||
| </box> | |||
| <textElement textAlignment="Center" verticalAlignment="Middle"> | |||
| <font fontName="微軟正黑體" size="11" isBold="true" isUnderline="true"/> | |||
| </textElement> | |||
| <textFieldExpression><![CDATA[$P{isTransfer}]]></textFieldExpression> | |||
| </textField> | |||
| </band> | |||
| </detail> | |||
| </jasperReport> | |||