Re: Фильтр - всё кроме. Вопросы-вопросы...Тема закрыта.

Возможно вы не поняли скрипт, в примере Form1.Panel2 вы должны заменить это на имя панели используемую в вашем проекте.

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

if Sender is Form1.Panel2 Then 
   begin
      frmOrder.cdRepStatus.Caption:='Принят';
      frmOrder.bSearch.Click;
   end;
Dmitry.

Re: Фильтр - всё кроме. Вопросы-вопросы...Тема закрыта.

DriveSoft wrote:

Возможно вы не поняли скрипт, в примере Form1.Panel2 вы должны заменить это на имя панели используемую в вашем проекте.

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

if Sender is Form1.Panel2 Then 
   begin
      frmOrder.cdRepStatus.Caption:='Принят';
      frmOrder.bSearch.Click;
   end;

Вот мой скрипт

procedure PanelOnClick (Sender: TObject);
var
    panel: TdbPanel;
begin
    panel := TdbPanel(Sender);

    if panel.Color <> colorActive then
    begin
        panel.Color := colorActive;
        SavePanelStatus(panel, True);
    end else
    begin
        panel.Color := panel.Tag;
        SavePanelStatus(panel, False);
    end;

    if Sender is frmOrder.Panel2 Then
   begin
      frmOrder.cdRepStatus.Caption:='Принят';
      frmOrder.bSearch.Click;
   end;

   if Sender is frmOrder.Panel13 Then
   begin
      frmOrder.GridOrder.dbFilter := '(repairstatus <> "Принят")';
      frmOrder.GridOrder.dbUpdate;
   end;
end;

Пробовал отключать и нет скрипты

procedure frmOrder_Panel2_OnClick (Sender: string);
begin
   frmOrder.cdRepStatus.Caption:='Принят';
   frmOrder.bSearch.Click;
end;

и

procedure frmOrder_Panel13_OnClick (Sender: string);
begin
   frmOrder.GridOrder.dbFilter := '(repairstatus <> "Принят")';
   frmOrder.GridOrder.dbUpdate;
end;

Не хочет.

надо идти вперёд....

Re: Фильтр - всё кроме. Вопросы-вопросы...Тема закрыта.

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

Dmitry.

Re: Фильтр - всё кроме. Вопросы-вопросы...Тема закрыта.

DriveSoft wrote:

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

Ок, чуть попозже вам дам всю раскладку. Спасибо!

надо идти вперёд....

Re: Фильтр - всё кроме. Вопросы-вопросы...Тема закрыта.

DriveSoft wrote:

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

Отправил вам на почту.
Спасибо.

надо идти вперёд....

Re: Фильтр - всё кроме. Вопросы-вопросы...Тема закрыта.

kovalenko wrote:
DriveSoft wrote:

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

Отправил вам на почту.
Спасибо.

Дмитрий здравствуйте. По фильтрам. На главной форме кнопка РАБОТЫ. Переход на форму ЗАКАЗЫ. Внизу есть Group Box  "Статусы заказов/фильтр вывода информации". По умолчанию там фильтр "Показать все заказы кроме выбранного", если на эту надпись нажать, то фильтры сменяться на "Показать заказы только с выбранным статусом". У меня сейчас исходя из ваших рекомендаций настроены только кнопки в Group Box "ПРИНЯТО", т.е если нажать панельку "ПРИНЯТО" с включенным фильтром "Показать все заказы кроме выбранного" то соответственно должно быть показано всё кроме. Если выбрать фильтр "Показать заказы только с выбранным статусом", то при нажатии на панельку принято, должен быть выведен только статус "ПРИНЯТО". Всё, кроме панелек "ПРИНЯТО" с использованным предложенным вами скриптом работает. С вашим скриптом меняется только цвет панелек. Да, панелек соответственно на каждый статус по две, и они переключаются нажатием кнопок "Показать все заказы кроме выбранного" /  "Показать заказы только с выбранным статусом".Как-то так.

Проект отправил вам на почту.

надо идти вперёд....

Re: Фильтр - всё кроме. Вопросы-вопросы...Тема закрыта.

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


Просто сделайте так как я показал в примере для всех панелек.

Dmitry.

33 (edited by kovalenko 2017-11-06 11:57:30)

Re: Фильтр - всё кроме. Вопросы-вопросы...Тема закрыта.

DriveSoft wrote:

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


Просто сделайте так как я показал в примере для всех панелек.

Здравствуйте. Дмитрий, я взял панельку № 13 вырезал и вставил в свободное место формы. По логике она должна работать, но опять же, меняется только цвет. Может я много прошу, но вы не могли бы сделать пример в моём проекте хотя бы на кнопках "Принято".

надо идти вперёд....

34 (edited by kovalenko 2017-11-09 08:24:12)

Re: Фильтр - всё кроме. Вопросы-вопросы...Тема закрыта.

kovalenko wrote:
DriveSoft wrote:

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


Просто сделайте так как я показал в примере для всех панелек.

Здравствуйте. Дмитрий, я взял панельку № 13 вырезал и вставил в свободное место формы. По логике она должна работать, но опять же, меняется только цвет. Может я много прошу, но вы не могли бы сделать пример в моём проекте хотя бы на кнопках "Принято".

Дмитрий здравствуйте. Убрал все скрытые панели с формы.
Но скрипт

procedure PanelOnClick (Sender: TObject);
var
    panel: TdbPanel;
begin
    panel := TdbPanel(Sender);

    if panel.Color <> colorActive then
    begin
        panel.Color := colorActive;
        SavePanelStatus(panel, True);
    end else
    begin
        panel.Color := panel.Tag;
        SavePanelStatus(panel, False);
    end;


   if Sender is frmOrder.Panel22 then
   begin
   frmOrder.GridOrder.dbFilter := '(repairstatus <> "Выдано/Оплачено")';
   frmOrder.GridOrder.dbUpdate;
   end;
end;

где в конце должна срабатывать обработка нажатия на панель и отработка фильтра, не срабатывает...
Что может быть не так?

надо идти вперёд....

Re: Фильтр - всё кроме. Вопросы-вопросы...Тема закрыта.

Пожалуйста прикладывайте проект с данными изменениями.

Dmitry.

Re: Фильтр - всё кроме. Вопросы-вопросы...Тема закрыта.

DriveSoft wrote:

Пожалуйста прикладывайте проект с данными изменениями.

Спасибо за ответ. Задачу решил другим подходом. Спасибо.

надо идти вперёд....