sibprogsistem wrote:
if (date > StrToDate('27.04.2021')) then showmessage('Сегодняшняя дата больше');

вот теперь точно то что мне надо)))
спасибо!

sibprogsistem wrote:
if (DateToStr(Now) = '27.04.2021') then showmessage('Даты совпадают');

Неточно обрисовал задачу(((
Мне нужно выполнение действия не только в определенную дату но и во все дни после этой даты.
Если использовать знак равно то проверка условия в Вашем скрипте работает.
Если использовать знак больше или меньше то сравнивается только дата, а месяц и год не учитываются.
Помогите пожалуйста доработать скрипт:
if (DateToStr(Now) > '27.04.2021') then showmessage('Время прошло')

sibprogsistem wrote:
if (DateToStr(Now) = '27.04.2021') then showmessage('Даты совпадают');

то что надо. спасибо!

sibprogsistem wrote:

Не понятно, что именно Вам нужно ..

Мне нужно чтобы при открытии формы в точно определённый мною день производилось какое либо действие (нажималась кнопка на форме или выскакивало сообщение или т.п.)
Я хотел это реализовать прописав в скрипте события OnShow формы что то типа сравнения нужной мне даты с текущей датой.
Например: if Now > "2021-04-27" then frmX.Button1.Click;
Т.е. 28го апреля при открытии пользователем формы frmX будет автоматически нажиматься кнопка Button1.

Andrei wrote:
if t1.Date > "2021-04-27"

ругается: THEN expected

Andrei wrote:

Наверное правильнее не в скрипте указывать конкретную дату, а на форме выбирать из календаря.

procedure form1_Button1_OnClick (Sender: TObject);
begin
if t1.Date > {DateTimePicker1} then ... 

мне нужно чтобы при открытии формы в точно определённый день выскакивало сообщение

добрый день господа!
подскажите как правильно прописать в скрипте условие сравнения текущей даты с заданной?
что то типа: if Date > 27-04-2021 then
спасибо.

Уже отвечал на подобное. Повторюсь.

Этой процедурой можете задавать и разрядность и кол-во знаков после запятой.

procedure frmPlatez_TableGrid1_OnChange (Sender: TObject);
begin
    if frmPlatez.TableGrid1.Columns[3] is TNxNumberColumn then
        begin
              TNxNumberColumn(frmPlatez.TableGrid1.Columns[3]).FormatMask:='#,##0.00';             //это сама колонка
              TNxNumberColumn(frmPlatez.TableGrid1.Columns[3]).Footer.FormatMask:='#,##0.00';  //а это для подвала
        end;
end;

по первому вопросу:
http://myvisualdatabase.com/forum/viewtopic.php?id=5840
по второму выложите проект, думаю вам помогут форумчане, по скринам не всегда можно разобраться в причинах

Создал таблицу и настроил поля TreeView. Теперь можно и скриптом заполнять.
Или если в проекте используете TableGrid (с настроенными полями) до перехода на форму с TreeView или на этой же форме, то поля TreeView можно не настраивать.
Скриптом сможете заполнить столько полей сколько настроили в TreeView или сколько максимально используется в любом TableGrid.
Почему так? Я не скажу. Не разбираюсь в этом. Может кто другой подскажет.

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

11

(2 replies, posted in Russian)

Предполагаю что если на форме большое кол-во элементов то её сразу нужно разворачивать на максимальный размер экрана.
AutoSize не используем. AutoScroll ставим галочку. Вроде работает.
procedure Form1_OnResize (Sender: TObject);
begin
   Form1.Width := Screen.Width;
   Form1.Height := Screen.Height;
end;

Form2 - форма которую закрываете и возвращаетесь к форме Form1
procedure Form2_OnClose (Sender: TObject; Action: string);                 
begin
Form1.TableGrid1.dbUpdate;
end;

13

(8 replies, posted in Russian)

Combobox сохраняет запись во внешнем ключе.
Поэтому если вы сгруппируете однотипные по определённому полю записи то во внешний ключ ничего не запишется.
Поэтому, как научили меня на форуме говорить, нужно слепить костыль)))))

procedure Form1_ComboBox1_OnDropDown (Sender: TObject);
begin
Form1.ComboBox1.dbSQLExecute ('SELECT vhod_numer FROM Zapros GROUP BY vhod_numer ');
end;

Создаёте компонент Edit1 который и будет участвовать в поиске.

procedure Form1_ComboBox1_OnCloseUp (Sender: TObject);
begin
Form1.Edit1.Text := Form1.ComboBox1.Text;
end;

14

(3 replies, posted in Russian)

Да. Это то что мне нужно!
Derek спасибо!!!

15

(3 replies, posted in Russian)

Помогите получить сумму двух подвалов из разных таблиц находящихся на одной форме,
и отобразить в edit.

У меня работает.
Прежде чем вам ответить я протестировал.

https://cloud.mail.ru/public/47Ar/2UvxxHjvh

SELECT 
PU.id,     
TipP.Tip, 
PU.Nomer,
XarPU.Faz
         
FROM   
PU

LEFT OUTER JOIN TipP ON TipP.id=PU.id_TipP LEFT OUTER JOIN XarPU ON XarPU.id=TipP.id_XarPU
                                                                                     
WHERE

(CASE WHEN {ComboBox1} <> -1 THEN PU.id_TipP = {ComboBox1} ELSE 1=1 END)

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

на форме frmAddPloskiyList уберите компоненты для привязки листа к развёрткам,
а создайте кнопу Новая запись и уже при переходе на новую форму выбирайте развёртки и сохраняйте записи в AppRazvertki.

да, это я уже сделал) не знал только что это костыль называется)))
просто хотел разобраться что не так я с форматами делаю.
ещё раз спасибо!!!

уточню: мне нужно определить есть ли в базе Zayavka записи где IspolnitelName="Горловецкий" и PostavsikName is null.
IspolnitelName и PostavsikName беру из справочников.
Я думал что если при создании новой записи в Combobox ничего не выбираешь то поле остаётся пустым.
Но условие PostavsikName is null при выборке не работает (не воспринимается).
Если в выборке использовать конкретное значение (PostavsikName="Атомпром"), как выше в процедуре, то всё работает.

А зачем вам время обнулять? Если для дальнейшей визуализации то потом заданием форматов можете в любом виде представлять.
Или для чего другого?

sibprogsistem спасибо!
разобрался, работает!
Единственное с чем не справился: не могу в условии фильтра использовать пустые поля заполняемые через Combobox.
PostavsikName is NULL игнорирует. Воспринимает только конкретные значения(((
____________________________________________________________________________
procedure Pusk_OnMouseEnter (Sender: TObject);
begin
      if SQLExecute('SELECT count(Zayvka.id) FROM Zayvka JOIN Ispolnitel ON Zayvka.id_Ispolnitel=Ispolnitel.id JOIN Postavsik ON
                               Zayvka.id_Postavsik=Postavsik.id WHERE IspolnitelName="Горловецкий" AND PostavsikName="Атомпром"')='0'
      then
        begin
          Pusk.Edit1.Text := '';
        end
      else
        begin
          Pusk.Edit1.Text := 'есть заявки на согласовании';
        end;
      UpdateDatabase('Zayvka');
end;

Добрый день!
Помогите на примере простого справочника решить следующую задачу:
При открытии формы нужно проверять базу на наличие хоть одной записи где поле ФИО = Иванов и поле Адрес = null (пусто).
Если такая запись есть то на форме компонент Кнопка становится видимой, и наоборот.
Спасибо.

Попробуйте вот так:
TNxNumberColumn(all.TableGrid1.Columns[14]).FormatMask := '#,##0.00';
TNxNumberColumn(all.TableGrid1.Columns[14]).Footer.FormatMask := '#,##0.00';