AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.10.2008, 12:17   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Вата Посмотреть сообщение
Как в Аксапте написать «*» ?

Нужно чтобы выбирались ВСЕ поля, пробовал пустые скобки не хочет?!
Смотрите:
0. это два совершенно разных вопроса. причем второй скорее всего неправильный.

1. для того, чтобы Аксапта искала записи, в которых содержится спецсимвол, то спецсимвол надо экранировать бэкслешем (\). Или использовать @-стиль написания строковых литералов

например, while select mytable where myTable.myField == '\*' {}
или @-стиль, while select mytable where myTable.myField == @'\' {}

2. для того, чтобы аксапта выбирала все ЗАПИСИ, то надо избавиться от условия where. Правильный способ работы с переменными услвоиями - это использовать Query.

Если же вы хотите обязательно while select, то надо писать так
str myRange = '';
while select mytable
where (myTable.myField == myRange || myRange == '') {}

3. для того, чтобы аксапта выбирала все ПОЛЯ, ничего делать не нужно. Ваш запрос уже выбирает все поля, поскольку вы не перечислили ни одного поля в запросе.
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: Gustav (3).
Старый 29.10.2008, 12:25   #2  
Вата is offline
Вата
Участник
 
71 / 0 (1) +
Регистрация: 20.09.2008
Задача:
На форме есть поле.. Если в поле что то стоит (есть значение), то нужно это использовать как фильтр, если же там ничего не стоит (пусто) то нужно игнорировать это условие (выбрать всё поля). С query не охота заморачиваться..

X++:
str myRange = '';
while select mytable 
where (myTable.myField == myRange || myRange == '') {}
говорит нельзя string в запросах!

Последний раз редактировалось Вата; 29.10.2008 в 12:28.
Старый 29.10.2008, 12:29   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Вата Посмотреть сообщение
С query не охота заморачиваться..
А придется. Именно query предназначен для работы с пользовательскими условиями.

Вы конечно можете написать вот так
X++:
     while select,    
str myRange = '';
while select mytable
where (myTable.myField == myRange || myRange == '') {}
Но следующая ваша хотелка будет в том, что надо реализовать пользовательский фильтр с запятыми, восклицательными знаками и прочей чешуей.
http://axapta.mazzy.ru/lib/search/

разберитесь с query.
__________________
полезное на axForum, github, vk, coub.
Старый 29.10.2008, 12:31   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Вата Посмотреть сообщение
говорит нельзя string в запросах!
можно конечно. FAQ http://forum.mazzy.ru/index.php?showtopic=173

Извините, что написал, не подумав, что вы введете в Аксапту именно этот код.
Надо писать так

X++:
myStringType myRange = '';
while select mytable
where (myTable.myField == myRange || myRange == '') {}
на худой конец так
X++:
str 10 myRange = '';
while select mytable
where (myTable.myField == myRange || myRange == '') {}
__________________
полезное на axForum, github, vk, coub.
Старый 29.10.2008, 12:27   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Возможно вас устроит вот такая конструкция

X++:
Select Table
where ((value == '') || (Table.field == value));
За это сообщение автора поблагодарили: mazzy (2).
Теги
как правильно, запрос (query), axapta

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Помогите такой вопрос написать в Аксапте Protey DAX: Программирование 13 25.09.2006 13:04
Standart Costing, Direct Costing и механизмы их реализации в Аксапте slava09 DAX: Функционал 55 05.06.2006 11:00
Система оповещений в Аксапте (события в Аксапте) raunio DAX: Прочие вопросы 1 29.09.2005 15:44
Аналитический учет в Аксапте. Анна DAX: Прочие вопросы 38 06.04.2005 14:04
Размышления на тему “Системы контроля версий в Аксапте”. Андре DAX: База знаний и проекты 31 07.02.2005 12:29

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:00.