XSL-FO кестесінде бір бетке кейбір мәндерді қалай шығаруға болады?

XSL-FO-ді есептік жазбаның көшірмесін жасау үшін қолданамын. PDF - бұл әр бетте қарапайым тақырыппен қарапайым қарапайым кесте. Қиындық - әр бетке транзакция көлемін көрсетуім керек, мысалы:

Page 1

+------------------------------+-----------+-----------+---------------------+
| Text                         | Credit    | Debit     | Balance             |
+------------------------------+-----------+-----------+---------------------+
| Previous month               |           |           |           (*1) 1000 |
| abc                          |      1000 |           |                2000 |
| abc                          |           |       500 |                1500 |
| abc                          |           |       200 |                1300 |
| ...                          |           |           |                     |
| Carry over                   | (*2) 1000 |  (*3) 700 |           (*4) 1300 |
+------------------------------+-----------+-----------+---------------------+

Page 2

+------------------------------+-----------+-----------+---------------------+
| Text                         | Credit    | Debit     | Balance             |
+------------------------------+-----------+-----------+---------------------+
| Previous page                | (*2) 1000 |  (*3) 700 |           (*4) 1300 |
| abc                          |      1000 |           |                2300 |
| abc                          |           |       500 |                1800 |
| abc                          |           |       200 |                1600 |
| ...                          |           |           |                     |
| Carry over                   | (*2) 2000 | (*3) 1400 |           (*4) 1600 |
+------------------------------+-----------+-----------+---------------------+

Міне, кейбір түсініктемелер:

  1. Бұл өткен айдағы теңгерім. Ол алдын ала есептеледі және XSL айнымалысы ретінде танымал. Бұл проблема жоқ, бұл әдеттегі тақырып (тек бірінші бетте)
  2. Бұл мән әрбір бет бойынша есептеледі. Ол барлық несие сомаларын сол бетте жазады. Мен өздігімді есептей алмаймын, өйткені XSL-FO бет үзілімін жасайтын уақытты білмеймін. Сондықтан мен XSL-FO-ны есептеу үшін жасаған жөн. Беттің төменгі жағындағы сома кейінгі беттің жоғарғы жағындағы мәнмен бірдей.
  3. Бұл мән дебет сомалары үшін 2-ден бірдей.
  4. Бұл мән беттің төменгі жағындағы ең соңғы транзакция теңгерімі болып табылады. Бұл мән келесі беттің жоғарғы жағында қайталанады.

XSL-FO-мен осы есептеулерді қалай жасауға болады?

See also this related question: How to display one or the other information depending on the page number in XSL-FO?

0
@Dabbler: Мен XSLT-ді пайдаланып жатырмын, мен XSL-FO-тің әр бетке негізделген есептік мәндерді қалай жасауға болатынымды білмеймін. Менің ойымша, Михаилдің жауабы бағалы
қосылды автор Lukas Eder, көзі
XSLT-ге әлі қарап шықтыңыз ба? Сіз FO элементтерін қамтитын/жасайтын XSLT стилі парағын жаза аласыз және кез келген ақылға қонымды есептеулерді жүргізуге мүмкіндік береді.
қосылды автор Dabbler, көзі

2 жауаптар

Unfortunately, fop doesn't implement from what I have found out. Instead, this solution here worked for me:

XSL-FO ішіндегі бет нөміріне байланысты бір немесе басқа ақпаратты қалай көрсету керек?

It involves creating a separate table outside of the that displays the table header using elements.

1
қосылды
@ МайклСуляев: Негізінде сіз дұрыссыз. Бірақ менің орналасуымның бекітілген биіктіктің дәл 37 қатары болуы керек. Сонымен, мен бақыттымын :-) Сонымен қатар, төменгі колонтитулымен бірдей трюк жасай аламын және кестенің төменгі деректемесін бөлімі
қосылды автор Lukas Eder, көзі
@MichaelSulyaev ... Hmm, шын мәнінде мен қазір барлық мәселе ескірген, бірақ бұл қатаң жазба сияқты, XSL-де кейбір есептерді FOP-ны орналастыруды бастаудан бұрын жасай аламын деп түсінемін ...
қосылды автор Lukas Eder, көзі
Егер кесте ағынның бірінші түрі болса, кестенің үстіңгі деректемесінде жұмыс істей алады, бірақ кестенің төменгі деректемесі үшін емес: бізде кестенің төменгі деректемесінің бетінде алдын-ала білмейміз.
қосылды автор Mike Sulyaev, көзі

«Кесте таңбалауыштарын» қолданып көріңіз: http://www.w3.org/TR/ xsl/# fo_retrieve-table-marker .

Әрбір жол үшін XSLT-де сомасы бар маркерді енгізіңіз. Содан кейін, қозғалтқыш кестенің үстіңгі деректемесінде немесе төменгі деректемедегі fo: retrieve-table-marker деген алмастыруға арналған маркерді таңдай берсін. Мақсаты: маркердің бетіндегі позициясына және @ retrieve-position және @: retrieve-table-marker-дегі @ retrieve-шекарасына байланысты уақытты көрсету кезінде тиісті маркер таңдалады.

1
қосылды
Бұл менің іздегенімдей көрінеді. Мен бұл ең қысқа мерзімге тырысамын. Рахмет!
қосылды автор Lukas Eder, көзі
Өкінішке орай, қолданбасы Apache fop :-( ішінде жоқ сияқты көрінеді.
қосылды автор Lukas Eder, көзі