Конференция "Базы" » Как отформатировать float в ADOQuery ?
 
  • P.Golf © (03.10.13 13:09) [0]
    Не получается сделать форматированный вывод float (ограничить количество знаков после запятой) в DBGrid - выводятся все цифры.

    Найденные советы типа " выставить для этого поля свойство DisplayFormat #.## " не удается реализовать, т.к. список полей ADOQuery пуст.
    Ниже часть кода:

    var
       qry1    : TADOQuery;
       con1    : TADOConnection;
       ds1      : TDataSource;
       dbgrd1 : TDBGrid;
    ...
      Amax         : single;
      TableName : string;

    begin
    .....
    Form1.qry1.SQL.Clear;
    Form1.qry1.SQL.Add('SELECT * FROM '+ TableName);
    Form1.qry1.Active:=True;
    ......
    Form1.qry1.FieldByName('AmpMax').AsFloat    := RoundTO(Amax,-3) ;
    ....
    end;
  • Германн © (03.10.13 13:21) [1]

    > т.к. список полей ADOQuery пуст.

    Так наполни его.
  • P.Golf © (03.10.13 13:32) [2]
    КАК ?
    Кнопки для добавления полей неактивны, т.е. добавить поле нельзя :(

    Версия:
    т.к. Select выбирает все поля, то до его выполнения название и количество полей неизвестно.
    Перечисление всех полей в Select поможет?
  • P.Golf © (03.10.13 13:38) [3]
    Можно ли определить формат вывода полей в ADOQuery в программе?
  • Германн © (03.10.13 13:55) [4]

    > P.Golf ©   (03.10.13 13:32) [2]
    > КАК ?
    > Кнопки для добавления полей неактивны, т.е. добавить поле
    > нельзя :(
    >

    В инспекторе объектов поставь у qry1 Active в True.
  • Token (03.10.13 14:09) [5]
    А что мешает?


     Form1.qry1.FieldByName('AmpMax').DisplayFormat:='#.##';
     Form1.qry1.FieldByName('AmpMax').AsFloat    := RoundTO(Amax,-3) ;

  • P.Golf © (03.10.13 16:59) [6]
    В том то и дело, что такого свойства компилятор (Delphi XE v.7.6.1) не знает :(
  • P.Golf © (03.10.13 17:06) [7]
    Германн ©  
    Для установки qry1.Active = True инспектор объектов требует заполнить свойство SQL. Если в него вставить строку Select .., то все равно поля для редактирования в Fields Editor не появляются
  • Германн © (03.10.13 17:32) [8]

    > P.Golf ©   (03.10.13 16:59) [6]
    > В том то и дело, что такого свойства компилятор (Delphi
    > XE v.7.6.1) не знает

    TFloatField(Form1.qry1.FieldByName('AmpMax')).DisplayFormat:='#.##';

  • P.Golf © (03.10.13 17:43) [9]
    Германн ©

    Спасибо, добрый человек. Заработало.
    Где бы я  это прочитал?
    Только почему то вместо 0,123 показывает ,123 ?
  • Cobalt © (03.10.13 20:55) [10]
    2 P.Golf ©   (03.10.13 17:43) [9]
    Кнопку F1 ты выломал?
  • P.Golf © (04.10.13 00:25) [11]
    Cobalt ©
    Обязательно выломаю, если подскажешь где искать
  • Inovet © (04.10.13 06:29) [12]
    > [11] P.Golf ©   (04.10.13 00:25)

    Её нажимать надо, а не выламывать. Подсказываю:
    DisplayFormat
    внезвпно.
  • Savek (04.10.13 17:00) [13]

    > Только почему то вместо 0,123 показывает ,123 ?

    ...DisplayFormat:='0.##';

 
Конференция "Базы" » Как отформатировать float в ADOQuery ?
Есть новые Нет новых   [134430   +2][b:0][p:0.001]