BEST logo логотип компании БЭСТ - программы для бизнеса ПРОДАЖИ
+7 (991) 312-04-37
trade@bestnet.ru
ПОДДЕРЖКА
+7 (495) 775-66-76
consult@bestnet.ru
СКАЧАТЬ
Обновления
Дистрибутивы
Авторизация

Логин:
Пароль:
Забыли свой пароль?
Регистрация
ВАШ ВОПРОС

Доступ к Личному кабинету закрыт!
Как получить доступ?


Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 95 След.
Использование QINPUT() при выборе нескольких значений из справочника
 
Читайте в Initlist - потому как это относится к Quinput,Initlist,Qbrowse
aIn[7] - это передаваемая в справочник переменная значит она формируется до вызова справочника
В БЭСТ5 получить список накладных, отмеченных по Insert
 
Думаю вам проще возаращать плагином алиас -> номер записи и никакие массивы не нужны :)
А на последней записи стартовать отправку наружу
В БЭСТ5 получить список накладных, отмеченных по Insert
 
Перебор остановить нельзя.
Можно анализировать номер записи - в переменных памяти и в доках надо поискать.
Не помню ее наименование. Могу позже поискать
Где то здесь на форуме тоже писали когда то
И если запись не первая то сразу на завершение.
Тогда в принципе быстро проскочить должен перебор
Зависит от количества отмеченных записей :)
Использование QINPUT() при выборе нескольких значений из справочника
 
Цитата
gabov пишет:
Т.е там может быть:
1. в случае поиска только по одному полю только один элемент массива aIn[1]
2 в случае одновременномпоиске подвум иболее элементам aIn[1],aIn[2] и т.д.( например по группе и номенкл. номеру)
Я правильно Вас понял?
именно
Цитата
gabov пишет:
2.Если это так ,то как правильнозадать этот параметр?
Вообще то при вводе записи вы вводите в поле ввода значение, потом открываете справочник
При корректировке для заполнения aIn отвечает bPreGet
Цитата
gabov пишет:
3.В отладчике Бэста 4 возможно ли посмотреть значения массива aIn?
Да, вам надо всунуть вашу функцию с точкой останова в то место, где этот массив еще жив
Например в массив пред ввода или постввода или в блок кода перед прорисовкой справочника
В БЭСТ5 получить список накладных, отмеченных по Insert
 
Да именно так и создается отметка.
Только зачем - плагин итак по каждой отмеченной накладной перебором пойдет выполняться
Использование QINPUT() при выборе нескольких значений из справочника
 
Цитата
gabov пишет:
Теперь при редактировании записи при открытии справочника партнеров курсор встает на первую запись в которой не заполнено краткое наименование партнера.

А чему собственно равно значение переменной ain[7] при открытии справочника ?
Вероятно она имеет пустое значение вот и находит первую пустую запись :)
Использование QINPUT() при выборе нескольких значений из справочника
 
Цитата
gabov пишет:
о поиск работает как по коду ,так и по наименованию.Ошибок нет!!

Ну конечно !!!!! Мой косяк
aIn внутри массива непоредственно самого пункта поиска !!!!
Использование QINPUT() при выборе нескольких значений из справочника
 
Сделайте проще
перед созданием справочника _partner->(ordsetfocus("name"))
И не надо указывать тег
Использование QINPUT() при выборе нескольких значений из справочника
 
Цитата
gabov пишет:
Переменная не существует : Name

Запятые проверяйте. У меня работает в простом тестовом примере.
Единственно я уже давно запятые не считаю :) Работаю через класс makerfer (сами себе написали).
Попозже посмотрю


Код
aSortSeek:={; 
 {"- по коду ",{"Шифр "}, {'CODE'},'UPPER(aIn[7])',,,,'FULLCODE'},; 
 {"- по наименованию",{"Наименование "}, {'SHORTNAME'},'UPPER(aIn[7])',,,,'FULLNAME'}; 
 }
А вот это у вас не прокатит
asortseek создает собственный массив aIn и разумеется раз 2 строки там 2 элемента
в первой строке надо писать UPPER(aIn[1]), во второй UPPER(aIn[2])
SetTimer возможность создания таймера?
 
Если что-то получилось и можете поделиться - положите сюда пожалуйста.
Меня неоднократно спрашивали как работать с dll сторонними - все руки не доходили
А на форуме - полезно
Использование QINPUT() при выборе нескольких значений из справочника
 
Напишите тег именно так как он называется
например для номенклатурника я бы написал "mlabel"
не надо никакие номера искать- я честно так и не понял какой тег вы хотели :)
для Partner.dbf, ключевое значение которого равно UPPER(shortname) надо писать "name"
SetTimer возможность создания таймера?
 
Вообще весь БЭСт построен на обертках.
У вас в руках тот же инструмент, что и у разработчика.
Вы библиотеку только прилинковать в момент компиляции не можете.
Образцы кода с передачей ссылок я в исходниках БЭСта встречал - значит этим пользуются или пользовались
Вот они

Код
    DllCall(BadiHandle, DLL_STDCALL, 'GetCurrentDataBaseType', @r, @l)


Код
   DllCall(BadiHandle, DLL_XPPCALL, 'GetTemporaryFileName', @r, @l)
Они закрыты ремарками и судя по формату тут нет типа возвращаемого значения
Но я уверен что если преобразовать к новому стандарту - они бы заработали
разработчик просто перешел на прилинкованные библиотеки (я так думаю)






Надо пробовать - я никогда не делал
Тут только надо четко определиться какой будет формат вызова
DLL_STDCALL - не факт
SetTimer возможность создания таймера?
 
мне на самом деле не так интересно как пишут в харборе больше нужно было ссылку на описание функции в msdn из shell32, чтобы посмотреть какого типа она возвращает значение
SetTimer возможность создания таймера?
 
как загружать и выгружать библиотеку я писал выше

Код
pDll:=LoadLibrary("C:\windows\system32\shell32.dll")

Код
DLLCALL([адрес библиотеки],32,[имя функции].[тип возвращаемого значения],[параметры,])


Код
FREELibrary(pDll)  

DLL_STDCALL, - 32
все номера возвращаемых типов не помню, напишу как буду в офисе
И даже здесь не все однозначно, зависит от языка сборки - отсюда следует четко понимать что не все long для харбора long
В частности settimer по классике long но мои программисты Си рекомендовали ставить INT (3)
Использование QINPUT() при выборе нескольких значений из справочника
 
Цитата
gabov пишет:
3 Если запустить плагин ,вызвать справочник партнеров и отметить в справочнике партнеров одну или несколько записей и сохранить результат( нажав или Enter или Tab) , то если снова вызвать справочник партнеров при вводе новой записи или
при редактировании любой другой записи ,то прежние отметки INSсохраняются.
А надо бы чтобы при вызове справочника партнеровв другой записи этих отметок не было.
Возможно ли такое?
Есть блок кода, который выполняется перед построением справочника.
В этом блоке кода вам просто надо обнулить ваш массив
Использование QINPUT() при выборе нескольких значений из справочника
 
Цитата
gabov пишет:
2.Из описания MAKEREFER : "#DEFINE P_REPL 43 // Блок кода выполняемый при добавлении элемента в массив выбора (bYesArray)"
Как я его не "крутил" так и не понял для чего он нужен, и как заставить его работать? И нужен ли он вообще для данного случая?
Возможно бывает, что не "плоская" таблица и надо выбирать еще откуда то данные, предварительно их обработав
Использование QINPUT() при выборе нескольких значений из справочника
 
Цитата
gabov пишет:
Дополнительно добавил bYesNoRepl:={|x| .t.}.
Но не совсем понятно - как можно воспользовать этим параметром.
Если записатьbYesNoRepl:={|x| .f.}.то INS просто для отметки текущей записи не работает.
Может быть он нужен для проверки ,текущего значения (значений) отмечаемой записи или контроля за уже отмеченными записями.
Но как тогда в блоке кода ее проверить?
Думаю что вероятно этот блок кода управляет тем, какие записи отмечать нельзя.
Т.е. здесь должен быть не прямое логическое значение, а условия
SetTimer возможность создания таймера?
 
Вот такой примерчик состряпал.
Можете с отладчиком его покрутить и посмотреть что возвращают в xRet



Код
     Local pDll,xRet
     ALTD()

     pDll:=LoadLibrary("C:\windows\system32\user32.dll")
     xRet:= DLLCALL(pDll,32,"SetTimer",3,0,0,0,0)
     xRet:= DLLCALL(pDll , 32,"KillTimer",8,0,0)
     FREELibrary(pDll)
RETURN NILL
SetTimer возможность создания таймера?
 
ВИндовый SetTimer вызвать можно.
Но вот как определять нужные события, увязать это к окну - боюсь не получится
Даже дельфя свой таймер делали, а БЭСТ далеко не дельфя
МОжет зная задачу что-то другое можно посоветовать ?
Best Ide Не могу передать фокус ввода отключенному или невидимому окну
 
имея self формы вы всегда можете программно поменять свойства. а после этого делать то, что задумали :)
Окна в БЭСТе для программистов "дубовые" потому как сложно подобный инструмент создавать
но их возможости огромны.
Еще не было ничего из того. что мы могли сделать в Mайкрософт Навижен и не могли бы тоже самое повторить это в БЭСТе
Другое дело, что надо вокруг этого "шаманить"
на БЭСТ-5 не видит принтер canon mf4410, на БЭСТ-5 не видит принтер canon mf4410, что делать
 
БЭСТ "видит" все принтера, которые "видит" любое приложение под виндой.
С одним исключением. При старте БЭСТа принтер уже должен быть "виден"
Если же сеан БЭСТа был запущен а принтер подключили позже к USB (например).
То сеанс БЭСТа надо перезапустить
Как правильно написать плагин на событие "Запись документа" в БЭСТ5
 
Цитата
Сергей Иваницкий пишет:
Я просто хочу понять
Цитата

Плагин “Вход в документ” выполняется сразу после того, как отобразится форма с документом и инициализируются все рабочие переменные, то есть непосредственно перед началом ввода/редактирования данных. Существующая переменная nApp информирует о режиме вызова: nApp=1 – режим редактирования, nApp=3 – ввод данных в новый документ. Если функция возвращает 0 (или .F.), то следующий вход в документ невозможен.
из выше сказанного я не могу войти в документ в следующий раз, а не при текущем открытии?
Как мне этими событиями пользоваться, я не смог нормально воспользоваться ни одним из них.

С событием на вход "косяк" на мой взгляд имеет место
Единственно что переменная nApp несколько устаревшее
Документы становятся сложнее
Как правильно написать плагин на событие "Запись документа" в БЭСТ5
 
Цитата
Сергей Иваницкий пишет:
Я то думал, что разработчики пишут свои функции чтобы облегчить работу тем кто ими пользуется, оказывается это не так.

Функции оставляйте в прошлом пожалуйста
Давайте стараться оперировать классами и методами
Именно объекты облегчают работу тем, кто ими пользуется
и последнее - разработчики пишут функции не для пользователей !!!
неумение ими пользоваться и незнания элементов программирования - не их зона ответственности
Для своих программистов они существенно облегчили работу новыми изменениями
Как правильно написать плагин на событие "Запись документа" в БЭСТ5
 
Цитата
Сергей Иваницкий пишет:
Теперь мне необходимо чтобы ранее созданный документ при некоторых условиях нельзя было редактировать, в БЭСТЕ4 я в событии "Вход в документ" возвращал .F. и документ нельзя было изменить, в бэсте5 оказывается нельзя изменить только шапку документа, и как мне быть?

Вход в документ отвечает не за изменение а за вход в документ.
Вариантов развития несколько:
1.Обращайтесь в службу поддержки с вопросом запретить вход в принципе при событии возвращаемом .F.
По логике вещей так должно быть.
Только выражайтесь точно - вход это вход, а запись - это запись
А то у Вас тема про одно . а говорите про другое
2.Объявляете свою public переменную , управляете ее значениями во входе -.T. или .F.
и если она .F. - то в событии на запись сразу возвращать F.
Как правильно написать плагин на событие "Запись документа" в БЭСТ5
 
Цитата
Сергей Иваницкий пишет:
Зачем разработчик сует в сопроводительную документацию описание этой функции Initlist() могли бы написать про ограничения у меня с ними нет пока тесных отношений и как она там работает мне не ведомо.

Нет никаких ограничений !!!!
Это все равно что писать разработчику почему вы не предупреждаете что в заблокированную запись значения не вносятся...
Это область знания языка программирования.

Разработчик предоставил Вам исходный код ?
предоставил.
Там есть описание класса Initlist ?
Есть
Разработчик сделал удобным чтобы события могли быть в любом инитлист и не надо было специально под отдельный экран просить
Сделал
Должен программист уметь думать над тем что это может дать, изменить и т.п. ?
должен, потому как это не на пользователя рассчитано. а на программиста
Вам говорят что программы абсолютно разные ?
Говорят
Говорят что плагины "в лоб" не перейдут?
Говорят

Все остальное. извините это упрямство и его результаты.
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 95 След.