Можно ли использовать субблок для субблока при создании docx с opentbs? - PullRequest
0 голосов
/ 23 июня 2019

Я пытаюсь вывести массив в файл docx с помощью плагина opentbs. Мой массив имеет вложенный массив, поэтому я использую блок для основного массива с субблоком для вложенного массива. Это работает отлично. Моя проблема в том, что вложенный массив также имеет собственный вложенный массив. Можно ли вывести это с помощью субблока?

Ниже показано, что я использую в шаблоне docx, данные отгрузки (блок) и данные записей (субблок) отображаются так, как мне нужно. Для каждой записи мне нужно отображать пакеты (субблок), но в данный момент он просто выводит теги, а не данные пакетов. Куда я иду не так?

[a.shipment_#; block=tbs:row;sub1=entries]  
   [a_sub1.id]  
   [a_sub1.shipping_name;block=tbs:row;sub2=packs] 
   [a_sub1.total_quantity]  
        [a_sub2.display_line;block=tbs:row]
[a_shipment_total]

Это массив:

Array
(
    [0] =>; Array
        (
            [entries] =>; Array
                (
                    [1] =>; Array
                        (
                            [id] =>; 10000
                            [shipping_name] =>; Name1
                            [total_quantity] =>; 135                           
                            [packs] =>; Array
                                (
                                    [0] =>; Array
                                        (
                                            [display_line] =>; 6 Steel Drums x 10L
                                        )

                                    [1] =>; Array
                                        (
                                            [display_line] =>; 5 Steel Drums x 15L
                                        )

                                )

                        )

                    [2] =>; Array
                        (
                            [id] =>; 100001
                            [shipping_name] =>; Name2 
                            [total_quantity] =>; 50                           
                            [packs] =>; Array
                                (
                                    [0] =>; Array
                                        (
                                            [display_line] =>; 2 Plastic Jerry Cans x 25L
                                        )

                                )

                        )

                    [3] =>; Array
                        (
                            [id] =>; 10002
                            [shipping_name] =>; Name3
                            [total_quantity] =>; 170                          
                            [packs] =>; Array
                                (
                                    [0] =>; Array
                                        (
                                            [display_line] =>; 1 Plastic Jerry Can x 20L
                                        )

                                    [1] =>; Array
                                        (
                                            [display_line] =>; 6 Plastic Jerry Cans x 25L
                                        )

                                )

                        )                    

                )

            [shipment_id] =>; #1234
            [shipment_total] =>; 355
        )

)

1 Ответ

0 голосов
/ 23 июня 2019

Функция субблока поддерживает субблок.

Блок a_sub1 является субблоком для блока a.

Блок a_sub1_sub1 является субблоком для блока a_sub1, таким образом, это субблок блока 'a'.

Вот как может выглядеть ваш шаблон:

[a.shipment_id;block=tbs:row;sub1=entries]  
   [a_sub1.id]  
   [a_sub1.shipping_name;block=tbs:row;sub1=packs] 
   [a_sub1.total_quantity]  
        [a_sub1_sub1.display_line;block=tbs:row]
[a.shipment_total]
...