itext pdf одна таблица зависит от данных нескольких таблиц, созданных в Android - PullRequest
0 голосов
/ 25 апреля 2019

JSON Данные отображаются в формате PDF в таблице.

Все данные JSON отображают одну таблицу под кодом, но как создать таблицы зависит от JSON-ключа Создание таблиц изменения значения "PartyName"?

Я использую retrofit2 и rxjava2 для анализа данных JSON.

Я должен разделить данные в таблице.

"PartyName "- это клавиша JSON. Значение "PartyName" совпадает с отображением одной таблицы, когда "PartyName" меняет отображение данных объекта в другой таблице.

PartyName Значение изменяет свои созданные новые данные отображения таблицы.

Как его больше таблицы создать в itext pdf, пожалуйста, направьте меня?

Какие-либо другие инструменты отчетности доступны для Android?

{
    "status": 1,
    "0": [
        {
            "Cmp_Name": "ABC",
            "Partyid": "18",
            "ChallanNo": "-",
            "PartyName": "PURCHASE MH",
            "FirmName": "PURCHASE MH",
            "ChallanDate": "-",
            "ChallanAmount": "0.0",
            "RecieveDate": "2019-03-15 00:00:00",
            "RecieveAmount": "4000.0",
            "DiscountAmount": "0.0",
            "TDSAmount": "0.0",
            "Bank": "AXIS BANK",
            "ChequeNo": null,
            "ChequeDate": null
        },
        {
            "Cmp_Name": "ABC",
            "Partyid": "17",
            "ChallanNo": "20",
            "PartyName": "PURCHASE GJ",
            "FirmName": "PURCHASE GJ",
            "ChallanDate": "3/11/2019",
            "ChallanAmount": "1391.0",
            "RecieveDate": "2019-03-15 00:00:00",
            "RecieveAmount": "1391.0",
            "DiscountAmount": "0.0",
            "TDSAmount": "0.0",
            "Bank": "AXIS BANK",
            "ChequeNo": "321456",
            "ChequeDate": "2019-03-15 00:00:00"
        },
        {
            "Cmp_Name": "ABC",
            "Partyid": "17",
            "ChallanNo": "20",
            "PartyName": "Dharama",
            "FirmName": "Dharama",
            "ChallanDate": "3/11/2019",
            "ChallanAmount": "1391.0",
            "RecieveDate": "2019-03-15 00:00:00",
            "RecieveAmount": "1391.0",
            "DiscountAmount": "0.0",
            "TDSAmount": "0.0",
            "Bank": "AXIS BANK",
            "ChequeNo": "321456",
            "ChequeDate": "2019-03-15 00:00:00"
        },
        {
            "Cmp_Name": "ABC",
            "Partyid": "17",
            "ChallanNo": "20",
            "PartyName": "Dharama",
            "FirmName": "Dharama",
            "ChallanDate": "3/11/2019",
            "ChallanAmount": "1391.0",
            "RecieveDate": "2019-03-15 00:00:00",
            "RecieveAmount": "1391.0",
            "DiscountAmount": "0.0",
            "TDSAmount": "0.0",
            "Bank": "AXIS BANK",
            "ChequeNo": "321456",
            "ChequeDate": "2019-03-15 00:00:00"
        }
    ]
}

Одна таблица создана в itext pdf, но я хочу выше JSON Ключ данных "PartyName" Изменить показ данных в другой таблице.

забавный pdfViewer (purchaseOut: List, fDate: String, tDate: String, todayDate: String) {

val document = Document()
try {
    val SDCardRoot = Environment.getExternalStorageDirectory()
    val dir = File(SDCardRoot.getAbsolutePath() + dirPath)
    if (!dir.exists()) {
        dir.mkdirs()
    }
    val d = Date()
    val s = DateFormat
            .format("yyyyMMdd", d.getTime())
    val ran = java.util.Random()
    var n = 10000
    n = ran.nextInt(n)
    //var file = File(dir,   ".pdf")
    //val targetPdf = "/sdcard/pdffromlayout.pdf"
    //  val targetPdf = file
    val pathName: String = "purchaseOut" + s + ".pdf"
    val filePath: File
    filePath = File(dir, pathName)
    val docWriter = PdfWriter.getInstance(document, FileOutputStream(filePath))
    document.open()
    val cb = docWriter.getDirectContent()




    initializeFonts()

    createHeadings(cb, 260F, 780F, companyName )
    createHeadings(cb, 190F, 765F, "Party Wise Purchase Pending Report(Summary)")
    //createHeadings(cb, 265F, 750F, "GST IN : "+ salesGSt.get(1).GSTIN)
    createHeadings(cb, 35F, 660F, "Date : "+todayDate)
    createHeadings(cb, 327F, 660F, "From Date :" +fDate)
    createHeadings(cb, 439F, 660F, "To Date :"+tDate)


    /* var header = PdfPTable(1)
     var cellHeader = PdfPCell(Phrase("CompanyName"))
     header.setHorizontalAlignment(Element.ALIGN_CENTER)
    // cellHeader.setName("Hi")
     header.addCell(cellHeader)
     header.setWidthPercentage(100F)*/

    val columnWidths = floatArrayOf(0.75f, 5f, 2f, 2f, 2.5f, 2f, 2.5f)
    //var cell : PdfPCell
    var table = PdfPTable(columnWidths)
    table.setTotalWidth(500f)
    var cell = PdfPCell(Phrase("Sr.No"))
    cell.setHorizontalAlignment(Element.ALIGN_RIGHT)

    table.addCell(cell)

    cell = PdfPCell(Phrase("Party Name"))
    cell.setHorizontalAlignment(Element.ALIGN_LEFT)
    table.addCell(cell)
    cell = PdfPCell(Phrase("Opening Balance"))
    cell.setHorizontalAlignment(Element.ALIGN_LEFT)
    table.addCell(cell)
    cell = PdfPCell(Phrase("Bill Amount"))
    cell.setHorizontalAlignment(Element.ALIGN_RIGHT)
    table.addCell(cell)
    cell = PdfPCell(Phrase("Rcv Amount"))
    cell.setHorizontalAlignment(Element.ALIGN_RIGHT)
    table.addCell(cell)
    cell = PdfPCell(Phrase("Other Amount"))
    cell.setHorizontalAlignment(Element.ALIGN_RIGHT)
    table.addCell(cell)
    cell = PdfPCell(Phrase("Closing Balance"))
    cell.setHorizontalAlignment(Element.ALIGN_RIGHT)
    table.addCell(cell)


    table.setHeaderRows(1)
    val df = DecimalFormat("0.00")
    for (j in 0 until purchaseOut.size) {
        val price = java.lang.Double.valueOf(df.format(Math.random() * 10))
        //  val extPrice = price * (i + 1)
        /*val inputFormatter1 = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
        val date1 = inputFormatter1.parse(salesGSt.get(j).ChallanDate)
        val outputFormatter1 = SimpleDateFormat("dd-MMM-yyyy")
        var bill_date = outputFormatter1.format(date1)*/

        if (purchaseOut.get(j).FirmName != null) {
            partyName = purchaseOut.get(j).FirmName!!
        } else {
            partyName = ""
        }

        if (purchaseOut.get(j).Balance != null) {
            openingBalance = purchaseOut.get(j).Balance!!
        } else {
            openingBalance = ""
        }
        if (purchaseOut.get(j).CR != null) {
            billAmount = purchaseOut.get(j).CR!!
        } else {
            billAmount = ""
        }
        if (purchaseOut.get(j).DB != null) {
            rcvAmt = purchaseOut.get(j).DB!!
        } else {
            rcvAmt = ""
        }

        if (purchaseOut.get(j).OtherAmt != null) {
            otherAmt = purchaseOut.get(j).OtherAmt!!
        } else {
            otherAmt = ""
        }

        if (purchaseOut.get(j).ClBalance != null) {
            cLBalance = purchaseOut.get(j).ClBalance!!
        } else {
            cLBalance = ""
        }


        table.addCell((j + 1).toString())
        table.addCell(partyName)
        table.addCell(openingBalance)
        table.addCell(billAmount)
        table.addCell(rcvAmt)
        table.addCell(otherAmt)
        table.addCell(cLBalance)

        //table.addCell(df.format(extPrice))
    }
    table.writeSelectedRows(0, -1, document.leftMargin(), 650F, docWriter.getDirectContent())
    document.close()

    openGeneratedPDF(pathName)
} catch (e: Exception) {

    e.printStackTrace()

}

}

показать данные ниже изображения.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...