как в DBGrid изменить значение всех ячеек

Тема в разделе "Delphi - Компоненты", создана пользователем Oleg, 14 май 2005.

Статус темы:
Закрыта.
  1. Oleg

    Oleg Гость

    Имеется DBF-таблица в которой один столбец это время в секундах, с начала отчетного периода
    требуется перевести секунды в формат чч:мм:сс. Процедура для перевода есть.
    А вот как присвоить эту процедуру всему столбцу незнаю.
    Если кто знает, помогите. За ранее благодарен
     
  2. _dimka_

    _dimka_ Гость

    DBF это InterBase что ли?

    Я только по SQL, но там можно прямо в теле процедуре указывать
    запрос в котором ссылка будет только на один столбец.

    Вообще по-конкретней опиши пример.
    Саму процедуру, как ты делаешь?

    Думаю не только мне понадобятся подробности чтобы тебе помочь! :huh:
     
  3. Cardinal

    Cardinal Гость

    Привет
    1. Можно пробежаться по всем записям и изменить значения вот маленький хэлп:
    2. Можно создать calculated-поле и по событии OnCalcFields присваивать нужные значения
    3. Можно изменить значения SQL-запросом

    Извини, нет времени писать подробнее
     
  4. _dimka_

    _dimka_ Гость

    Вижу что побробно не написал :lol:
    Слава богу понятно что в Delphi

    Но вот в чём пишем так и не разобрались? SQL?

    Если на sql сделай внутреннюю процедуру на самом сервере. Там работы на час... максимум.

    А ты программно полез, слабоват B)
     
  5. ByM

    ByM Гость

    Задача ясна перед тем ка ответьть задам вопрос?
    Если тебе надо данные перевода времени согранить в твоем DBF? Тогда нужно к DBF добавлять столбец и делать так
    Код (Text):
    with DBGrid.DataSource.DataSet do begin
    try
    DisableControls;
    First;
    While Not Eof do begin
    FieldByName('Здесь имя товоего нового поля с новым форматом даты').AsDataTime:=FuncReturnNewFormat;
    Next;
    end;
    finally
    EnableControls;
    end;
    end;
    А если тебе надо только отобразить данные в DBGrid - e но нигде не сохранять, тогда используй вычисляемое поле добавленое к твоему DataSet в событиях находиш OnCalcFields
    Код (Text):
     
    procedure TForm1.MyDataSetCalcFields(DataSet: TDataSet);
    begin
    MyDataSet.value:=FuncReturnNewFormat(MyDataSet.FieldByName('OldFormatDate').AsDateTime);
    end;
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей