Re: Помогите создать таблицу "напоминаний"

vit007 wrote:

А как будет выглядеть условие на просмотр таблицы на наличие хотя бы одного любого id...

 SQLexecute('SELECT count(id) FROM Ваша_таблица');

 if SQLexecute('SELECT count(id) FROM Ваша_таблица') ='0' then Ваше условие;

Re: Помогите создать таблицу "напоминаний"

Я так пытался, но не заработало... я так думаю, из-за того что, условие ищет нулевой id, а его нет. приходящие id могут быть разными...  Вот...

Re: Помогите создать таблицу "напоминаний"

vit007 wrote:

Я так пытался, но не заработало... я так думаю, из-за того что, условие ищет нулевой id, а его нет. приходящие id могут быть разными...  Вот...

пример .. условие проверяет есть-ли в таблице записи и если их нет создает новую запись

if SQLExecute('SELECT count(id)FROM Color;')='0' then
      begin
      SQLEXecute('INSERT INTO Color(questionColorText,questionColorBackground,answerColorText,answerColorBackground'+
      ',answerColorTextLeave,answerColorTextClick,answerColorBackgroundLeave,answerColorBackgroundClick)VALUES('+
      '"$000C0C0C","$00F9F9F9","$000C0C0C","$00E8E8E8","$008C0000","$003A7676","$00C9C9C9","$00E8E8E8")');
      end;
  // обновить таблицу
  updateDataBase('Color');

это пример из моего проекта и он точно рабочий...
   
 
а для чего Вам этот запрос?

29 (edited by vit007 2020-07-06 19:21:43)

Re: Помогите создать таблицу "напоминаний"

Смотрите, когда в таблице дубликате (напоминание) появляется запись, то по условию, на главной форме должна появится форма оповещения, чтобы посмотреть выборку... И в этой выборке, разные id по возрастанию... Оно у меня работает, если удалить базу, и она заново создается...

Скорее мне надо

if SQLExecute('SELECT count(id)FROM Table')>'0' then

Re: Помогите создать таблицу "напоминаний"

vit007 wrote:

Смотрите, когда в таблице дубликате (напоминание) появляется запись, то по условию, на главной форме должна появится форма оповещения, чтобы посмотреть выборку... И в этой выборке, разные id по возрастанию... Оно у меня работает, если удалить базу, и она заново создается...

Скорее мне надо

if SQLExecute('SELECT count(id)FROM Table')>'0' then

можно увидеть Ваш код?

31 (edited by vit007 2020-07-07 07:35:26)

Re: Помогите создать таблицу "напоминаний"

Осталось таймер на 12 часов прикрутить и гифку...

Post's attachments

Attachment icon Reminder.rar 296.19 kb, 244 downloads since 2020-07-07 

Re: Помогите создать таблицу "напоминаний"

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

Re: Помогите создать таблицу "напоминаний"

Наверно, как-то так...

if (FormatDateTime('??.??', now) = 12.00) then 

где ??.?? я не знаю обозначения из (dd.mm.yyyy.??.??.????)...

34 (edited by sibprogsistem 2020-07-07 10:09:39)

Re: Помогите создать таблицу "напоминаний"

vit007 wrote:

Наверно, как-то так...

if (FormatDateTime('??.??', now) = 12.00) then 

где ??.?? я не знаю обозначения из (dd.mm.yyyy.??.??.????)...

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

if  SQLexecute('SELECT (JulianDay("now") - JulianDay(date))* 24 FROM ваша_таблица WHERE id='+ ваше _условие) > 24

Re: Помогите создать таблицу "напоминаний"

Вот таблицу, хотелось бы не привлекать к временному условие. Оно, условие, должно быть автономное. Это почему... Т.к."Напоминание" срабатывает по старту проги, а если комп с прогой всегда в гибернации, то надо собирать "напоминание" по условию времени...

36 (edited by vit007 2020-07-07 14:58:41)

Re: Помогите создать таблицу "напоминаний"

Вот так ошибок нет... но не работает

if (FormatDateTime('hh', now) > '12') then 

ага в OnChange не работает, а хотелось бы... или какая-нибудь чтоб кликнул на таблицу и скрипт сработал... на OnMouseEnter работает

Re: Помогите создать таблицу "напоминаний"

vit007 wrote:

Вот так ошибок нет... но не работает

if (FormatDateTime('hh', now) > '12') then 

ага в OnChange не работает, а хотелось бы... или какая-нибудь чтоб кликнул на таблицу и скрипт сработал... на OnMouseEnter работает

просто создайте собственную процедуру и в нужном вам событии укажите эту процедуру

Re: Помогите создать таблицу "напоминаний"

В этой процедуре не работает, а хотелось бы..

procedure 

...
form1.Button5.Visible := false;
...

Form1_TableGrid1_OnChange (Sender: TObject);
var
    i, Ii, cR, cC : integer;
begin
    cR := Form1.TableGrid1.RowCount - 1;
    cC := Form1.TableGrid1.Columns.Count - 1;

    Form1.TableGrid1.BeginUpdate;
    for i := 0 to cR do
    begin
        //Условие сравнение разности дат из 2го столбца
        if (Form1.TableGrid1.Cells[0,i] <>'') and (Date - StrToDateTime(Form1.TableGrid1.Cells[0,i]) >=0) then
        begin
            for Ii:=0 to Cc do Form1.TableGrid1.Cell[Ii,i].Color := $adffaf;
        end;
        if (Date - StrToDateTime(Form1.TableGrid1.Cells[0,i]) >=5) then
        begin
            for Ii:=0 to Cc do Form1.TableGrid1.Cell[Ii,i].Color := $addfff;
        end;
        if (Date - StrToDateTime(Form1.TableGrid1.Cells[0,i]) >=10) then
        begin
            for Ii:=0 to Cc do Form1.TableGrid1.Cell[Ii,i].Color := $adafff;
        end;
     end;
    //Обнавление таблицы
    Form1.TableGrid1.EndUpdate;
    //Формирование "напоминания"
    if (FormatDateTime('hh', now) > '12') then form1.Button5.Visible := true;
end;

39 (edited by vit007 2020-07-08 07:52:01)

Re: Помогите создать таблицу "напоминаний"

Странно, с утра по раньше в процедуре OnMouseEnter,  перестало работать, а вчера норм было... Какой-то за тык был... у меня 10.30 часов в реали было, сработало не на больше 10, 9, а только на "1"... Добавил минуты и заработало... НО только в процедуре OnMouseEnter таблицы. В процедуре таблицы OnChange, не работает...

40 (edited by sibprogsistem 2020-07-08 08:30:37)

Re: Помогите создать таблицу "напоминаний"

TableGrid1_OnChange - это действие при изменении в Grid-e  к примеру сортировка данных...
 
тут Вы просто проверяете собственное локальное время

 if (FormatDateTime('hh', now) > '12') then form1.Button5.Visible := true;

Re: Помогите создать таблицу "напоминаний"

Вот кок раз и надо мне проверка "локального времени"... sibprogsistem а не знаете, есть программы автозагрузка или планировщик, чтоб именно в этот момент времени срабатывало действие, без нажатия чего либо...

Re: Помогите создать таблицу "напоминаний"

vit007 wrote:

Вот кок раз и надо мне проверка "локального времени"... sibprogsistem а не знаете, есть программы автозагрузка или планировщик, чтоб именно в этот момент времени срабатывало действие, без нажатия чего либо...

либо таймер либо внешние ресурсы..

Re: Помогите создать таблицу "напоминаний"

Всем спасибо за участие.

44 (edited by vit007 2020-07-10 07:26:26)

Re: Помогите создать таблицу "напоминаний"

Блин, что-то сломалось и не в какую юлианское сравнение не работает... посмотрите опытным глазом...

Post's attachments

Attachment icon Reminder.rar 330.47 kb, 243 downloads since 2020-07-10 

Re: Помогите создать таблицу "напоминаний"

могу лишь сказать, что ошибка где то здесь

//Сброс запрета на повторное формирование формы "Напоминия"
    if (FormatDateTime('hh.mm', now) > '13.00') and (FormatDateTime('hh.mm', now) < '20.00') and (a = '1') then

    begin
        a := '0';
    end else

    //Установка времени формирования формы "Напоминия"
    if (FormatDateTime('hh.mm', now) > '10.00') and (FormatDateTime('hh.mm', now) < '13.00') and (a = '0') then

    begin

Re: Помогите создать таблицу "напоминаний"

Закомментировал, и все равно не работает... sad

Re: Помогите создать таблицу "напоминаний"

vit007 wrote:

Закомментировал, и все равно не работает... sad

 list:=TStringList.Create;
        list.Text:=SQLExecute( 'SELECT group_concat(id, char(13) || char(10)) FROM qwe' );

        for i:=0 to list.Count-1 do
        begin

            if (SQLexecute('SELECT julianday("now") - julianday(data00)FROM qwe WHERE id='+list[i])>5) and (Form1.TableGrid1.Cells[2,i] = 'ок') then
            begin
                showmessage('');
                //name:=SQLexecute('SELECT text00 FROM qwe WHERE id='+list[i]);
                //SQLExecute('INSERT INTO asd(text01,text02)VALUES("'+name+'","'+form1.Edit1.Text+'")');

            end;
        end;

все закомментировал  добавил в цикл showmessage(''); - сообщение отображается
   
проверьте Ваши циклы и условия с помощью showmessage('');

48 (edited by vit007 2020-07-10 11:51:24)

Re: Помогите создать таблицу "напоминаний"

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

49 (edited by vit007 2020-07-11 09:09:09)

Re: Помогите создать таблицу "напоминаний"

Вот что нашел... почему-то, когда есть клавиша с настройкой "Посмотреть форму", все работает через эту клавишу. А при использование скрипта "Форма.Show" - нет. Получается как-то id не выбирается... или косяк в проге?