Дмитрий, спасибо за вариант с CAST, сумма отображается верно!

Однако, хотелось бы иметь такой результат:

http://f3.s.qip.ru/SwgAVRzL.png

Про нулевые значения:  первоначальные настройки вычисляемых полей были такими:

(
select cast( amount as REAL) from docDetail as dd
left join doc on doc.id = docDetail.id_doc
left join docType on docType.id = doc.id_docType
where docType.isIncrement and (dd.id = docDetail.id)
)  

а результат очень странный:

http://f5.s.qip.ru/SwgAVRzJ.png

Если первая запись содержала null, то данные начинали отображаться, как текст ( 100.45 ), а сумма не считалась.

Хотя так правильней, пришлось заменять пустые строки нулями, хотя это  перегружает экран.  Вопрос был в том, можно ли как-нибудь избавиться от нулей, но чтобы отображение и суммирование работало корректно?

Изначально я хотел использовать вычисляемые поля без отображения нулей

(            
select amount from docDetail as dd
left join doc on doc.id = docDetail.id_doc
left join docType on docType.id = doc.id_docType
where docType.isIncrement and (dd.id = docDetail.id)
)

но тогда не работает автоматическое вычисление итогов:
http://f1.s.qip.ru/SwgAVRzC.png

а числа с плавающей запятой отображаются, как строки, если первая ячейка в колонке пустая.

Вопросы:
1. Можно ли как-то явно определить желаемый формат отображения данных в колонке?
2. Можно ли подавить отображение нулевых значений в выбранной колонке?

Меняем сортировку в детальной части и меняется формат отображения:
http://f4.s.qip.ru/SwgAVRzB.png

Обратил внимание, что формат отображения данных в таблице зависит от того, какую информацию содержит 1-я строка выборки. Пример с отображением количества

Тип данных - вещественное число
Вычисляемое поле Приход:

(ifnull((            
select amount from docDetail as dd
left join doc on doc.id = docDetail.id_doc
left join docType on docType.id = doc.id_docType
where docType.isIncrement and (dd.id = docDetail.id)
),0 ))  

Вычисляемое поле Расход:

(ifnull((      
select amount from docDetail as dd
left join doc on doc.id = docDetail.id_doc
left join docType on docType.id = doc.id_docType
where not docType.isIncrement and (dd.id = docDetail.id)
),0))     

Если первое число ноль, то вся колонка отображается, как целые числа
http://f6.s.qip.ru/SwgAVRzA.png

Метод  Add() класса TList, по идее, должен возвращать индекс добавленного элемента, но сейчас он всегда возвращает ноль:

http://f3.s.qip.ru/SwgAVRyi.png

http://f2.s.qip.ru/SwgAVRyh.png

Обновил программу, однако новая функция не поддерживается:  http://f5.s.qip.ru/SwgAVRyg.png

Добрый день. Нигде не нашел описания, что именно находится в этом параметре. В обычном Delphi там передаётся объект, у которого возникло это событие; в скриптах MyVisualDatabase, видимо, тоже, но в виде строки, содержащей число.

Можно ли использовать это значение, например, для создания одного обработчика для нескольких элементов интерфейса?

Первоначальная задумка была такая: для отображения в меню форм справочников у меня используется куча однотипных процедур, которые я хотел заменить одной. По задумке я хотел сохранить в Tag ссылку на форму, что обычно легко удаётся в Delphi.

procedure MenuItemClick (Sender: string);
var
  form:TForm;
begin
  form := TForm( TMenuItem(sender).tag );
  form.ShowModal;
end;

Но ничего не вышло, так как компилятор не захотел выполнять приведение типов:

var
   miItems: TMenuItem;

begin
  miItems := TMenuItem.Create (frmMain.MainMenu);
  miItems.Tag := Integer(frmItem);

Остались вопросы:

1. Как правильно использовать параметр sender для получения доступа к элементам интерфейса?

2. Как запихать в Tag ссылку на объект? 
(Пока вижу только одно решение: создаётся глобальный ObjectList:TList, в него добавляются объекты, а доступ к ним - по индексу, который хранится в Tag)

Отлично, всё работает, как надо! Теперь красоту в интерфейсах наводить будет проще smile  Спасибо!

DriveSoft wrote:

...Например вы установили ограничение UNIQUE для какого либо поля в БД...

Не нашёл такой возможности в конструкторе (v. 3.6).  Как добавить уникальность к полю БД?  Возможность проверки перед сохранением с помощью скриптов видел в ветке  http://myvisualdatabase.com/forum/viewtopic.php?id=1062

TButton.Action [ПОИСК] . Осуществлять поиск по вхождению, либо сделать это опцией

Компонент TLabel

Убрал чекер со свойства Transparent, меняю свойство Color в редакторе свойств. Результата нет.
http://f1.s.qip.ru/SwgAVRvh.png

Color всегда равно Parent.Color ?