Anzeige bis zu 6 Bilder pro Zeile ohne Fehlausrichtung [geschlossen]
Posted: 12 Feb 2025, 10:51
Ich arbeite an einem RDLC -Bericht in Visual Studio 2019 und muss bis zu 6 Bilder pro Zeile dynamisch anzeigen. Die Bilder werden in einer SQL -Server -Datenbank gespeichert, und ich übergende sie als externe Bilder in einem DataTable aus C#. />
Verwenden einer Spaltengruppe mit = Decke (Rownumber (nichts) /6) < /code>, die die Bilder in Zeilen korrekt anordnet. < /li>
Stellen Sie sicher, dass die Tablix -Breite + Ränder nicht die Seitenbreite (A4 = 21 cm) überschreiten. LI> Stellen Sie sicher, dass der Datensatz nur gültige Bildpfade enthält (keine leeren Zeilen). Boxlayouts, die sie nicht gleichmäßig verteilen. Darüber hinaus gibt es, wie im folgenden Screenshot gezeigt, auf der rechten Seite einen blauen Abschnitt, der im Bericht nicht angezeigt werden sollte.
private DataTable GetHazardImages(string safetySheetId)
{
string basePath = @"MyLocation";
string query = $@"
SELECT hazardImage1, hazardImage2, hazardImage3, hazardImage4, hazardImage5, hazardImage6
FROM MyTable..MyTable
WHERE DocumentId = '{safetySheetId}'";
DataTable originalData = DatabaseHelper.ExecuteQuery(query);
DataTable imagesTable = new DataTable();
imagesTable.Columns.Add("ImagePath", typeof(string));
if (originalData.Rows.Count > 0)
{
DataRow row = originalData.Rows[0];
for (int i = 0; i < originalData.Columns.Count; i++)
{
string imageName = row?.ToString();
if (!string.IsNullOrEmpty(imageName))
{
string fullPath = Path.Combine(basePath, imageName);
if (File.Exists(fullPath))
{
imagesTable.Rows.Add(new Uri(fullPath).AbsoluteUri);
}
}
}
}
return imagesTable;
}
< /code>
Erwartete Verhalten < /H3>
Bilder sollten in Zeilen von bis zu 6 pro Zeile korrekt ausgerichtet sein. < /li>
Wenn es weniger als 6 Bilder gibt, sollten sie immer noch richtig ausgerichtet werden, ohne große leere Räume zu hinterlassen. /li>
< /ul>
Wie der Bericht im Designmodus aussieht - ordnungsgemäß ausgerichtet, kein leerer Speicherplatz. Bildbeschreibung hier "src =" https://i.static.net/82cltcht.png "/>
Wie der Bericht während der Ausführung aussieht - zeigt die Fehlausrichtung und den unerwünschten blauen Abschnitt
Verwenden einer Spaltengruppe mit = Decke (Rownumber (nichts) /6) < /code>, die die Bilder in Zeilen korrekt anordnet. < /li>
Stellen Sie sicher, dass die Tablix -Breite + Ränder nicht die Seitenbreite (A4 = 21 cm) überschreiten. LI> Stellen Sie sicher, dass der Datensatz nur gültige Bildpfade enthält (keine leeren Zeilen). Boxlayouts, die sie nicht gleichmäßig verteilen. Darüber hinaus gibt es, wie im folgenden Screenshot gezeigt, auf der rechten Seite einen blauen Abschnitt, der im Bericht nicht angezeigt werden sollte.
private DataTable GetHazardImages(string safetySheetId)
{
string basePath = @"MyLocation";
string query = $@"
SELECT hazardImage1, hazardImage2, hazardImage3, hazardImage4, hazardImage5, hazardImage6
FROM MyTable..MyTable
WHERE DocumentId = '{safetySheetId}'";
DataTable originalData = DatabaseHelper.ExecuteQuery(query);
DataTable imagesTable = new DataTable();
imagesTable.Columns.Add("ImagePath", typeof(string));
if (originalData.Rows.Count > 0)
{
DataRow row = originalData.Rows[0];
for (int i = 0; i < originalData.Columns.Count; i++)
{
string imageName = row?.ToString();
if (!string.IsNullOrEmpty(imageName))
{
string fullPath = Path.Combine(basePath, imageName);
if (File.Exists(fullPath))
{
imagesTable.Rows.Add(new Uri(fullPath).AbsoluteUri);
}
}
}
}
return imagesTable;
}
< /code>
Erwartete Verhalten < /H3>
Bilder sollten in Zeilen von bis zu 6 pro Zeile korrekt ausgerichtet sein. < /li>
Wenn es weniger als 6 Bilder gibt, sollten sie immer noch richtig ausgerichtet werden, ohne große leere Räume zu hinterlassen. /li>
< /ul>
Wie der Bericht im Designmodus aussieht - ordnungsgemäß ausgerichtet, kein leerer Speicherplatz. Bildbeschreibung hier "src =" https://i.static.net/82cltcht.png "/>
Wie der Bericht während der Ausführung aussieht - zeigt die Fehlausrichtung und den unerwünschten blauen Abschnitt