Kompozytor QGIS dodaje tabelę atrybutów z powtarzającymi się kolumnami

12

Potrzebuję pomocy z kompozytorem wydruku QGIS. Używam kompozytora atlasu i staram się korzystać add attribute tablez karty układu.

Mam wyrażenie, które chcę wydrukować w kompozytorze.

wyrażenie pola (które chcę):

case when "myfield" is not null   then concat(myfield,' ',myfield1,' & ',myfield2) else concat(myfield1,' ',myfield3)

Zdefiniowałem filtr, z item propertiesktórego chcę drukować w atlasie:

intersects(buffer($geometry),50),$atlasgeometry)

ale pokazuje to tak:

value1
value2
value3
value4
value5
value6
value7
value8
value9

z powodu wielu wartości nie mogę wydrukować ich wszystkich w moim układzie. Potrzebuję takiego wyniku:

value 1   value2
value 3   value4
value 5   value6
value 7   value8
value9

Jeśli wartości są takie, to mogę wydrukować wszystko. Jeśli chcę dodać legendę, wybierz opcję, w której możesz wybrać kolumny

kolumny

Tego potrzebuję do swoich atrybutów, ale nie mogę znaleźć czegoś takiego.

Wreszcie próbuję utworzyć nowe wyrażenie na moim polu i próbuję dodać kolejną funkcję, ale bez powodzenia.

Próbowałem tego:

dbvaluebyid('test','f_field', @row_number ) ||'' ||dbvaluebyid('test','f_field', @row_number +1)

ale z tych wyrażeń nie biorę następnej funkcji.

i to:

case when "myfield" is not null   then concat(myfield,' ',myfield1,' & ',myfield2) else concat(myfield1,' ',myfield3)  end ||  '                                    ' || case when "myfield" is not null   then concat(myfield,' ',myfield1,' & ',myfield2) else concat(myfield1,' ',myfield3)

dowolny pomysł?

jessie jes
źródło
Czy próbowałeś trybu „Powtarzaj do końca” w oknie Właściwości elementu> „Ramki”> „Tryb zmiany rozmiaru:”?
Kleber Barcelar
2
Czy próbowałeś utworzyć drugi atrybut identyczny z pierwszym, ale filtrujesz pierwszą tabelę atrybutów do pierwszych 5 rekordów, a drugą tabelę atrybutów do ostatnich czterech rekordów?
Knightshound
@KleberBarcelar, który nie jest ramką, jest tabelą atrybutów Nie mam trybu zmiany opcji opcji
jessie jes
@Knightshound Chcę mieć eksport podwójnych wartości dla każdego wiersza, który eksport jest wynikiem filtra
jessie jes
1
@KleberBarcelar Repeat until finished pokaż mi nowe wartości na nowej pustej stronie
jessie jes

Odpowiedzi:

1

Znalazłem sposób, ale na razie nie jest tak naprawdę interaktywny. Pozwala to jednak wyświetlać ładny stolik:

W QGIS

  • Wyeksportuj swoją tabelę do Excela

W programie Excel lub podobnym

(Być może tę część można zautomatyzować w programie Excel)

  • W razie potrzeby przefiltruj dane, aby uzyskać tabelę według własnego uznania

  • Utwórz nowy zestaw kolumn po pierwszych

  • Wytnij i wklej dodatkowe rekordy po prawej stronie pierwszych

  • Dodaj styl do swojego stołu

Przekształcenie tabeli

W słowie lub podobnym

  • Skopiuj i wklej nową tabelę do dokumentu tekstowego (sprawdź wyświetlacz)

  • Zapisz jako dokument HTML, jeśli wszystko jest w porządku

Słowo HTM

Edytor tekstu

  • Otwórz plik HTML w edytorze tekstu (na przykład: Notepad ++)

  • Skopiuj kod HTML

Z powrotem w QGIS

  • Utwórz ramkę HTML w swoim kompozytorze QGIS i wklej kod HTML

Ostatni krok w QGIS

Teraz masz swoje dane w 2 kolumnach ... ze stylem :)

gisnside
źródło
Sądzę, że muszą być lepszym rozwiązaniem, aby spróbować zachować link do oryginalnej tabeli i / lub automatycznie zregenerować HTML. Ale prawdopodobnie wymaga trochę kodowania, aby wyeksportować bezpośrednio tabelę qgis do kodu HTML.
gisnside