Вот странная проблема, с которой я столкнулся.
Моя рекордная избранная формула следующим образом, у меня есть dumbed она вниз в целях этой ошибки:
reportDocument.RecordSelectionFormula = " {@ClientName} = 'Smith' "
Если я копирую этот точный оператор выбора в Crystal, он предварительно просматривает прекрасный, но, когда выполнено от.NET я добираюсь
'Это имя поля не известно'.
Проблема происходит в @ClientName
поле формулы.
@ClientName
просто содержит:
formula = {aw_illust.CL1LNAM}
Я могу также установить его на просто пустую строку (формула =""), и это все еще дает
'Это имя поля не известно'.
Вот странная часть, если я обхожу формулу и помещаю текст формул прямо в.NET, все хорошо работает.
reportDocument.RecordSelectionFormula = " {aw_illust.CL1LNAM} = 'Smith' "
Это - тот же рекордный выбор, кроме с'@ClientName
'формула, замененная'{aw_illust.CL1LNAM}
'. Это просто происходит на этом отчете, у меня есть много других Crystal Reports, работающих с формулами, на которые ссылаются в.NET очень хорошо. Какие-либо идеи?
Существует обходной путь для этой проблемы, объясненной в этом посте: JAXB: Как игнорировать пространство имен во время размытия XML-документа? . В нем объясняется, как динамически добавлять/удалять записи xmlns из XML с помощью фильтра SAX. Управляет сортировкой и снятием шаров.
-121--2572814- Требуется более regex
, например «9999-99-00» не является допустимой датой. Для этого создан класс SimpleDateFormat
. Более тяжеловесный, но более комплексный.
например.
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
boolean isValidDate(string input) {
try {
format.parse(input);
return true;
}
catch(ParseException e){
return false;
}
}
К сожалению, SimpleDateFormat
является как тяжеловесным, так и небезопасным для потоков.
Какой синтаксис имеет формулу? Если это кристаллический синтаксис, измените его на базовый синтаксис. Или измените содержание формулы на кристаллический синтаксис (без «formula =»)