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

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

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




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
СообщениеДобавлено: 18.02.2020 22:30 
Не в сети

Зарегистрирован: 10.04.2015 13:32
Сообщения: 159
Добрый день!

Давно хотел уточнить работу данных команд SelectedIDs SelectedRecords
, но никак не доходили руки.


Вот возникла конкретная потребность выполнять те или иные действия для выбранных записей через CTRL или SHIFT.


Может есть у кого-нибудь примерный код?

Или как вариант пример кода: это изменить выбранные записи через CTRL с логическим полем ДА/НЕТ и присвоить им значение ДА.

Заранее большое спасибо откликнувшимся


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

Зарегистрирован: 10.04.2015 13:32
Сообщения: 159
Неужели никто не выбирает записи через CTRL и не запускает на них процедуру или vbs?


Может есть хоть какие-то примеры использования данных команд?


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

Зарегистрирован: 25.04.2012 10:09
Сообщения: 2233
Откуда: Жуковский, Московская область
Вступайте в Клуб разработчиков простого софта - получайте ответы на форуме в приоритетном режиме и пользуйтесь другими "сливками" клубного членства!

Клуб разработчиков простого софта - ввв.simple-soft.ru/Updates.htm

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


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

Зарегистрирован: 10.04.2015 13:32
Сообщения: 159
OMEN писал(а):
Вступайте в Клуб разработчиков простого софта - получайте ответы на форуме в приоритетном режиме и пользуйтесь другими "сливками" клубного членства!

Клуб разработчиков простого софта - ввв.simple-soft.ru/Updates.htm



Так в клубе разработчиков с 2014 года)))


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

Зарегистрирован: 15.03.2016 07:21
Сообщения: 104
Откуда: г. Хабаровск
maxtarget писал(а):
Давно хотел уточнить работу данных команд SelectedIDs SelectedRecords.
Может есть у кого-нибудь примерный код?
Для использования SelectedIDs нужно разобрать строку на отдельные ID, позиционировать фокус на каждой записи по полученному ID, после чего можно использовать желаемые функции.
Конечно, чтобы добиться результата, нужно было немножко поэкспериментировать.
Для разбора строки можно воспользоваться VBS функцией Split(). Я же сделал так:
Код:
Dim sLine, iChrNum, iRecordID
If IsNull(<SelectedIDs>) Then
   MsgBox "Записи не выбраны"
Else
   sLine = Trim(<SelectedIDs>)
   Do While Len(sLine) > 0
      iChrNum   = InStr(1, sLine, ",")
      If iChrNum > 0 Then
         iRecordID = Mid(sLine, 1, iChrNum - 1)
         iRecordID = Trim(iRecordID)
         sLine     = Mid(sLine, iChrNum + 1)
         sLine     = Trim(sLine)
      Else
         iRecordID = Trim(sLine)
         sLine     = ""
      End If
      GoToRecord(iRecordID)
      MsgBox iRecordID
   Loop
End If
Работает в "Учёт клиентов" 2.1085 и "Prostoysoft Tables" 3.30


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

Зарегистрирован: 10.04.2015 13:32
Сообщения: 159
Огромное спасибо ipLVL

Практически все работает))).

Но нашел интересную закономерность: если ID = 11, то выдается вот такая ошибка (ниже скрин)


Проверил работу на Учете клиентов от 21.02.2020


Вложения:
Цикл.png
Цикл.png [ 214 КБ | Просмотров: 36125 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24.02.2020 17:35 
Не в сети

Зарегистрирован: 15.03.2016 07:21
Сообщения: 104
Откуда: г. Хабаровск
maxtarget писал(а):
если ID = 11, то выдается вот такая ошибка
Очевидно, ошибку нужно искать в этой записи и связанных с ней. Непонятно, к чему относится "FROM tblContacts" перед WHERE. Если это убрать, то, может быть, ошибка исчезнет?


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

Зарегистрирован: 10.04.2015 13:32
Сообщения: 159
В этом то и вопрос)))

Пробовал на разных таблицах и как только попадается ID =11, то сразу вылазят какие-то 777

С откуда и почему они берутся, не понятно(


Выше написанный вами код не менял.
Вставлял в разные таблицы без изменений


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

Зарегистрирован: 15.03.2016 07:21
Сообщения: 104
Откуда: г. Хабаровск
maxtarget писал(а):
как только попадается ID =11, то сразу вылазят какие-то 777
Полтергейст :).
Я попробовал у себя выделить запись с ID=11, ничего подобного не произошло.


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

Зарегистрирован: 10.04.2015 13:32
Сообщения: 159
ipLVL писал(а):
maxtarget писал(а):
как только попадается ID =11, то сразу вылазят какие-то 777
Полтергейст :).
Я попробовал у себя выделить запись с ID=11, ничего подобного не произошло.



Нашел полтергейста))))

На тестовой базе процедура называлась 11

И почему-то в этом скрипте запускалась))))


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

Зарегистрирован: 10.04.2015 13:32
Сообщения: 159
Тестировал дальше команду SelectedIDs и обнаружил, что она работает только к главной таблице.

Может как-то по-другому нужно ее писать, чтобы выбирались выделенные записи из подчиненной таблицы?

Ниже скрин


Вложения:
SelID.png
SelID.png [ 127.91 КБ | Просмотров: 25806 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23.03.2021 16:08 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Логически додумываем, ставя себя на место разработчика (А всегда нужно ставить себя на место другого человека)
и пробуем использовать "SelectedSubIDs" :)

А еще можно так
SelectedRecords
SelectedRecords("OrderModel")
и моменты для доработки есть всегда, о чем можно попросить.

_________________
2B OR NOT 2B = TRUE


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

Зарегистрирован: 10.04.2015 13:32
Сообщения: 159
Придумал вот такой вариант как временное решение:


Dim sLine, iChrNum, iRecordID, iID
iID = InputFromTable("select * FROM tblProdDog WHERE DogID = <DogID>")
MsgBox iID
If IsNull(iID) Then
MsgBox "Записи не выбраны"
Else
sLine = Trim(iID)
Do While Len(sLine) > 0
iChrNum = InStr(1, sLine, ",")
If iChrNum > 0 Then
iRecordID = Mid(sLine, 1, iChrNum - 1)
iRecordID = Trim(iRecordID)
sLine = Mid(sLine, iChrNum + 1)
sLine = Trim(sLine)
Else
iRecordID = Trim(sLine)
sLine = ""
End If
MsgBox iRecordID
Loop
End If
RefreshActiveTable


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

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


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

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


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

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