03.02.2005, 15:53 | #1 |
Участник
|
В MatrixBox можно легко показывать суммы по строкам (ну выводить их в левую часть MatrixBoxa)
А может кто знает решение, как показать суммы по столбцам? 2 дня мучаюсь, пока не могу придумать как :-((( |
|
08.02.2005, 17:12 | #2 |
Участник
|
Решал такую проблему.
Нашел решение несколькими способами 1. Самый простой - писать эту сумму в заголовке. Плюс - простота исполнения, минус - страдает интерфейс 2. Более сложный - Сделать основную таблицу темповой и добавить в нее строку ИТОГО (ключ подобрать так, чтобы строчка была последней). Ну и для этой строчки Вычислять уже сумму. 3. Есть еще мысли с использованием субформы, но там надо по хитрому обновляться, позиционироваться и т.д. Короче гемморой. Я не пробовал даже. Вообще можно сделать так. Сделать одно поле еще на форме и писать туда сумму по тому столбцу,на котором сейчас стоим. Дешево и сердито.
__________________
С уваженем, rootadmin |
|
08.02.2005, 17:47 | #3 |
Участник
|
Отлично, большое спасибо!
3) Я вот тоже попробовал с сабформой, оно даже немного работало, но как-то все громоздко и неудобно... И я делал через другую временную таблмцу, в которую заносил суммы... 1) С заголовками некрасиво, точно, страдает интерфейс 2) А вот с темповой таблицей и с полем (4), в котором подсвечивается текущая сумма - вполне рабочие решения!!! Еще раз спасибо, сделаю с темповой таблицей |
|
09.02.2005, 14:16 | #4 |
Moderator
|
Я вот поигрался с Матриксом.
Можно сделать вот такую картинку (см. ниже) Но, при этом масса ограничений возникает и первое - кол-во строк должно быть заранее известно и ИТОГО будет в самом конце. На данной картинке отображаются складские остатки товаров по месяцам и их сумма в ИТОГО. |
|
09.02.2005, 16:04 | #5 |
Участник
|
Оказалось очень несложно сделать МАТРИКС с временной переменной-
например по вертикали список поставщиков ///1 Заполняется TempVendorRec из таблицы вендоров // 2 Добавляется запись ИТОГО /// 3 Запускается форма - IF ( FORM.RUNMODAL( 71207, TempVendorRec) = ACTION:K) THEN в самой форме выводятся отдельные значения ячеек , для суммы для простоты можно тоже рассчитывать значение в конкретной ячейке, ставя соответствующие фильтры на таблицу (ну добавив ключ SumIndexField например, чтобы какое-то быстродействие было ) У меня вроде нормально заработало таким методом, описанным rutadmeen Вопрос к Dzemon а каким методом сделана последняя строка ИТОГО? Примечание я конечно не знаю, как в этом случае, но вот у меня в реализации количество строк может быть известно - ( в моем случае обновление МАТРИКСА происходит по заданию фильтра и нажатию кнопочки) задается какой-то фильтр, например VendRecord.SETFILTER(....) и после его задания обновляю глобальную переменную VerticalCount := VendRecord.COUNT; после этого использую VerticalCount |
|
09.02.2005, 16:36 | #6 |
Moderator
|
Я сделал таблицу основной формы Целое, т.е. Rec = Целое, для левой колонки матрикса я сделал текстовую переменную и пишу тут что хочу, ну естественно при Целое.Число = 14 я вставляю "ИТОГО". В вашем случае при Rec.COUNT + 2
Но для подсчета итогов нельзя использовать накапливающую переменную в триггерах AfterGetRecord, т.к. при перемещении курсора она будет пересчитываться произвольным образом. |
|