Использую рекомендованный в FAQ скрипт раскрашивания Grid в полоски.
Работает нормально, если вывожу и сортирую данные запросом.
Но, если в таблице кликнуть на заголовок столбца, то строки пересортировываются и полосатость сбивается - цвет фона меняется не на каждой строке, а в произвольном порядке. Могут быть окрашены три строки подряд,  потом одна не покрашена и т.д.
Повесил раскрашивание на клик по сортировке столбца - результат тот же.
Как доработать скрипт, чтобы он раскрашивал строки по очереди с учетом изменения пользователем сортировки столбца?

Обнаружил интересный глюк:
Выводимые в TableGrid числовые данные форматирую под деньги:  TNxNumberColumn(Frm1.TableGrid1.Columns[1]).FormatMask := '#,##0.00'
Число выводится как положено, например, 123 456,00
Однако, если результат запроса в первой строке содержит вместо числа значение NULL (т.е. в БД не было записано число), то нужное форматирование не включается, и все последующие строки с числами выводятся как 123456,0 (без пробелов и с одним нулем).

Есть TableGrid, у которого анкор привязан к правому краю формы.
Когда тянем форму за край (изменяем ее ширину) TableGrid тоже изменяет ширину.
Однако, столбцы в TableGrid автоматически не тянутся за правым краем TableGrid.
Их ширина остается неизменной.
Есть ли какой-либо способ повесить анкор на крайний столбец, чтобы он был привязан к правому краю TableGid?
Т.е. при изменении ширины TableGrid должна изменяться ширина какого-либо столбца.

В моем запросе исходно id был указан в Select, однако не в конце, а в начале.
Документацию я читал, но не обратил внимание, что в приведенном примере id расположен в конце Select.
А в тексте документации не указано, что id должен быть обязательно в конце.
Написано только, что id должен быть.
Наверно, надо бы поправить текст справки

Есть TableGrid, в который вывожу данные  SQL запросом.
Есть кнопки Добавить, Редактировать, Удалить запись.
Когда кликаю на кнопку Редактировать или Удалить, выводится сообщение об ошибке "Не выбрана запись для редактирования (удаления)".
Каким образом привязать эти кнопки к TableGrid в случае c SQLзапросом?
Насколько я понимаю, если данные выводятся через SQL-запрос, то связь с БД теряется и двойной клик по TableGrid не возвращает id записи, что и приводит к ошибке.
Я конечно могу получать id записи с помощью SelectedRow, а затем выводить запись через ShowRecord.
Но тогда придется еще добавлять обработку правильного удаления записи. Чего делать не хочется.
Может есть более простые варианты как подцепить стандартные зашитые в программу процедуры редактирования/удаления записи?

Ответ найден.
Надо изменять формат вывода в тексте самого запроса:
SELECT 
EVENTOS.NOMBRE as nombre_evento,         
strftime('%d.%m.%Y',EVENTOS.FECHAINICIO) AS inicia_evento

Очень хотелось бы, чтобы в программе появился хотя бы простейший wysiwyg редактор для полей Memo

Вывожу своим запросом данные в TableGrid.
Числовые данные форматирую, например, так:
TNxNumberColumn(Frm_Goods_List.TableGrid.Columns[8]).FormatMask := '#,##0.00';
А как отформатировать дату, которая в базе выглядит как 2018-04-18 00:00:00.000 ?
Она моим запросом также и выводится в TableGrid.
А надо, чтобы в TableGrid она отображалась как 18.04.2018

Есть три таблицы: Товар, Бренд, Товарная группа.
Для каждого товара пользователь может указать его Бренд и Группу (однако, это не обязательно).
Список товара вывожу на форму в TableGrid запросом.

Однако, надо дополнить форму фильтром, чтобы ограничить выводимый список товаров.
Для этого создал Поле ввода наименования товара и два выпадающих списка Бренд и Группа.
Создал запрос (он указан ниже для удобства чтения) и прицепил его к кнопке 'SQL запрос'

Однако, такой запрос возвращает список товаров, только если у них указан и Бренд и Группа.
Если же Бренд или Группу (или - и то и другое) пользователь не указал, то запрос возвращает пусто.

Просьба подсказать как исправить запрос в секции WHERE, чтобы пустые комбобоксы Бренда и Товара не ограничивали вывод всего списка товаров.
Т.е. комбобоксы должны участвовать в запросе, только если они имеют значение >0.
(Или это надо организовать не запросом, а скриптом? То как ? Может быть скриптом менять на лету текст запроса у кнопки SQLЗапрос? )
   
        SELECT DISTINCT
        "Tbl_Goods"."id" as "ID товара",
        "Tbl_Goods"."Vendor_Code" as "Артикул",
        "Tbl_Goods"."Goods_Name" as "Товар",
        "Tbl_Brands"."Vendor_Name" as "Бренд",
        "Tbl_Goods"."Current_Rozn_Price_ye" as "Цена у.е.",
        "Tbl_Currencies"."Currency_Name" as "Валюта",
        "Tbl_Goods"."Current_Rozn_Price_Currency_Rate" as "Курс",
        "Tbl_Goods"."Current_Rozn_Price_Rub" as "Цена руб.",
        "Tbl_Goods".id,
        "Tbl_Goods"."id_Tbl_Currencies" as "Tbl_Goods.id_Tbl_Currencies",
        "Tbl_Goods"."id_Tbl_Brands" as "Tbl_Goods.id_Tbl_Brands"
   
        FROM "Tbl_Goods"
        LEFT OUTER JOIN "Tbl_Currencies" ON "Tbl_Goods"."id_Tbl_Currencies"="Tbl_Currencies".id
        LEFT OUTER JOIN "Tbl_Brands" ON "Tbl_Goods"."id_Tbl_Brands"="Tbl_Brands".id
                     
        WHERE ("Tbl_Goods"."Goods_Name" LIKE '%{Edit_Search_Value}%')
        AND (  "Tbl_Goods"."id_Tbl_Brands" = '{ComboBox_Seacrh_Product_Brand}')
        AND (  "Tbl_Goods"."id_Tbl_Goods_Group" = '{ComboBox_Search_Product_Group}') 
       
        ORDER BY "Tbl_Goods"."Vendor_Code" ASC

Есть настроенный TableGrid, который выводит данные почти в нужном виде.
Можно ли каким-либо способом увидеть текст запроса, который формирует данные для TableGrid?
Это нужно чтобы изменить вывод и сделать его через свой SQL запрос на базе сформированного системой.

Есть необходимость в программе получать точное время.
Но, не системное время компьютера, а из внешнего источника.
Например с какого-нибудь сервера времени типа https://www.ntp-servers.net/ или timeserver.ru
Как это сделать?

При изменении размеров или перемещении компонентов на форме они автоматически размещаются по невидимой координатной сетке.
Подскажите, пожалуйста, есть ли возможность изменить шаг сетки автоматического расположения компонентов на форме?
У меня на Windows 10 шаг сейчас 8 пикселей.
Понятно, что можно задавать размеры и координаты вручную, но если бы можно было сетку поменять, то было бы удобнее

Может быть не в той ветке:
Планируется ли создать возможность подключения к полю Memo какого-либо пусть даже самого простого WYSIWYG редактора?
Из возможностей визуального редактора нужно хотя бы форматирование текста(Фонт, размер, цвет, позиционирование) и таблицы.
У меня есть задача создания технических описаний приборов.
Описание разбито на несколько блоков (записей), которые нужно редактировать визуально (примерно как в ворде) и выводить на печать в различном порядке в зависимости от некоторых условий.
MVD прекрасно подходит для реализации такого приложения, но редактирование как в ворде не поддерживается.
Если визуальный редактор планируется, то сможет ли FastReport получать от MVD форматирование текста и таблиц?

Ок.
Работает.
Спасибо!

Передача компонентов в отчет, даже если они не связаны с БД, работает.
Спасибо!
Правда эти компоненты надо указывать в той же секции, что и ранее - "участвующие в поиске".
Немного сбивает с толку, но работает же.

pt.82 - читайте внимательно: форма бала открыта для редактирования записи, а не для создания новой. Если нажали Сохранить без закрытия, то режим редактирования не должен сам переключаться на создание новой записи!

Эти вопросы пересекаются с предыдущим постом.
При передаче в переменные FastReport компоненты формы указываются в секции "Выберите компоненты, участвующие в поиске".
Если их там не указать, то эти компоненты будут недоступны в мастере отчетов.
Однако, такой подход ведет к проблеме:
Если открыть форму с данными и в каком-либо поле изменить значение (напр. добавить пробел), то при нажатии кнопки "Отчет" на выводимой странице будет пустота.
Причина - значение этого компонента участвует в поиске, а его мы изменили (добавили пробел).
Таким образом, не может быть найдено совпадения данных на форме с данными в БД.
Поэтому, и отчет пустой.
Вопросов два:
1. Можно ли передавать в переменные FastReport значения компонентов, если они не связаны с БД?
Например, надо отображать или скрывать изображение в отчете, в зависимости от флага на форме, состояние которого нет смысла хранить в БД.
2. Можно ли сделать так, чтобы передаваемые в отчет компоненты не участвовали в поиске?
Надо чтобы их значения можно было использовать только в скрипте отчета или просто отобразить в отчете.

Есть форма с TableGrid со списком проектов и форма редактирования проекта.
На форме редактирования проекта есть кнопка Save.
Снимаем на ней флаг "Закрыть текущую форму после сохранения".
Открываем какую либо запись из TableGrid для редактирования проекта.
Жмем несколько раз на кнопку сохранения проекта. Форма, естественно, не закрывается.
Но, в БД появляются дубли записи данного проекта в количестве равным кол-ву нажатий - 1!!!
Очевидно, кнопка "Сохранить" помнит id нужной записи только при первом нажатии.
На всех последующие нажатия она вставляет новую запись!!!
Это не особенность именно моего кода - это общая проблема.
Проверил на тестовых примерах.
Как побороть это?

На форме документа есть компоненты, которые в качестве переменных передаю в FastReport.
Эти компоненты привязаны к полям БД.
Есть кнопка печать для вывода Отчета.
Если я исправил какие-то значения полей на форме и сразу нажму на кнопку Печать, то внесенные изменения полей не будут видны в FastReporte.
Более того, отчет будет пуст.
Чтобы отобразить измененные значения этих компонентов в FastReport  надо сначала сохранить форму в БД, а только потом выводить ее в FastReport.
Чтобы победить это, я добавил перед выводом отчета нажатие скриптом кнопки Сохранить форму.
Все внесенные изменения теперь сразу отображаются в отчете, не требуя отдельного нажатия кнопки сохранения формы.
Однако, после закрытия окна отчета у меня сразу закрывается и форма документа, т.к. кнопка сохранения формы имеет свойство закрытия по умолчанию.
Как передать изменения значений компонентов в FastReport без нажатия на кнопку сохранения и закрытия формы?
То есть, можно ли выполнить функционал кнопки по сохранению значений формы, но без закрытия формы?

Да, спасибо! Вопрос снят.

Замечено два глюка программы FastReport:
1. Если на странице есть изображение со свойством Transparent (прозрачное), то при печати страницы из превью на установленный в ПК pdf принтер (программа DoPdf) это изображение в полученном документе не отображается, хотя если просто распечатать на обычном принтере, то изображение отображается нормально.

2. При экспорте страницы в pdf из превью итоговый документ выглядит по другому. Теряется выравнивание текста, высота некоторых строк в таблице получается другая в сравнении с оригиналом документа в режиме превью.
Скрин приложен

С левой стороны среды разработки есть два блока "Структура компонентов" и "Свойства компонентов".
Если поднять блок "Свойства компонентов" до самого верха, то блок  "Структура компонентов" пропадает.
Если опустить блок "Свойства компонентов" обратно, то надпись  "Структура компонентов" появляется, а содержимое этого блока отсутствует.
Т.е. нет ни форм, ни дерева компонентов. Только серое поле.
Обратно структура появляется только при новом запуске среды разработки.
Версия 4.05

Есть TableGrid где отображается список проектов.
На этой же форме есть поля для поиска проектов по дате, номеру и т.д.
Добавил кнопку Поиск и сделал ее нажатие через Increm.Seacrh
Также добавил кнопку Очистить, которая очищает(сбрасывает) введенные значения для поиска, если надо опять отобразить все проекты.
Поиск нормально работает и сброс значений тоже работает, но есть проблема.
Если поиск отображает несколько найденных проектов, то после открытия и закрытия формы любого одного из проектов, таблица проектов отображает только один проект, который я открывал. А остальные не отображаются. И сброс значений тоже не срабатывает.
Что делать?

Я пишу программу для использования в организации в сетевом режиме.
Необходимо, чтобы при первом запуске программы у любого юзера ширина столбцов была явно задана.
Иначе по умолчанию система выбирает ширину столбцов как захочет и все выглядит непрезентабельно.
Это уж потом юзеры могут менять ширину как захотят.
Поэтому, была бы очень удобна фишка задания стандартной ширины столбцов, не отнимая при этом возможность юзера адаптировать это под себя.

А сейчас приходится  скриптом явно задавать ширину столбцов, лишая, тем самым, возможность юзера сохранить измененную им самим ширину.

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