это мой любимый хак (не уверен, что он должен работать). Он ссылается на элемент, который еще не отображается, и он работает довольно хорошо
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 620 40" preserveAspectRatio="xMidYMid meet">
<defs>
<filter x="-0.02" y="0" width="1.04" height="1.1" id="removebackground">
<feFlood flood-color="#00ffff"/>
</filter>
</defs>
<!--Draw the text-->
<use xlink:href="#mygroup" filter="url(#removebackground)" />
<g id="mygroup">
<text id="text1" x="9" y="20" style="text-anchor:start;font-size:14px;">custom text with background</text>
<line x1="200" y1="18" x2="200" y2="36" stroke="#000" stroke-width="5"/>
<line x1="120" y1="27" x2="203" y2="27" stroke="#000" stroke-width="5"/>
</g>
</svg>
У вас есть два варианта
Измените свой SQL, чтобы вводить только те данные, которые вам нужны. Очевидно, вам не нужна строка за 4 августа 2010 года. Так что не включайте ее в отчет. Тогда ваше резюме будет работать должным образом.
Создайте промежуточную сумму и оцените изменение строки, используя формулу, противоположную формуле подавления.
Другой вариант - просто использовать глобальные переменные для отслеживания суммы с помощью обратного условия, которое вы используете для подавления. Это должно быть лучше, с точки зрения производительности, чем использование бегущих итогов или полей итогов Crystal.
Хотя, я бы предположил, что использование SQL-выражения для простого выбора строк с самыми ранними датами по ItemID было бы еще быстрее и позволило бы избежать необходимости перебора данных в Crystal.