Программы "Простой софт" www.prostoysoft.ru

ВНИМАНИЕ! РЕКЛАМНЫЕ СООБЩЕНИЯ И ГИПЕРССЫЛКИ В ФОРУМЕ ЗАПРЕЩЕНЫ (посты удаляются автоматически)
Текущее время: 27.11.2024 19:51

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: 29.05.2017 11:11 
Не в сети

Зарегистрирован: 09.03.2014 10:01
Сообщения: 72
Нужна помощь. Есть представление qdfRequest таблицы tblMain.
Нужно, чтобы при постановке галочки в поле "Дов."(ProxyYN) автоматически заполнялось поле "№ доверенности"(Proxy), максимальное + 1, и значения брались только у тех записей у которых стоит галочка "Дов."(ProxyYN). И чтобы заполнение было автоматическое, т.е. без нажатий "применить", "обновить" и т.д.
Пробовал давать значение по умолчанию "№ доверенности":
SELECT MAX(Proxy) + 1 FROM tblMain WHERE ProxyYN=1 . Не помогло. Пробовал условие на значение, так оно просто прибавляет +1, несмотря есть ли галочка или нет.
Просьба помочь с решением


Вложения:
Безымянный.jpg
Безымянный.jpg [ 113.42 КБ | Просмотров: 69992 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29.05.2017 15:28 
Не в сети

Зарегистрирован: 09.03.2014 10:01
Сообщения: 72
Пока удалось подобраться к желаемому при помощи формулы
IIF (ProxyYN=1, (SELECT MAX(Proxy) FROM tblMain WHERE [ProxyYN]=1) + 1, 0)
Но значение ставится при переходе в поле. Как сделать, чтоб оно ставилось без перехода в поле(сразу при нажатии "Дов."(ProxyYN))?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30.05.2017 00:59 
Не в сети

Зарегистрирован: 06.10.2014 18:30
Сообщения: 279
Откуда: Орел
rorik302 писал(а):
Но значение ставится при переходе в поле. Как сделать, чтоб оно ставилось без перехода в поле(сразу при нажатии "Дов."(ProxyYN))?

У меня "Учет пациентов"
Присоединюсь к вопросу. Для меня то же актуально. Именно без перехода в поле..

Я пробовал в свойствах поля (для вашего вопроса это поле "Дов."(ProxyYN)) в "Условие на значение" -> "Формула" -> "Если то" -> "Выполнить процедуру"
И в процедуре чего то писать. Например командой SetControlValue можно установить значение какого либо поля на форме.
Так процедура выполняется несколько раз. Иногда раз 5.
Хотя для Вашей задачи это возможно не беда.

Если Вам не нужно чтобы пользователь это поле (Proxy) менял, то можно сделать триггер на условие "При изменение записи" и там командой UPDATE заполнять поле. А на форме его скрыть.

Ну и так к слову...
rorik302 писал(а):
Пока удалось подобраться к желаемому при помощи формулы
IIF (ProxyYN=1, (SELECT MAX(Proxy) FROM tblMain WHERE [ProxyYN]=1) + 1, 0)

У меня в формуле написано
dbo.CreateNumber(<Service>, <PatientID>, <ID>)
а функция CreateNumber определена на сервере SQL. Там можно сложные алгоритмы реализовывать.
И показалось странным (ProxyYN=1... Я думал что должно быть (<ProxyYN>=1...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 31.05.2017 11:40 
Не в сети

Зарегистрирован: 09.03.2014 10:01
Сообщения: 72
Как вариант можно добавить в список свойств SQL-команду, а в "Значения" непосредственно текст команды


Вложения:
Безымянный.jpg
Безымянный.jpg [ 205.87 КБ | Просмотров: 69945 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02.06.2017 14:45 
Не в сети

Зарегистрирован: 09.03.2014 10:01
Сообщения: 72
А можно ли при помощи SetControlValue подставлять в поле формулу или результат выполнения формулы?
У меня вставляется в поле сама формула


Вложения:
Безымянный.jpg
Безымянный.jpg [ 178.11 КБ | Просмотров: 69919 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03.06.2017 01:03 
Не в сети

Зарегистрирован: 06.10.2014 18:30
Сообщения: 279
Откуда: Орел
SetControlValue это не функция SQL. Это команда от "Простой софт" расширяющая VBS
А чтобы получить а нужно выполнить команду (тоже от простого софта) ExecuteSql
Поэтому как то так

Dim sSQl, a
sSql = "SELECT ...."
a = ExecuteSQL(sSql)
SetControlValue("Паспорт", a)

или одной строкой(командой)
SetControlValue("Паспорт", ExecuteSQL("SELECT ...."))

Если запрос SQL вернет несколько значений, то будет ошибка наверное.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03.06.2017 10:18 
Не в сети

Зарегистрирован: 25.04.2012 10:09
Сообщения: 2233
Откуда: Жуковский, Московская область
Не надо одной строкой

_________________
90% ответов на ваши вопросы находятся в руководстве, разделах "Вопросы" и "Видео" на нашем сайте.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22.06.2017 14:44 
Не в сети

Зарегистрирован: 09.03.2014 10:01
Сообщения: 72
Еще такой вопрос. Как подставить Контрагента при определенном значении поля Тип контрагента. Мне нужно, чтобы при значении 'Комиссия', подставлялось значение 'Комиссия 3%', а при значении 'Резервный фонд' - 'Резервный фонд'.
Мой код
Dim sSql, com, pod
com = "SELECT ContractorNameFull FROM tblContractors WHERE ContractorType='Комиссия'"
sSql = ExecuteSQL (com)
pod = SetControlValue("Контрагент", sSql)
IIF (<Значение> LIKE '%Комиссия%', pod, ' ')

Какое значение не выбери, все равно подставляет 'Комиссия 3%'


Вложения:
1.jpg
1.jpg [ 36.4 КБ | Просмотров: 69604 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22.06.2017 14:58 
Не в сети

Зарегистрирован: 25.04.2012 10:09
Сообщения: 2233
Откуда: Жуковский, Московская область
И правильно делает, т.к. делает ровно то, что написано в коде.
Код:
kontr_type = <Значение>
If InStr(kontr_type, "Комиссия") > 0 Then
  kontr = "Комиссия 3%"
Else
  kontr = "Резервный фонд"
End If
SetControlValue("Контрагент", kontr)

_________________
90% ответов на ваши вопросы находятся в руководстве, разделах "Вопросы" и "Видео" на нашем сайте.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26.06.2017 11:37 
Не в сети

Зарегистрирован: 09.03.2014 10:01
Сообщения: 72
OMEN писал(а):
И правильно делает, т.к. делает ровно то, что написано в коде.
Код:
kontr_type = <Значение>
If InStr(kontr_type, "Комиссия") > 0 Then
  kontr = "Комиссия 3%"
Else
  kontr = "Резервный фонд"
End If
SetControlValue("Контрагент", kontr)


Что-то не работает. Какое бы значение не выбрал, даже "Комиссия", срабатывает Else


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26.06.2017 11:42 
Не в сети

Зарегистрирован: 25.04.2012 10:09
Сообщения: 2233
Откуда: Жуковский, Московская область
Ищите проблему, отлаживайте.
Сохраните значение результата выполнения
Код:
InStr(kontr_type, "Комиссия")
в переменной и выведите его в сообщении...
Кстати, если обработка ведется в отдельной процедуре, то <Значение> уже нельзя использовать.

_________________
90% ответов на ваши вопросы находятся в руководстве, разделах "Вопросы" и "Видео" на нашем сайте.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26.06.2017 12:06 
Не в сети

Зарегистрирован: 09.03.2014 10:01
Сообщения: 72
OMEN писал(а):
Ищите проблему, отлаживайте.
Сохраните значение результата выполнения
Код:
InStr(kontr_type, "Комиссия")
в переменной и выведите его в сообщении...
Кстати, если обработка ведется в отдельной процедуре, то <Значение> уже нельзя использовать.


Вот как раз делаю через процедуру. А чем заменить <Значение>?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26.06.2017 12:42 
Не в сети

Зарегистрирован: 25.04.2012 10:09
Сообщения: 2233
Откуда: Жуковский, Московская область
Очевидно, внутреннем именем целевого поля

_________________
90% ответов на ваши вопросы находятся в руководстве, разделах "Вопросы" и "Видео" на нашем сайте.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26.06.2017 13:22 
Не в сети

Зарегистрирован: 09.03.2014 10:01
Сообщения: 72
OMEN писал(а):
Очевидно, внутреннем именем целевого поля

Внутреннее поле будет иметь значение после применения(присвоения) значения. А нужно ДО нажатия кнопки ОК, чтоб менялось значение. Ладно, попробую реализовать без процедуры


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26.06.2017 13:47 
Не в сети

Зарегистрирован: 25.04.2012 10:09
Сообщения: 2233
Откуда: Жуковский, Московская область
А до присвоения значения используются другие скобки, какие -- см. руководство

_________________
90% ответов на ваши вопросы находятся в руководстве, разделах "Вопросы" и "Видео" на нашем сайте.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB