Topic: Подсветка дат в DB

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

База для хранения паролей но там еще есть сертификаты и ключи которые нужно менять раз в год.

Вот я и интересуюсь подсветкой дат для того чтоб не проморгать этот момент.

Re: Подсветка дат в DB

Подсветку делают в обработчике события onChange у таблицы, поищите решение на форуме, например тут: http://myvisualdatabase.com/forum/viewtopic.php?id=7255

Визуальное программирование: блог и телеграм-канал.

Re: Подсветка дат в DB

Привет Error, K245,
Если вы хотите ввести количество дней как переменную, а не жестко запрограммировать, вы можете попробовать это следующим образом.
Derek.
.
If you want to enter the number of days as a variable rather than hard coded, you could try it like this.

Post's attachments

Attachment icon highlight variable expiry dates.zip 340.02 kb, 190 downloads since 2021-08-25 

Re: Подсветка дат в DB

Привет derek, K245.
Спасибо вам за помощь но первый вариант мне больше подходи, так как у меня жесткая привязка.

Re: Подсветка дат в DB

procedure Form1_Edit1_OnChange (Sender: TObject);
var  vrowcount: integer;
begin
  for vrowcount := 0 to form1.tablegrid1.RowCount - 1 do
    begin
      form1.tablegrid1.cell[1,vrowcount].color := clwhite;
      if strtodate(form1.tablegrid1.cells[1,vrowcount]) >= now + form1.edit1.value then form1.tablegrid1.cell[1,vrowcount].color := clGreen;
      if strtodate(form1.tablegrid1.cells[1,vrowcount]) <= now + form1.edit1.value then form1.tablegrid1.cell[1,vrowcount].color := clRed;
      if form1.edit1.Text = '' then form1.tablegrid1.cell[1,vrowcount].color := clwhite ;

     form1.tablegrid1.cell[3,vrowcount].Text:= (DaysBetween(Now, strtodate(form1.tablegrid1.cells[1,vrowcount]))); _ need help please
    end;
end;

6 (edited by Andrei 2021-09-03 09:28:25)

Re: Подсветка дат в DB

Здравствуйте.
Если в столбце date (frm_stat.tablegrid1.cells[11,]) в поле находится NULL, то процедура не работает - подсвечиваются строки до поля NULL, дальше выполнение скрипта прерывается с ошибкой  "" is not valid date Script position ....
Есть способ пропустить поля со значением NULL?

соорудил костыль (выборку  where inv is not null), можно как ни будь без него?

 procedure Frm_Stat_Button6_OnClick (Sender: TObject; var Cancel: boolean);
begin
     Frm_Stat.Button6.dbSQL := ' SELECT * '+
                                ' from svod '+
                                ' where inv is not null ';

end;

procedure Frm_Stat_Button6_OnAfterClick (Sender: TObject);

var  vrow, vcolumn: integer;
begin
  for vrow := 0 to frm_stat.tablegrid1.RowCount- 1 do
    begin
      if strtodate(frm_stat.tablegrid1.cells[11,vrow]) < now -30 then
          for vcolumn := 0 to frm_stat.tablegrid1.columns.Count -1 do
            begin
              frm_stat.tablegrid1.cell[vcolumn,vrow].TextColor := clblue;
            end;
    end;