Форум: "Базы";
Текущий архив: 2002.12.19;
Скачать: [xml.tar.bz2];
ВнизКак организовать автосумму в Table, типа Excel, но вертикально? Найти похожие ветки
← →
Step[B.M.] (2002-11-29 01:34) [0]... может есть компонент какой?
Это нужно для суммирования в таблице, например пункт
1. =
1.1. +
1.2. +
... +
1.n.
← →
KSergey (2002-11-29 05:56) [1]Не совсем понятно, ночему "но вертикально". Посмотрите EhLib - ихний грид этим славится (чем - догадывайтесь сами, равно как мы гадаем над вопросом)
← →
Victor_Cr (2002-11-29 08:51) [2]Ну можно сделать так
select sum(Field1) field1,...,sum(FieldN) fieldN from table
union
select * from Table
или так
select * from Table
union
select sum(Field1) field1,...,sum(FieldN) fieldN from table
Зависит от того где должна быть сумма сверху или снизу.
Ну и ессесно заменить Табле на Квери
← →
Step[B.M.] (2002-11-29 09:20) [3]EhLib обязательно посмотрю, а вот Квери не подходит, по причине постоянной перерисовки грида во время вычислений...
← →
krotik (2002-11-29 09:40) [4]Есть всего два пути:
1. Использовать нестандартные компоненты, типа Eh, Rx и прочую лабудень. Меньше хлопот, зато нельзя будет перекомпилить проект там где не установлены эти библиотеки.
2. Использовать непривязанные к датасетам компоненты, типа StringGrid или ListView (со стилем Report). Недостатки - самому постоянно перерисовывать. Я, например, пишу один раз функцию для полной перерисовки и вызываю ее каждый раз при изменении в базе. Иногда, когда изменения касаются всего одного числа, а я все-равно перерисовываю всю таблицу - не очень красиво выглядит. Достоинства - можно делать дизайн полностью на свое усмотрение, любые промежуточные и полные итоги, древовидная вложенность и т.д. Очень наглядным получается представление информации для пользователя, ибо практика показывает, что для чайника недоступно понимание того, что две таблицы могут быть связаны и во втором гриде информация по тому объекту, на котором стоит указатель в первом гриде. Тупые юзеры этого понять не могут, им лучше в виде дерева с заголовками/подзагаловками оформлять.
← →
makdi (2002-11-29 14:44) [5]А почему не сделать вычисляемое поле и там все складывать? Я так понял тебе нужно складывать значения полей?
Сделать типа:
Table1.FieldByName("sum").AsInteger:=Table1.FieldByName("1.1").Asinteger+...+Table1.FieldByName("1.n").AsInteger
или я ошибаюсь, тебе нужно не это?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.12.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c