|
Один ко многим в строку?
|
|||
---|---|---|---|
#18+
Мужики! В отчете есть связь один ко многим. Допустим так: Таблица: Продавцы Таблица: Клиенты У Продавцы.Иванов 20 клиетнов Клиенты.Имя (1...20) Надо каким то образом сделать так: Все Имена Клиентов продавца Иванова сохранить в строку через запятую и потом эту строку вставить в отчет (в таблицу). Трахаюсь уже целый день. Помогите создать формулу! Плииз! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2006, 18:04 |
|
Один ко многим в строку?
|
|||
---|---|---|---|
#18+
ну если можно юзать функции (SQL), то лучше сделать оную... то есть пиши: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2006, 06:53 |
|
Один ко многим в строку?
|
|||
---|---|---|---|
#18+
SQL запросы нельзя использовать (если бы можно было, то я хранимку написал бы и не мучился). Все построено ТОЛЬКО на таблицах. Можно использовать формулы. Да вот только я не знаю как нарисовать такую формулу, чтобы в строку сгоняла столбец таблицы. Буду крайне признателен за помощь. Не помню указал ли я, но это все надо сделать в Crystal Report 10 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2006, 10:49 |
|
Один ко многим в строку?
|
|||
---|---|---|---|
#18+
формула shared stringvar s; s:= s +", " + {Клиенты.Имя}; s; ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2006, 11:49 |
|
Один ко многим в строку?
|
|||
---|---|---|---|
#18+
проблема в том, что такой подход накапливает значение {Клиенты.Имя} и в каждой строке этих значений получается больше на одно. но подход верен! подскажите как доработать этот скрипт, чтобы {Клиенты.Имя} собиралось ТОЛЬКО для данного Продавца в даннйо строке отчета ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2006, 19:45 |
|
Один ко многим в строку?
|
|||
---|---|---|---|
#18+
Мужики проблема еще актуальна! Код: plaintext 1. 2. 3. 4.
отчет должен иметь такой вид: Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2006, 17:11 |
|
Один ко многим в строку?
|
|||
---|---|---|---|
#18+
для каждой новой группы надо сбрасывать занчение создаем еще формулу которую добавляем в footer группы shared stringvar s; stringvar temp; temp:=s; if Nextisnull({dict_Main.OwnerID}) or Next ({dict_Main.OwnerID})<>{dict_Main.OwnerID} then s:=""; temp; ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2006, 17:38 |
|
Один ко многим в строку?
|
|||
---|---|---|---|
#18+
Спасибо! Но задача усложнилась: Как теперь вывести не через запятую, а в каждой новой строке (что то типа chr(10)+chr(13)) как перевести каретку программно? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2006, 19:31 |
|
Один ко многим в строку?
|
|||
---|---|---|---|
#18+
Отвечаю сам. Может кому-то это поможет. Чтобы вставить "возврат каретки" и писать с новой строки надо сделать так в формуле: stringvar strVar; strVar:= strVar + {ИмяТаблицы.Имя поля} + ChrW(10)+ ChrW(13); strVar; ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2006, 15:16 |
|
|
start [/forum/topic.php?fid=31&fpage=153&tid=1538828]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 136ms |
0 / 0 |