Исчезла кнопка Сохранить - причина в XML
Добавлено: 06 сен 2011, 09:36
Добрый день, уважаемые!
Мне срочно необходима помощь в поиске проблемы.
В приложении 2 файла (2008.1.200.mrt и 2011.2.1001.mrt), содержащие один и тот же отчёт, но сохранённый в разных версиях.
Суть проблемы. У нас есть небольшой проект, который мы написали ещё в 2008-м году, тогда же мы использовали версию Стимула 2008.1.200. Недавно мы перекомпилировали этот проект с небольшими изменениями, и заодно перешли на версию 2011.2.1001.
Сегодня выяснилось (путём экспериментов и кучи потерянного времени), что отчёты созданные в 2008-м году (в версии 2008.1.200) работают так же, как и положено, но в компоненте Preview не отображается кнопка "Сохранить", даже несмотря на свойство ShowSave = true. Причём, загрузка старого отчёта и пересохранение его в новую версию ничего не даёт.
Эмпирическим путём было выяснено, что проблема в XML (читай - в mrt-файле), т.к. при загрузке любого другого файла отчёта, а также просто пустого отчёта - всё работает, т.е. кнопка "Сохранить" появляется. Иными словами что-то в mrt-файле такое, что заставляет парсер думать, что флаг ShowSave = false и скрывать эту кнопку.
Файл "empty (2011.2.1001).mrt" для иллюстрации (этот тот же самый отчёт, просто я убрал всё лишнее, чтобы он просто запускался). Если его запустить из вот такого кода:
то можно обнаружить отсутствие кнопки.
Как быть, что делать. Благо таких отчётов у нас немного, но их нужно быстро поправить, т.к. люди не могут сохранить данные в Excel, Word и пр.
Мне срочно необходима помощь в поиске проблемы.
В приложении 2 файла (2008.1.200.mrt и 2011.2.1001.mrt), содержащие один и тот же отчёт, но сохранённый в разных версиях.
Суть проблемы. У нас есть небольшой проект, который мы написали ещё в 2008-м году, тогда же мы использовали версию Стимула 2008.1.200. Недавно мы перекомпилировали этот проект с небольшими изменениями, и заодно перешли на версию 2011.2.1001.
Сегодня выяснилось (путём экспериментов и кучи потерянного времени), что отчёты созданные в 2008-м году (в версии 2008.1.200) работают так же, как и положено, но в компоненте Preview не отображается кнопка "Сохранить", даже несмотря на свойство ShowSave = true. Причём, загрузка старого отчёта и пересохранение его в новую версию ничего не даёт.
Эмпирическим путём было выяснено, что проблема в XML (читай - в mrt-файле), т.к. при загрузке любого другого файла отчёта, а также просто пустого отчёта - всё работает, т.е. кнопка "Сохранить" появляется. Иными словами что-то в mrt-файле такое, что заставляет парсер думать, что флаг ShowSave = false и скрывать эту кнопку.
Файл "empty (2011.2.1001).mrt" для иллюстрации (этот тот же самый отчёт, просто я убрал всё лишнее, чтобы он просто запускался). Если его запустить из вот такого кода:
Код: Выделить всё
StiReport stiReport = new StiReport();
stiReport.Load(@"c:\temp\empty (2011.2.1001).mrt");
stiReport.Show();
Как быть, что делать. Благо таких отчётов у нас немного, но их нужно быстро поправить, т.к. люди не могут сохранить данные в Excel, Word и пр.