Сергей Иваницкий пишет:
Урезал до предела, а все равно вылетает в меню, а в реестр работает.
Тут еще много чего можно убрать Я бы последовательно убирал aRef,aPict,myWhen,aValid1,bScrInit_DT... Возможно ошибка в MAKEREFER. Попробуйте убрать aRef и MAKEREFER
Возможно ошибка в запятых. Один из вариантов выйти на такую ошибку это использовать SayAndWait(). Скажем пишите aValid1 := {SayAndWait('Test')} и при переходе с первой строки должны получить сообщение 'Test'
при изменении в любом Get'e при нажатии Enter на последнем пункте сначала появляется сообщение 'Test4' а потом вылетает, хотел подцепить скриншот но не пойму как
да, может я меню организовал не правильно?
в файле menu.dbf :
MenuNomer -12
PromptNome -068
MenuPrompt - 'Акт сверки'
MenuMesseg - 'Акт сверки'
MenuBlock - {|| HFileEval('uActsver.hrb',{})}
Александр Титов пишет:
Цитата
Добрый день!
Поставьте перед вызовом Qinput
ShowParent()
Если проблемы останутся, выложите или пришлите мне на titov@bestnet.ru код и описание проблемы. А то тут столько написано, что концов не найдешь...
я попробовал - пишет
"Uncnown or unregistred function SHOWPARENT"
Взял Ваш код вставил в новый prg, откомилировал, по ctrl-f5 запустил в АРМ из Главной книги - работает...
Давайте уточнять где и как я его должен запустить чтобы выйти на Вашу ошибку ?
Спасибо Константин, что озаботились проблемой.
Я уже писал что в реестре хоз. операций все работает отлично, а вот в меню -нет,
тоесть если ничего не менять (пощелкать Enter-ом)то все работает, а если изменить любое поле то выпадает ошибка "Неверный аргумент"
Меню сделано так:
в файле menu.dbf добавил запись :
MenuNomer -12
PromptNome -068
MenuPrompt - 'Акт сверки'
MenuMesseg - 'Акт сверки'
MenuBlock - {|| HFileEval('uActsver.hrb',{})}
у меня появился пункт меню
2 Общесистемная отчетность -> Акт сверки
Вот из этого пункта и не работает, может окружения какого-то не хватает, объявить там что нибудь...
Дело было вот в чем.
Все у вас из меню отрабатывало и доходило до вот такого кода в QINPUT()
Код
IF (!lRefer .AND. VALTYPE(aHeads[1,1])!='A'.AND.nScrInit!=4).OR.nScrInit=2
IF (LEN(cIndexKey) > 0)
IF (nApp>=2.OR.xIndexKey != &(cIndexKey))
QIni(nScroll,2) //nMode=2 - Обновить все строки
ELSEIF (LASTKEY()!=K_PGDN .AND. LASTKEY()!=K_PGUP)
QIni(nScroll,IF(lbSayHead,2,3)) // nMode=3 - Обновить одну строку
ENDIF
ELSEIF (LASTKEY()!=K_PGDN .AND. LASTKEY()!=K_PGUP)
QIni(nScroll,IF(lbSayHead,2,3))
ENDIF
ELSEIF (lRefer)
lMore:=.F.
ENDIF
Ошибку Вам возвращала функция QINI() - см. описание
А коротко она пыталась сделать обновление строк реестра, которого
нет - InItList() вы ведь не рисовали !!!
Теперь посмотрим внимательно вот сюда
Код
IF (!lRefer .AND. VALTYPE(aHeads[1,1])!='A'.AND.nScrInit!=4).OR.nScrInit=2
И обнаружим что обойти ошибку можно если :
lRefer - .T. (переменная REFER)
Либо в aHeads для полей GET мы применяем координаты (VALTYPE(aHeads[1,1])!='A')
Либо возвращаем из bScrInit что экран будет нарисован самостоятельно
(nScrInit)
доведен до разработчика - получено обещание рассмотреть возможность модификации QINPUT() в ближайшем пакете
Чисто на заметку. Одним из минусов применения QInput при nApp = 1 для сбора данных для отчета является не возможность применения Page Down для окончания ввода данных (такой привычной и удобной клавиши).
И к Сергею. Похоже вы хотите нарисовать Акт сверки. А чем не устраивает программа "Акт сверки"?
Денис пишет:
Чисто на заметку. Одним из минусов применения QInput при nApp = 1 для сбора данных для отчета является не возможность применения Page Down для окончания ввода данных (такой привычной и удобной клавиши).
И к Сергею. Похоже вы хотите нарисовать Акт сверки. А чем не устраивает программа "Акт сверки" ?
Я не видел этой программы, но она мне все равно не подойдет наверное.
Дело вот в чем, я эту функцию написал еще в прошлом году, только у меня данные для акта формировались с помощью Dialog(), и шифр клиента приходилось вводить вручную - не удобно. Потом я научился справочники делать и разделил диалог на 3 части - тоже както криво, ну и теперь решил сдалать покрасивее, да вот на грабли наступил. А бухи уже привыкли что акт лежит в отдельном меню, да и по Ctrl-F5 у меня в реестре уже несколько функций лежит.
А не подойдет, я думаю вот почему, у нас 62 счет разделен на 621 и 622 при чем на 621 - только дебетовая часть, а на 622- только кредитовая,(так записано в учетной политике на фига такой гемор я не понял до сих пор) по этому если нужен акт сверки с покупателями то надо шерстить оба счета и выкидывать проводки типа ДТ621-КТ622 чтобы не травмировать клиентов лишней(не нужной!)информацией и поступление тоже часто бывает на 621 и 622 сумма разбивается и ее в акте надо объединять - по этому сильно сомневаюсь что мне поможет что-то стандартное. Глянул на описание - круто у меня все скромнее да и с названиями действий у меня некоторая кривизна, но в общем бухов устраивает. хотите исходник? дам как есть - в реестре работает.
Сергей Иваницкий пишет:
выкидывать проводки типа ДТ621-КТ622 чтобы не травмировать клиентов лишней(не нужной!)информацией и поступление тоже часто бывает на 621 и 622 сумма разбивается и ее в акте надо объединять
Да, та программа таких вещей не делает.
Цитата
Сергей Иваницкий пишет:
хотите исходник? дам как есть - в реестре работает.
Какой командой можно выводить данные (подсказку) в "строку состояния"?
P.S. "Строка состояния" - это самая нижняя строка в БЭСТ5 3.4. Там выводится имя текущего пользователя, название предприятия, путь к нему и т.д. Видимость "строки состояния" определяется в меню Вид - Настройка вида на закладке "Инструментальные панели".
nordk пишет:
В приведенном Вами выше коде обратите на ScrTitul()
Дело в том, что ScrTitul(24, "F2:Диалог выбора файла") ничего не выводит. Эта функция может вывести данные в другую строку (к примеру, в строку 22). Если бы она выводила данные в "Строку состояния", то и а бы не было, т.к. выше приведенный код выводил бы в нужное место нужную информацию
В приведенном Вами выше коде обратите на ScrTitul()
Дело в том, что ScrTitul(24, "F2:Диалог выбора файла") ничего не выводит. Эта функция может вывести данные в другую строку (к примеру, в строку 22). Если бы она выводила данные в "Строку состояния", то и а бы не было, т.к. выше приведенный код выводил бы в нужное место нужную информацию
Здравствуйте коллеги
Есть как мне в qinput(initlist) вставить шаблон для телефона по типу как в справочнике партнеров. Собственно на этот справочник я и написал плагин который собой подменяет обычный реестр и фильтрует клиентов по менеджерам (дополнительные поля) Вот теперь надо бы дать возможность редактирования информации, хотелось бы чтобы поле телефон выглядело и редактировалось, а главное сохрянялось как в БЭСТЕ чтобы через стандартное окно потом смотреть можно было.
написал шаблон
Добрый день.
Для того, чтобы телефон выводился правильно, надо перед редактированием привести его к виду "(99999)999-99-99",
то есть, добавить скобки и чёрточки. Вместо имени поля используйте private-переменную. В bPreGet инициализируйте переменную значением поля по заданному шаблону. В bPost сохраните изменённое значение в базу.