1 (edited by Igor 2016-05-19 20:09:28)

Topic: Пара вопросов

Дмитрий, здравствуйте!

Появилась пара вопросиков:

1. Почему не работает скрипт вычисления процентного соотношения

procedure Form1_TableGrid1_OnChange (Sender: string);
var
tabl: integer;

begin
    tabl := Form1.TableGrid1.ClientWidth;

    Form1.TableGrid1.Columns[0].Width := tabl/100*20;
   // Form1.TableGrid1.Columns[1].Width := tabl/100*50;
    //Form1.TableGrid1.Columns[2].Width := tabl/100*30;
end;

Хотя если вместо знака(/) поставить *,+ или - работает все но только не со знаком /


2.Как в Grid отобразить результат запроса ДА или НЕТ , при наличии либо отсутствии фото. Поиск осуществляется по кнопке через SQL запрос.
Например:

SELECT
CONCAT( COALESCE(UserOP.Famyli, ''), ' ', COALESCE(UserOP.Name, ''), ' ', COALESCE(UserOP.Otchestvo, '') ),
DolghnostOP.NameDolghnostOP,
DATE_FORMAT(UserOP.DataRoghd,'%d.%m.%Y'),
UserOP.Photo,
UserOP.id

FROM UserOP
LEFT OUTER JOIN DolghnostOP ON DolghnostOP.id =UserOP.id_DolghnostOP

При таком запросе вместо фото (UserOP.Photo) выводит путь фотографии (Хотя фотка хранится в базе MySQL),  а хотелось бы либо ДА либо НЕТ.

Re: Пара вопросов

Приветствую,


1. Попробуйте так

Form1.TableGrid1.Columns[0].Width := Trunc(tabl/100*20);

2.

SELECT
CONCAT( COALESCE(UserOP.Famyli, ''), ' ', COALESCE(UserOP.Name, ''), ' ', COALESCE(UserOP.Otchestvo, '') ),
DolghnostOP.NameDolghnostOP,
DATE_FORMAT(UserOP.DataRoghd,'%d.%m.%Y'),
(CASE WHEN UserOP.Photo_filename is NULL THEN 'Нет' ELSE 'Да' END),
UserOP.id

FROM UserOP
LEFT OUTER JOIN DolghnostOP ON DolghnostOP.id =UserOP.id_DolghnostOP
Dmitry.

Re: Пара вопросов

Дмитрий , здравствуйте!
Спасибо за ответы на предыдущие вопросы, все прекрасно работает. Но попутно появился еще один вопрос smile)
Возможно ли реализовать в Grid так называемый плавный скроллинг, т.е. что бы скролл в таблице происходил скажем не только на высоту строки  но и возможно меньше ?

Re: Пара вопросов

Igor wrote:

Дмитрий , здравствуйте!
Спасибо за ответы на предыдущие вопросы, все прекрасно работает. Но попутно появился еще один вопрос smile)
Возможно ли реализовать в Grid так называемый плавный скроллинг, т.е. что бы скролл в таблице происходил скажем не только на высоту строки  но и возможно меньше ?

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

Dmitry.

Re: Пара вопросов

DriveSoft wrote:

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

Вопрос появился при выводе в Grid информации с слишком большим объемом текста в одной строке. Есть фиксированный размер окна (Form1) на нем опять таки фиксированный Grid, так вот когда размер текстового содержимого строки Grid превышает размер самого Grid, текст целиком не выводится а при скроллинге перепрыгивает на следующую строку таким образом что предыдущей уже не видно smile. Конечно текст прочитать можно - просто наведя курсор мыши (появляется что-то наподобие " всплывающей подсказки" ) и все удобно читается, либо просто сделав изменяемый размер окна со всем его содержимым (на весь экран), как сделал я.
Дмитрий,проблема не критична, нет так нет smile