Конференция "Базы" » Сумма чисел в колонке [D6, Paradox]
 
  • baklazan (30.07.08 18:06) [0]
    Подскажите, пожалуйста, как реализовать код по подсчету чисел в колонке после ввода нового значения (результат в вычисляемом поле) при этом маркер оставался на текущей строке. Ввод значения производится DBGrid.
  • Сергей М. © (30.07.08 20:29) [1]
    Что значит "как" ?

    ты расчитывал увидеть три строчки кода ? Или что ?
  • Правильный$Вася (30.07.08 20:35) [2]

    > по подсчету чисел в колонке
    > результат в вычисляемом поле

    вычисляемое поле формируется на основании данных ОДНОЙ строки
    а сумма по полю - это SELECT Sum(pole) FROM ...
  • baklazan (30.07.08 21:12) [3]
    Нет, Правильный$Вася, Вы наверное не поняли.
    После ввода любого числового значения я должен пересчитать сумму по всей колонке. Действовать while not eof или Locate не могу уходит маркер со строки ввода. Если запоминаю место, то визуально смещается таблица в DBGrig-е. Я ищу вариант чтобы маркер остался на прежней позиции, а сумму пересчитать.
  • Правильный$Вася (30.07.08 21:26) [4]

    > Действовать while not eof или Locate не могу уходит маркер
    > со строки ввода

    disablecontrols
  • Виталий Панасенко © (01.08.08 14:55) [5]
    Bookmark+
    > Правильный$Вася   (30.07.08 21:26) [4]
  • Виталий Панасенко © (01.08.08 14:57) [6]
    Хотя удобнее
    > Правильный$Вася   (30.07.08 20:35) [2]


    отдельный кверик считать будет.
  • Sergey13 © (01.08.08 15:13) [7]
    В принципе можно и в лоб решать. После открытия пробежаться по датасету и посчитать сумму. Перед редактированием запоминать старое значение, после поста пересчитать сумму с новым значением.
    Еще можно взять EhLib (до версии 3.6 бесплатен) - там реализованы агрегаты.
  • Сергей М. © (01.08.08 17:21) [8]

    > ввода любого числового значения я должен пересчитать сумму
    > по всей колонке


    Это еще зачем ?

    Пусть значение до редактирования равно N, а сумма при этом равна K.
    После редактирования значение стало равно M, тогда сумма после редактирования будет равна K + M - N.

    За каким лешим всякий раз после редактирования одной записи нужно бегать по всем записям - непонятно)

    Пробежать нужно всего один раз при открытии набора данных, чтобы получить K.
  • девушка (07.08.08 12:10) [9]
    DataSet.DisableControls;

    id:=DataSet.FieldByName('my_id').AsInteger;

    DataSet.First;

    ....

    DataSet.Locate('my_id',id,[]);
    DataSet.EnableControls;
 
Конференция "Базы" » Сумма чисел в колонке [D6, Paradox]
Есть новые Нет новых   [134435   +34][b:0][p:0]