2016-12-07 1 views
0

Моя система имеет таблицу базы данных для заказов (Sales Lines) и таблицу, в которой хранятся адреса клиентов (Customer_Addresses). Каждый клиент может иметь до 10 адресов.Формула выбора, где значение находится в DataTable

Мне нужно создать Crystal Reports, чтобы получить все заказы между указанным диапазоном дат, когда клиент находится в выбранной стране. Например, между 01/01/2016 - 31/12/2016 в Великобритании.

Я рассмотрел возможность выбора всех адресных кодов, где Country = selected_country от Customer_Addresses, а затем сохраняя результаты в DataTable. Тогда я хотел бы использовать формулу отбора {Sales Lines.Order_Date} >= myDate AND {Sales Lines.Order_Date} <= myOtherDate AND {Sales Lines.Address} = (One of the codes within the DataTable)

Какой код мне нужно после того, как {Sales Lines.Address} = для поиска записей, где код адреса в Sales Lines.Address также хранятся в DataTable я создал при выборе из Customer_Addresses?

+0

Вы предоставили пользователю любой параметр для ввода кодов? – Siva

+0

@ Шива Адресные коды? Нет, они введены на экран клиента, это находится в отдельной форме. Параметр, выбранный в этой форме, будет страной, о которой они сообщают, где они выбирают ее в combobox. – David

+0

Можете ли вы подробно описать структуры ваших таблиц? Я мог бы написать один запрос, который бы разрешил задачу. – GrApDev

ответ

1

Crystal Reports имеет простую функциональность для такого рода задач:

Просто присоединиться от Sales Lines к Customer_Adresses. Теперь вы можете настроить фильтр даты и фильтр страны напрямую. У вас будут дубликаты в ваших данных, если более одного адреса клиентов для одного и того же заказа совпадают с кодом страны. Но это не проблема. Crystal Reports имеет возможность принудительно выполнять отдельные данные. Просто активируйте эту опцию в меню базы данных (он будет использовать DISTINCT в SQL) ...

Смежные вопросы