76

(9 replies, posted in Russian)

DriveSoft wrote:

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

if Chat.Visible then Chat.TableGrid1.dbUpdate;   

 
на

if (Chat.Visible) and (not Chat.ComboBox1.DroppedDown) then Chat.TableGrid1.dbUpdate;

Спасибо за временное решение, буду пробовать)

77

(9 replies, posted in Russian)

DriveSoft wrote:

Bullet3203
Дайте пожалуйста ссылку на пример, протестирую.

Если вдруг не дошло сообщение, вот ссылка на файл на яндекс диске
https://yadi.sk/d/jHdZtx613JcXmV

78

(9 replies, posted in Russian)

DriveSoft wrote:

Bullet3203
Дайте пожалуйста ссылку на пример, протестирую.

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

79

(9 replies, posted in Russian)

Добавлю еще от себя, что если в скрипте задан таймер на обновление (например записей в таблице Form1.TableGrid1.dbUpdate), то в версиях что в 3.4 и в 3.3 обновляется не только таблица, а вся форма. Было замечено, если на форме присутствуют комбобоксы, то при их открытии они сами сворачиваются. Если таймер установлен на 1 сек, то они сворачиваются через секунду после открытия, если на 5 секунд, то сворачиваются через 5 сек. В ранних версиях программы этого не замечается (1.44 и 2.8). Такое поведение замечено в примере который Вы не так давно присылали мне, где была проблема с ошибкой data base is locked.

80

(6 replies, posted in Russian)

antongusevv wrote:

Вот пример напоминалки  http://myvisualdatabase.com/forum/viewtopic.php?id=711
,правда задание будет показыватся всем пользователям у кого будет в этот момент запущено приложение.
Если бы Дмитрий подсказал как доработать этот пример чтобы напоминание о задании срабатывало  бы только у того авторизованного пользователя,кому оно предназначено.Хотя иногда и для всех сразу тоже надо донести напоминание.

Пробовал этот пример "Reminder", но он не совсем подходит, разве что как какое то напоминании о событии, которое происходит периодически, например пару раз  в неделю и в одно и тоже время.
Намного лучше подошел пример который в посте №4. Теперь сразу при создании задания, через 5 секунд, высвечивается сообщение на всех запущенных компьютерах "Пользователь такой то выдал новое задание пользователю такому то или если оно для всех то отображается что выдано всем". Единственный минус это то что если какой то пользователь не в программе и в этот момент было создано новое задание, то когда он через некоторое время зайдет, то ему не высветиться никаких оповещений о новых заданиях.

81

(6 replies, posted in Russian)

DriveSoft wrote:

Есть готовый пример с оповещение о добавлении новой записи, но без пользователей.

Спасибо большое, буду пробовать!

82

(6 replies, posted in Russian)

DriveSoft wrote:

Здравствуйте.


Можно, но я могу помочь только с решением конкретных вопросов.

Интересует пример скрипта, оповещение о новой записи в виде всплывающего окна конкретному пользователю

83

(6 replies, posted in Russian)

Здравствуйте! Возможно ли реализовать такое? (версия программы 1.44)
В общем в программе работают 6 человек по сети. Для каждого пользователя создаются задания, которые он выполняет и потом заносит определенный ответ с датой окончания выполнения. Так же создаются общие задания для всех. Ведутся логи входа и выхода из программы. Можно ли сделать своего рода напоминалку, которая реализована в виде всплывающего окна с текстом нового задания и показана конкретному пользователю? То есть если задание выдано только Петрову, то в момент его создания показывалось окошко с текстом задания только пользователю Петров. Если задание выдано всем, то окошко с текстом задания показывалось сразу всем. Так же если какой то пользователь не онлайн и ему выдали задание, то оно ему показалось сразу при первом же входе в программу!  Заранее  спасибо!

84

(2 replies, posted in Russian)

Спасибо большое за ответ!)

85

(2 replies, posted in Russian)

Подскажите пожалуйста как оставить только одну активную кнопку "Свернуть" на форме, а Развернуть и Закрыть удалить?

86

(13 replies, posted in Russian)

Выслал проект на почту. Заранее благодарю за помощь)

87

(13 replies, posted in Russian)

При одновременной работе в программе двух и более человек появляется  ошибка database is locked. Как это лечиться?
Используется версия 1.44

Имеется такой SQL запрос

SELECT
stataktrem1.stat1,
aktrem.nomerakt,
aktrem.zakazchick,
strftime('%d.%m.%Y', aktrem.datapriema),
aktrem.v1,
aktrem.nomerser1,
aktrem.complect1,
aktrem.primitka1,
aktrem.id_stataktrem1

FROM aktrem
LEFT OUTER JOIN stataktrem1 ON stataktrem1.id=aktrem.id_stataktrem1

WHERE (stataktrem1.stat1 is not 'Видано') and (aktrem.v1 is not null)

UNION ALL

SELECT
stataktrem2.stat2,
aktrem.nomerakt,
aktrem.zakazchick,
strftime('%d.%m.%Y', aktrem.datapriema),
aktrem.v2,
aktrem.nomerser2,
aktrem.complect2,
aktrem.primitka2,
aktrem.id_stataktrem2

FROM aktrem
LEFT OUTER JOIN stataktrem2 ON stataktrem2.id=aktrem.id_stataktrem2

WHERE (stataktrem2.stat2 is not 'Видано') and (aktrem.v2 is not null)

UNION ALL

SELECT
stataktrem3.stat3,
aktrem.nomerakt,
aktrem.zakazchick,
strftime('%d.%m.%Y', aktrem.datapriema),
aktrem.v3,
aktrem.nomerser3,
aktrem.complect3,
aktrem.primitka3,
aktrem.id_stataktrem3

FROM aktrem
LEFT OUTER JOIN stataktrem3 ON stataktrem3.id=aktrem.id_stataktrem3

WHERE (stataktrem3.stat3 is not 'Видано') and (aktrem.v3 is not null)

UNION ALL

SELECT
stataktrem4.stat4,
aktrem.nomerakt,
aktrem.zakazchick,
strftime('%d.%m.%Y', aktrem.datapriema),
aktrem.v4,
aktrem.nomerser4,
aktrem.complect4,
aktrem.primitka4,
aktrem.id_stataktrem4

FROM aktrem
LEFT OUTER JOIN stataktrem4 ON stataktrem4.id=aktrem.id_stataktrem4

WHERE (stataktrem4.stat4 is not 'Видано') and (aktrem.v4 is not null)

UNION ALL

SELECT
stataktrem5.stat5,
aktrem.nomerakt,
aktrem.zakazchick,
strftime('%d.%m.%Y', aktrem.datapriema),
aktrem.v5,
aktrem.nomerser5,
aktrem.complect5,
aktrem.primitka5,
aktrem.id_stataktrem5

FROM aktrem
LEFT OUTER JOIN stataktrem5 ON stataktrem5.id=aktrem.id_stataktrem5

WHERE (stataktrem5.stat5 is not 'Видано') and (aktrem.v5 is not null)

UNION ALL

SELECT
stataktrem6.stat6,
aktrem.nomerakt,
aktrem.zakazchick,
strftime('%d.%m.%Y', aktrem.datapriema),
aktrem.v6,
aktrem.nomerser6,
aktrem.complect6,
aktrem.primitka6,
aktrem.id_stataktrem6

FROM aktrem
LEFT OUTER JOIN stataktrem6 ON stataktrem6.id=aktrem.id_stataktrem6

WHERE (stataktrem6.stat6 is not 'Видано') and (aktrem.v6 is not null)

UNION ALL

SELECT
stataktrem7.stat7,
aktrem.nomerakt,
aktrem.zakazchick,
strftime('%d.%m.%Y', aktrem.datapriema),
aktrem.v7,
aktrem.nomerser7,
aktrem.complect7,
aktrem.primitka7,
aktrem.id_stataktrem7

FROM aktrem
LEFT OUTER JOIN stataktrem7 ON stataktrem7.id=aktrem.id_stataktrem7

WHERE (stataktrem7.stat7 is not 'Видано') and (aktrem.v7 is not null)

UNION ALL

SELECT
stataktrem8.stat8,
aktrem.nomerakt,
aktrem.zakazchick,
strftime('%d.%m.%Y', aktrem.datapriema),
aktrem.v8,
aktrem.nomerser8,
aktrem.complect8,
aktrem.primitka8,
aktrem.id_stataktrem8

FROM aktrem
LEFT OUTER JOIN stataktrem8 ON stataktrem8.id=aktrem.id_stataktrem8

WHERE (stataktrem8.stat8 is not 'Видано') and (aktrem.v8 is not null)

UNION ALL

SELECT
stataktrem9.stat9,
aktrem.nomerakt,
aktrem.zakazchick,
strftime('%d.%m.%Y', aktrem.datapriema),
aktrem.v9,
aktrem.nomerser9,
aktrem.complect9,
aktrem.primitka9,
aktrem.id_stataktrem9

FROM aktrem
LEFT OUTER JOIN stataktrem9 ON stataktrem9.id=aktrem.id_stataktrem9

WHERE (stataktrem9.stat9 is not 'Видано') and (aktrem.v9 is not null)

Order By aktrem.nomerakt DESC

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

DriveSoft wrote:

Видимо каждый запрос нужно взять в скобки, т.е.

(SELECT count(*) FROM zapravkakioc WHERE zap1 = '+')
+ 
(SELECT count(*) FROM zapravkakioc WHERE zap2 = '+')
+ 
(SELECT count(*) FROM zapravkakioc WHERE zap3 = '+')
+ 
(SELECT count(*) FROM zapravkakioc WHERE zap4 = '+')
+ 
(SELECT count(*) FROM zapravkakioc WHERE zap5 = '+')
+ 
(SELECT count(*) FROM zapravkakioc WHERE zap6 = '+')
+ 
(SELECT count(*) FROM zapravkakioc WHERE zap7 = '+')
+ 
(SELECT count(*) FROM zapravkakioc WHERE zap8 = '+')

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

В таком случае получилась тоже ошибка near "(":syntax error.
Но я решил проблему доработав запрос

SELECT SUM((SELECT count(*) FROM zapravkakioc WHERE zap1 = '+')
+ 
(SELECT count(*) FROM zapravkakioc WHERE zap2 = '+')
+ 
(SELECT count(*) FROM zapravkakioc WHERE zap3 = '+')
+ 
(SELECT count(*) FROM zapravkakioc WHERE zap4 = '+')
+ 
(SELECT count(*) FROM zapravkakioc WHERE zap5 = '+')
+ 
(SELECT count(*) FROM zapravkakioc WHERE zap6 = '+')
+ 
(SELECT count(*) FROM zapravkakioc WHERE zap7 = '+')
+ 
(SELECT count(*) FROM zapravkakioc WHERE zap8 = '+'))

Теперь все считает как надо, благодарю за помощь!)

DriveSoft wrote:

Попробуйте тогда так

SELECT count(*) FROM zapravkakioc WHERE zap1 = '+'
+ 
SELECT count(*) FROM zapravkakioc WHERE zap2 = '+'
+ 
SELECT count(*) FROM zapravkakioc WHERE zap3 = '+'
+ 
SELECT count(*) FROM zapravkakioc WHERE zap4 = '+'
+ 
SELECT count(*) FROM zapravkakioc WHERE zap5 = '+'
+ 
SELECT count(*) FROM zapravkakioc WHERE zap6 = '+'
+ 
SELECT count(*) FROM zapravkakioc WHERE zap7 = '+'
+ 
SELECT count(*) FROM zapravkakioc WHERE zap8 = '+'

Попробовал но в итоге появляется ошибка near "Select":syntax error.

91

(3 replies, posted in Russian)

DriveSoft wrote:

Здравствуйте.


Это можно реализовать и без использоваться SQL запроса. Используйте кнопку с действием "Отчет", также на форме разместите компонент CheckBox, заполнив его свойства ForeignKey = aktrem.id_stataktrem, FieldName = stataktrem.stat


Затем данный компонент добавьте в настройку кнопки с действием "Отчет",  также данный CheckBox можете скрыть, установив для него необходимое значение, тогда записи для отчета будут отфильтрованы.

Спасибо большое за ответ.

DriveSoft wrote:

попробуйте так

SELECT count(*) FROM zapravkakioc
WHERE 
(zap1 = '+') OR (zap2 = '+') OR (zap3 = '+') OR (zap4 = '+') OR (zap5 = '+') OR (zap6 = '+') OR (zap7 = '+') OR (zap8 = '+')

В итоге получил:
count(*)
5

Есть такой SQL запрос

select count(*) from zapravkakioc
where zap1 is '+'
union all
select count(*) from zapravkakioc
where zap2 is '+'
union all
select count(*) from zapravkakioc
where zap3 is '+'
union all
select count(*) from zapravkakioc
where zap4 is '+'
union all
select count(*) from zapravkakioc
where zap5 is '+'
union all
select count(*) from zapravkakioc
where zap6 is '+'
union all
select count(*) from zapravkakioc
where zap7 is '+'
union all
select count(*) from zapravkakioc
where zap8 is '+'

В итоге получаю результат:
count(*)
5
4
4
3
2
2
3
3

Но как суммировать эти результаты, что бы в итоге у меня получилось
count(*)
26

94

(3 replies, posted in Russian)

Сам решил проблему.

SELECT

aktrem.nomerakt,
aktrem.zakazchick,
strftime('%d.%m.%Y', aktrem.datapriema),
stataktrem.stat,
aktrem.id_stataktrem

FROM aktrem

LEFT OUTER JOIN stataktrem ON stataktrem.id=aktrem.id_stataktrem

WHERE stataktrem.stat is not 'Видано'

Order By aktrem.nomerakt DESC

95

(3 replies, posted in Russian)

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

Пробовал через отчет  SQL, но тогда вместо надписей (Принято, Занимаются и Готово) стоят цифры.
Select nomerakt, zakazchick, datapriema, id_stataktrem from aktrem
where id_stataktrem is not 'Видано'
order by nomerakt desc

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