удваивание суммы при 2-х detail band | |
---|---|
glaz58 Автор Сообщений: 812 Откуда: Воронеж Дата регистрации: 09.02.2008 |
Уважаемые знатоки! В прикреплении упрощённый вариант для иллюстрации. Для просмотра результата запустить программу itog. В показанном случае нет необходимости городить 2 detail band, это для иллюстрации, что при 2-х detail band сумма в Group Footer удваивается. Как избавиться от удвоения? Можно просто поделить на 2, но мне кажется, что есть более правильный способ, который мне неизвестен, поэтому прошу помощи у знатоков.
|
Re: удваивание суммы при 2-х detail band | |
---|---|
akvvohinc Сообщений: 4216 Откуда: Москва Дата регистрации: 11.11.2008 |
Похоже, вы неправильно понимаете работу в режиме Multiple-Detail Bands.
Почитайте об этом для начала документацию: What's New in the Visual FoxPro 9.0 Report Writer И в частности следующие подразделы: Driving the Report The "Target Alias" Relations Там есть пример такого отчета - постарайтесь понять, что там, для чего и как. А пока просто расскажите, какие таблицы вы должны выводить в реальном отчете, как они между собой связаны, что вы собираетесь выводить в Detail-1, а что - в Detail-2. Потому что в примере, который вы привели здесь, Target Alias для Detail'ов не указан, следовательно, по умолчанию для обоих это будет та же самая таблица (tabla) - вот значения и задвоились (создадите аналогичный Detail-3 - затроятся и т.д). Исправлено 1 раз(а). Последнее : akvvohinc, 23.10.21 22:12 |
Re: удваивание суммы при 2-х detail band | |
---|---|
glaz58 Автор Сообщений: 812 Откуда: Воронеж Дата регистрации: 09.02.2008 |
Спасибо за внимание к теме. В примере, который приведён здесь, всё максимально похоже на реальные таблицы, только упрощено для иллюстративности. Target alias я не указал, потому что и в реальных таблицах его нет. Мне только нужно, чтобы в Group Footer суммировались значения из detail1 и не удваивались.
|
Re: удваивание суммы при 2-х detail band | |
---|---|
sphinx Сообщений: 31179 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
Сергей (akvvohinc) как Максимов - всегда подскажет, и примеры приведет. И без ненужного сарказма. Фокса на выходных нет, подключусь, если коллеги не помогут. Что вряд ли.
А что почитать - Сергей привел. Вы не начинающий, поди разберетесь. Если нет - решим вашу проблему - я, Сергей, или кто-то другой. ------------------ "Veni, vidi, vici!"(с) Исправлено 1 раз(а). Последнее : sphinx, 24.10.21 12:38 |
Re: удваивание суммы при 2-х detail band | |
---|---|
glaz58 Автор Сообщений: 812 Откуда: Воронеж Дата регистрации: 09.02.2008 |
При получившем распространение троллинге (даже здесь) это действительно ценно. Пока то, что я прочитал, мне не помогло. Понятие "Target alias" мне не ясно, в моём случае его нет. Есть только одна таблица, связанная по Relation с несколькими таблицами. В приведённом примере это Tabla, связанная по nrazd с таблицей Razdel. Этот упрощённый пример соответствует реальной проблеме, только там полей больше и действия более разнообразные. Но сущность та же. Я применил возможность иметь более одного detail band несколько "ненаучно". Но проблема оформления репорта для меня таким образом решилась. Исправлено 1 раз(а). Последнее : glaz58, 24.10.21 15:01 |
Re: удваивание суммы при 2-х detail band | |
---|---|
sphinx Сообщений: 31179 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
Я понял. Скачаю ваш репрокод, завтра на работе с коллегами ( за Фокс я отвечаю, но есть тим-лидер, тоже уже 8 лет в фоксе погряз ). Вопроизведем - решим. А пока я как гнморрой по фотку не рещу. Может коллеги подключатся и кто-то быстрее поковыпяет. Сорри, с грпмматикой ок, просто мобильный. Предупредил. ------------------ "Veni, vidi, vici!"(с) |
Re: удваивание суммы при 2-х detail band | |
---|---|
sphinx Сообщений: 31179 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
Цитата: Я за стеб - за. Но только если при этом идут попытки помощи. А когда- ой, надо книги читать...Ну фу так. Гугл и книги читаем, но не все знаем.Смею заверить, что на Девкон-2008 Журавлев спросил, кто себя считает гуру? Не было леса рук. Нормальный бытовой аопрос, поможем (может и не я). ------------------ "Veni, vidi, vici!"(с) |
Re: удваивание суммы при 2-х detail band | |
---|---|
sphinx Сообщений: 31179 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
Это не проблема, вот всем миром Тане (Tata) помогали, это реально рак мозгов. И я не все решил - Дроздов стоял у истоков, ИК помог советами. А допинал все Журавлев. Мне сейчас такой подвиг не повторить. Тогда взвился, что помочь надо. Я не гуру.
------------------ "Veni, vidi, vici!"(с) |
Re: удваивание суммы при 2-х detail band | |
---|---|
Taran Сообщений: 13624 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Ты при выводе деталей видимо учитываешь тип строки?
Ну так и поле суммирования надо прописывать этот фильтр. |
Re: удваивание суммы при 2-х detail band | |
---|---|
akvvohinc Сообщений: 4216 Откуда: Москва Дата регистрации: 11.11.2008 |
Для приведенного примера ответ прост - уберите "неправильный" и ненужный Detail-2 - и всё будет Ok. А когда вы ответите на это, вам, вероятно помогут:
|
Re: удваивание суммы при 2-х detail band | |
---|---|
akvvohinc Сообщений: 4216 Откуда: Москва Дата регистрации: 11.11.2008 |
Сущность, видимо, не та же, так как для приведенного примера Detail-2 не нужен. Пока вы не разберетесь, что же такое и как использовать Multiple-Detail Bands, ничего не получится. Если в вашем случае "Target alias" нет (хотя как вы могли это решить, если вам непонятно, что же такое Target alias?), то неоткуда взяться и Detail-2. Detail-1, Detail-2 и прочие полосы - это не просто место, в котором что-то выводится - в отчете всё взаимосвязано, и есть вполне определенная логика его работы, её надо понимать, а не громоздить полосы "чисто механически". В этой статье есть пример с одной "главной" таблицей и тремя дочерними, на основе которого объясняется что же такое "Target alias", чем его заполнять, чтобы получить желаемый результат. Если у вас, как вы пишете, сущность та же, то и действовать можно "по аналогии". Исправлено 2 раз(а). Последнее : akvvohinc, 24.10.21 17:26 |
Re: удваивание суммы при 2-х detail band | |
---|---|
akvvohinc Сообщений: 4216 Откуда: Москва Дата регистрации: 11.11.2008 |
Цитата: Сразу не обратил внимания на это. "Ненаучность" применения второго Detail'а, возможно, решило вам какую-то неозвученную проблему, но вполне закономерно создало новую. Наверно, будет проще решить вашу первую проблему, оставаясь в рамках научности одного Detail'а. Так озвучьте её. |
Re: удваивание суммы при 2-х detail band | |
---|---|
glaz58 Автор Сообщений: 812 Откуда: Воронеж Дата регистрации: 09.02.2008 |
В примере нарочно в detail1 черта, а сумма удваивается.
|
Re: удваивание суммы при 2-х detail band | |
---|---|
glaz58 Автор Сообщений: 812 Откуда: Воронеж Дата регистрации: 09.02.2008 |
В прикреплении smetaobind2020 файлы репорта, а в smetarab рабочая таблица. К сожалению не могу прикрепить выход, так как размер не могу ужать до 50 Kb. В репорте с помощью 2-х detail band я решил проблему различного отображения в зависимости от значения поля Index=1 или нет(print when). В Group Footer надо суммировать поля только для Index!=1, так как когда Index=1, соответствующее поле пусто. Сейчас проблему решаю просто делением на 2.
|
Re: удваивание суммы при 2-х detail band | |
---|---|
Taran Сообщений: 13624 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Я выше писал про выражение..
В поле отчёта Expression указывай не просто поле, к примеру sum а выражение Iif(index=1, sum, 0) Пример твой посмотреть не могу. |
Re: удваивание суммы при 2-х detail band | |
---|---|
akvvohinc Сообщений: 4216 Откуда: Москва Дата регистрации: 11.11.2008 |
Так не пойдёт - из-за второго Detail'a у него все записи фактически задвоились. То есть, если у него две записи - одна с суммой 10 (при index=1) и вторая с суммой 20 (при index=2), то получить он хочет 30. Твоё выражение приведет к итогу 10+10 = 20 (так как из-за второго Detail'a у него как бы две записи с index=1 и две - с index=2). Именно поэтому ему приходится делить на 2.
А черта - это указание Фоксу "не удваивать сумму"? Я предлагал всё же разобраться с логикой работы таких отчетов, чтобы действовать осмысленно, а не методом тыка - вдруг получится?
Ничто не мешало нарисовать всё то же самое и с теми же условиями на одной полосе. А то, что некоторые поля наложатся друг на друга - ничего страшного - ведь вместе они никогда не выводятся. Но можно было и не накладывать, так как у объектов отчета есть такие свойства: Remove line if blank Object position Stretch with overflow Все вместе они должны позволить сделать желаемое в одном Detail'e даже без наложения. Например, ваша строка для Index=1 "исчезнет" для записей с Index=2, если все её объекты будут помечены как Remove line if blank, а объекты с Index=2 (те, что сейчас в Detail-2) займут её место (поднимутся выше). То же самое и с объектами с Index=2 - при Remove line if blank они не будут выводиться при Index=1, а место, которое они занимали в Design-time, будет "вырезано" из результата. Исправлено 4 раз(а). Последнее : akvvohinc, 26.10.21 03:51 |
© 2000-2024 Fox Club  |