1 (edited by kunar80 2015-03-14 15:33:22)

Topic: Изменение цвета ячейки в зависимости от даты.

Доброго всем дня и хороших выходных! Для проекта по контролю исполнения поручений есть желание применить изменение цвета ячейки. Пока запись имеет статус "На контроле" ячейка "Дата выполнения" имеет цвет: с момента формирования записи один, за какое-то количество дней до даты выполнения - другой, третий и т.д., по достижении даты выполнения и далее - красный. После получения записью статуса "Выполнено" цвет отсутствует.
Как для реализации вышесказанного переписать этот код?

procedure frmMain_TableGrid1_OnChange (Sender: string);
var
   i,c: integer;
   sDate: string;
   YY, MM, DD: word;
begin
     c := frmMain.TableGrid1.RowCount - 1;
     for i := 0 to c do
     begin
         sDate := frmMain.TableGrid1.Cells[0,i];
         if ValidInt(sDate) then
         begin
             ///////////ЭТО НЕ РАБОТАЕТ
             //  DecodeDate(now, YY, MM, DD);
             //  if StrToInt(sDate) <= DD then frmMain.TableGrid1.Cell[0,i].Color := clRed;
         end;

     end;
end;
Не боги горшки лепят!

Re: Изменение цвета ячейки в зависимости от даты.

Пожалуйста, приложите проект, постараюсь помочь.

Dmitry.

Re: Изменение цвета ячейки в зависимости от даты.

Просьба - выложить потом кусок кода про цвет по условию (Да/Нет) - тоже интересно.

4 (edited by kunar80 2015-03-16 11:29:13)

Re: Изменение цвета ячейки в зависимости от даты.

zoomix wrote:

Просьба - выложить потом кусок кода про цвет по условию (Да/Нет) - тоже интересно.

Это здесь: http://myvisualdatabase.com/forum/viewtopic.php?id=1063
А у меня посложней желание: Есть таблица с полями "Рекомендации", "Срок выполнения" и "Статус". Статус ("На контроле") с момента создания записи закрашен, например, розовым цветом. За пять дней до срока выполнения цвет меняется на более тёмный, за день- ещё темнее. В день выполнения и дальше (пока не снят статус "На контроле") - красный. При большом количестве контролируемых записей по цвету будет сразу видно более приоритетные.

Не боги горшки лепят!

5 (edited by kunar80 2015-03-17 09:16:26)

Re: Изменение цвета ячейки в зависимости от даты.

DriveSoft wrote:

Пожалуйста, приложите проект, постараюсь помочь.

Проект прилагаю. Сделан в 1.48.
1) Никак не могу справиться со связью между таблицами main и task.
2) Что касается изменения цветов: это на форме frmAddInspection в TableGrid1 в поле statusTaskControl. Статус ("На контроле") с момента создания записи закрашен, например, розовым цветом. За пять дней до срока выполнения цвет меняется на более тёмный, за день- ещё темнее. В день выполнения и дальше (пока не снят статус "На контроле") - красный. При большом количестве контролируемых записей по цвету будет сразу видно более приоритетные.
3) Можно ли связать между собой состояние CheckBox1 на форме frmAddInspection и наличие записей, имеющих статус "На контроле" в TableGrid1 этой же формы? Т.е. если хотя бы одна запись в гриде имеет статус "На контроле", то CheckBox1 включен. Если такого статуса ни одна запись не имеет или записей вообще нет, то CheckBox1 выключен. Сам CheckBox1 будет спрятан и вручную его состояние изменить нельзя.
4) Как изменить стиль шрифта в поле? В справочнике показано изменение только во всём гриде. Хотелось бы для "На контроле" иметь стиль bold, так как на красном фоне текст плохо читаем.

Post's attachments

Attachment icon Controller_1.48.rar 12.3 kb, 491 downloads since 2015-03-17 

Не боги горшки лепят!

Re: Изменение цвета ячейки в зависимости от даты.

1) В таблице main, связь id_task была лишняя, удалил.
2) Сделал.
3) Вместо этого сделал вычисляемое поле в таблице main.statusControl2, поэтому поля statusYes и statusControl можете удалить, также CheckBox1 на форме frmAddInspection
4) К сожалению это не поддерживается, но вы можете например изменять цвет надписи.



также исправил пару ошибок,

1.  на форме frmAddInspection,  в настройках компонента TableGrid1, необходимо снять галочку "Включить автовыполнение запроса", иначе будут показаны все задачи всех проектов.

2. процесс вашего проекта оставался висеть в памяти после закрытия, так как главная форма frmLogin не закрывалась, при закрытии формы frmMain



Исправленный проект приложил к письму.

Post's attachments

Attachment icon Controller_1.48_fixed.zip 16.42 kb, 535 downloads since 2015-03-17 

Dmitry.

7 (edited by kunar80 2015-03-17 11:37:21)

Re: Изменение цвета ячейки в зависимости от даты.

Спасибо, Дмитрий. Посмотрю. Готовый проект пришлю Вам. Его можно выложить в теме "Готовые проекты". Пожалуй, сфера его применения (при некоторой доработке "под себя") очень большая: от контроля исполнительской дисциплины до контроля сроков выполнения работ.

Не боги горшки лепят!

8 (edited by kunar80 2015-03-17 16:00:50)

Re: Изменение цвета ячейки в зависимости от даты.

DriveSoft wrote:

3) Вместо этого сделал вычисляемое поле в таблице main.statusControl2, поэтому поля statusYes и statusControl можете удалить, также CheckBox1 на форме frmAddInspection

По выложенному выше проекту возник следующий вопрос: ведь обычная кнопка поиска на форме frmMain поле statusControl2 в гриде не найдёт.  Организовать поиск через SQL запрос?

Не боги горшки лепят!

Re: Изменение цвета ячейки в зависимости от даты.

Можно создать еще одно вычисляемое поле, которые будет использоваться CheckBox-ом на форме поиска

(CASE WHEN (SELECT Count(*) FROM task WHERE task.id_main=main.id AND task.statusTaskYes=1) > 0 then 1 else 0 end)

Т.о. можно избежать необходимость использовать SQL для поиска.

Dmitry.

10 (edited by kunar80 2015-03-17 16:13:48)

Re: Изменение цвета ячейки в зависимости от даты.

Работает. Спасибо. Проект перезалью.

Не боги горшки лепят!

Re: Изменение цвета ячейки в зависимости от даты.

Готовый проект.
Учёт контрольных проверок и устранения выявленных недостатков. При доработке "под себя" - учёт выполнения работ и пр.

Post's attachments

Attachment icon Controller_DEMO.rar 303.63 kb, 541 downloads since 2015-03-17 

Не боги горшки лепят!

Re: Изменение цвета ячейки в зависимости от даты.

kunar80 wrote:

Готовый проект.
Учёт контрольных проверок и устранения выявленных недостатков. При доработке "под себя" - учёт выполнения работ и пр.


podskajite a kak zdelat shtob adno  otkrilos polnistyu?


zaraniye spasiba

Re: Изменение цвета ячейки в зависимости от даты.

gozalovsamir wrote:

podskajite a kak zdelat shtob adno  otkrilos polnistyu?

Form1.WindowState := wsMaximized; // развернет окно на весь экран
Не боги горшки лепят!

Re: Изменение цвета ячейки в зависимости от даты.

kunar80

Ya neznayu kak vas zavut ocen vam blaqodaren za pomish.
Ya tut smatru ni ne mapmu. vi kak i vse polzuyetes etoy programmoy no 90%  vso mojite uje samostayatelno sami delac. 


ya vas xocelbi poprasit mne  pomoc o paru vaprosiv.  u Dmitri navernoye netu vremeni mne otvecic. Ya rabotnik  mejdunarovnova ayraparta. yesli kuplu setevuyu versiyu ya toka ne paymu kakaya raznitsa budet tak kak ya naprimer papku sozdayu  dostup nekotarim rabotnikam. i ani vse rabotayut no saxranayetsa vsa baza v adnom meste.   a kakaya raznitsa budet v etom setevom proyekte.?

i  ya vas ocen prashu mne nujna naprimer ya etom mesetse dat na poisk u kavo den razdeniye. kak eta zdelac? na kajdim meset ya moq dac search . ili na qod. naprimer v 2014 qadu bili 200 qostey a 2015 bili 500 qostey.  zaraniye spasiba.

Re: Изменение цвета ячейки в зависимости от даты.

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



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


Рекомендую вам посмотреть пару видео уроков
http://myvisualdatabase.com/video_lessons.html

Dmitry.