Bug report #17212
Attribute tables in print composer not updating
|Affected QGIS version:||2.18.13||Regression?:||No|
|Operating System:||Linux Mint 18.1, XFCE (but really Mate) 64 bit.||Easy fix?:||No|
|Pull Request or Patch supplied:||No||Resolution:||invalid|
|Crashes QGIS or corrupts data:||No||Copied to github as #:||25111|
I have a large map, reading a KML file into a hierarchical shape layer in QGIS. The map has been in progress for about 18 months and was started with an earlier version of QGIS. One of the features I'm using is an attribute table in composer to enumerate data tables that are useful in the project but inconvenient to display on the map as labels (at least until some differential formatting of labels, such as HTML tags, are supported).
I made a change in the site labeling format in Google Earth and updated the KML file (from BX04 to BX.04, for clarity) which was reflected, as expected, in the field values visible in Expressions Dialog
Map->Layer->Properties->Label With->Expression Dialog
When I opened the composer window for a map, the field values were not updated.
Print Composer->Attributes->Expression Dialog
I attempted the following:
- Click the "refresh table data" button (many times)
- Click the "refresh view" button (many times)
- Restart QGIS
- Reboot computer
- Check for updates (none)
Nothing seems to help. There's only stale data in the attribute table.
I created a new attribute table:
And it still has stale data (note that the map view shows current data)
I created a new composer, with a single base map, and added an attribute table, same result. I can't seem to get the attribute table data to sync with the map data. Help help help.
#1 Updated by David Gessel over 3 years ago
One artifact I forgot to mention: starting from the command line I get the following errors on startup, which may or may not be related:
Warning: QObject::connect: Incompatible sender/receiver arguments
QgsComposerItemComboBox::itemChanged(QgsComposerItem*) --> QgsComposerAttributeTableWidget::composerMapChanged(const QgsComposerItem*)
#3 Updated by Nyall Dawson over 3 years ago
- Status changed from Open to Feedback
It looks odd to me that the field names in the composer expression builder screenshot are truncated when compared to the other expression builder screenshot. E.g. altitudeMo instead of altitudeMode.
It might be a stupid question - but are you SURE the attribute table layer is the same layer?
#4 Updated by David Gessel over 3 years ago
OMG..... not stupid question.
Stupid answer, no. I examined the .qgs file, searched for "attribute" and, duh, the source is:
<ComposerAttributeTableV2 vectorLayerName="All-Points" source="0" showGrid="1" maxFeatures="30" resizeMode="0" filterFeatures="false" featureFilter="" emptyTableMode="0" wrapString="" wrapBehaviour="0" headerMode="0" backgroundColor="255,255,255,255" showEmptyRows="0" emptyTableMessage="" showOnlyVisibleFeatures="1" vectorLayer="All_Points_shp20170601154059370" vectorLayerSource="../All_Points.shp" composerMap="0" headerHAlignment="0" contentFontColor="0,0,0,255" headerFontColor="0,0,0,255" cellMargin="1" filterToAtlasIntersection="0" relationId="" gridStrokeWidth="0.5" gridColor="0,0,0,255" showUniqueRowsOnly="0" vectorLayerProvider="ogr">
not the KML file. My bad.
Certainly explains the stale data.