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

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

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


Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: Пред. 1 2 3 4 5 6 След.
RSS
QInput для отчета
 
уберите savescreen и restscreen - они не нужны (SaveSet решает этот Вопрос)
DBPUSH и DBPOP тоже не нужны тут
Изменено: nordk - 28.08.2008 17:04:14
 
Цитата
Сергей Иваницкий пишет:
Урезал до предела, а все равно вылетает в меню, а в реестр работает.


Тут еще много чего можно убрать :lol: Я бы последовательно убирал aRef,aPict,myWhen,aValid1,bScrInit_DT... Возможно ошибка в MAKEREFER. Попробуйте убрать aRef и MAKEREFER

Возможно ошибка в запятых. Один из вариантов выйти на такую ошибку это использовать SayAndWait(). Скажем пишите aValid1 := {SayAndWait('Test')} и при переходе с первой строки должны получить сообщение 'Test'

А можно увитеть скриншот ошибки?
Изменено: Денис - 28.08.2008 17:12:58
 
я писал что пробовал вообще без доп параметров.
Код
unction uActSver
Local scr, aSetKey,aSet
Private Sch:='621       ',Shifr:='051379'//'000001'
Private DD1:=CTOD("01.01."+Left(DTOS(Date()),4)),DD2:=Date()
Private aHeads, aRow:=7, aCol :=7

aSet:=SaveSet()

aHeads :={{"Счет:             ","Sch"},;
          {"Шифр анал.учета : ","Shifr"},;
          {"Дата начала.:     ","DD1"},;
          {"Дата конца:       ","DD2"}}

 Netuse("Main1",LoadPath() + "Main.dbf")
Main1->(Qinput(aRow,aCol,aRow+5,aCol+50,aHeads,1,,,,,,,,,'RESTOFF'))
altd()
SayAndWait(Sch +Shifr)
   Main1->(DBCloseArea())

RestSet(aSet)

Return nil

результат тотже,
Пробовал поставить
Код
aValid1:={{||IIF(aLastIn[1] <> aIn[1],aIn[2]:='      ',),IIF(aLastIn[1] <> aIn[1],DT_str:=Space(20),),SayScreen(DT_str,aRow + 2,aCol+ 30,'B/BG'),aLastIn[1] := aIn[1],.t.},,,{||SayAndWait('Test4'),.t.}}

при изменении в любом 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"
 
Цитата
Сергей Иваницкий пишет:
Цитата Александр Титов пишет:

Цитата

Добрый день!

Поставьте перед вызовом Qinput

ShowParent()

Если проблемы останутся, выложите или пришлите мне на titov@bestnet.ru код и описание проблемы. А то тут столько написано, что концов не найдешь...

я попробовал - пишет

"Uncnown or unregistred function SHOWPARENT"

Касается только Б5.
 
Взял Ваш код вставил в новый prg, откомилировал, по ctrl-f5 запустил в АРМ из Главной книги - работает...
Давайте уточнять где и как я его должен запустить чтобы выйти на Вашу ошибку ?
 
Спасибо Константин, что озаботились проблемой.
Я уже писал что в реестре хоз. операций все работает отлично, а вот в меню -нет,
тоесть если ничего не менять (пощелкать Enter-ом)то все работает, а если изменить любое поле то выпадает ошибка "Неверный аргумент"
Меню сделано так:
в файле menu.dbf добавил запись :
MenuNomer -12
PromptNome -068
MenuPrompt - 'Акт сверки'
MenuMesseg - 'Акт сверки'
MenuBlock - {|| HFileEval('uActsver.hrb',{})}
у меня появился пункт меню
2 Общесистемная отчетность -> Акт сверки
Вот из этого пункта и не работает, может окружения какого-то не хватает, объявить там что нибудь...
 
Вместо 'RESTOFF' напишите 'REFER',
либо поля ввода делайте через координаты
 
Дело было вот в чем.
Все у вас из меню отрабатывало и доходило до вот такого кода в 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 сумма разбивается и ее в акте надо объединять - по этому сильно сомневаюсь что мне поможет что-то стандартное. Глянул на описание - круто у меня все скромнее да и с названиями действий у меня некоторая кривизна, но в общем бухов устраивает. хотите исходник? дам как есть - в реестре работает.
 
Все получилось равотает, использовал:
Код
bScrInit_DT:={||DISPBOX(aRow,aCol,aRow+5,aCol+50,chr(201)+chr(205)+chr(187)+chr(186)+chr(188)+chr(205)+chr(200)+chr(186)+' ',"N/BG") ,;
                 SayScreen('[Данные для акта сверки]',aRow,aCol+ 5,'N/BG'),;
                 SayScreen(DT_str,aRow + 2,aCol+ 30,'B/BG'),;
                 SayScreen("Счет:             ",aRow+1,aCol+ 2,'N/BG'),;
                 SayScreen("Шифр анал.учета : ",aRow+2,aCol+ 2,'N/BG'),;
                 SayScreen("Дата начала.:     ",aRow+3,aCol+ 2,'N/BG'),;
                 SayScreen("Дата конца:       ",aRow+4,aCol+ 2,'N/BG'), 1}

aHeads :={{{aRow+1,aCol+ 20},"Sch"},;
          {{aRow+2,aCol+ 20},"Shifr"},;
          {{aRow+3,aCol+ 20},"DD1"},;
          {{aRow+4,aCol+ 20},"DD2"}}

Всем спасибо.
Есть другие Вопросы но не по теме, Новую тему сделаю.
 
Цитата
Сергей Иваницкий пишет:
выкидывать проводки типа ДТ621-КТ622 чтобы не травмировать клиентов лишней(не нужной!)информацией и поступление тоже часто бывает на 621 и 622 сумма разбивается и ее в акте надо объединять


Да, та программа таких вещей не делает.

Цитата
Сергей Иваницкий пишет:
хотите исходник? дам как есть - в реестре работает.


Спасибо! Но пока не надо :lol:
 
Цитата
nordk пишет:
Цитата FUNCTION QInput(nTop, nLeft, nBottom, nRight, aHeads,;
;// 6 7 8 9 10 11 12 13 14 15
nAppp, aRef, aPict, aWhen, aValid, nUnique, bScrInit, bPost, cFltr0, lSpec,;
;// 16 17 18 19 20 21 22 23
aGetBlock, bScrPost, cScope, bPreGet, bPostGet, nTag, lNoAppend, lNoRestScreen,;
;// 24 25 26 27 28 29 30
lGetBlock, cMessSave, bRestSave, bPostRead, lSubIndex, bSayHead, bKeyHead,;
;// 31 32 33 34 35 36 37
aActionKeys, aGetExtTypes, aGetContinue, aTab,lNoScopInFilter, nAuto, bAutoSetValBlock;
)


В QInput не вижу параметра, который отвечает за цвет поля ввода. Есть такой?
 
Как вывести подсказку в строку состояния?

Когда привязываю MakeRefer к строке, то в строке состояния появляется подсказка: "F2:Справочник". Хочу сделать аналогичную для своего вызова.

Цель вызвать диалог файла. По аналогии с B_Period пишу:
Код
   Public B_PopFile  := {; 
                          |oGet|; 
                          SetKey(K_F2, {|| aIn[3] := PopFile(,cPath,cMask, cTitle,cFormats)}),; 
;//                          BHelpPush(),; //Что делает эта функция?
                          ScrTitul(24, "F2:Диалог выбора файла"),; 
                          GetReader(oGet),; 
                          SetKey(K_F1, NIL); 
;//                          BHelpPop(); //Что делает эта функция?
                       }
  aRef := {"s_Partner",,B_PopFile}


P.S. Сейчас обратил Внимание, что в ЗП при выборе периода подсказка "+/-:Период +:Ввод" не появляется
 
Цитата
Денис пишет:

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

нет такого
 
Про подсказку не могу понять Вопрос.
Можно для меня чуть подробнее пояснить ?
 
Цитата
nordk пишет:
Про подсказку не могу понять Вопрос.


Как вывести подсказку в строку состояние для строк диалога (сделаного с помощью QInput) к которым не привязан справочник?
Изменено: Денис - 15.10.2008 12:42:02
 
Ну например на aWhen конкретного поля подвесить вывод строки в нужном месте на экран
 
Какой командой можно выводить данные (подсказку) в "строку состояния"?

P.S. "Строка состояния" - это самая нижняя строка в БЭСТ5 3.4. Там выводится имя текущего пользователя, название предприятия, путь к нему и т.д. Видимость "строки состояния" определяется в меню Вид - Настройка вида на закладке "Инструментальные панели".
 
В приведенном Вами выше коде обратите Внимание на ScrTitul()
 
Цитата
nordk пишет:
В приведенном Вами выше коде обратите Внимание на ScrTitul()


Дело в том, что ScrTitul(24, "F2:Диалог выбора файла") ничего не выводит. Эта функция может вывести данные в другую строку (к примеру, в строку 22). Если бы она выводила данные в "Строку состояния", то и Вопроса бы не было, т.к. выше приведенный код выводил бы в нужное место нужную информацию
 
Цитата
Денис пишет:
Цитата nordk пишет:

В приведенном Вами выше коде обратите Внимание на ScrTitul()



Дело в том, что ScrTitul(24, "F2:Диалог выбора файла") ничего не выводит. Эта функция может вывести данные в другую строку (к примеру, в строку 22). Если бы она выводила данные в "Строку состояния", то и Вопроса бы не было, т.к. выше приведенный код выводил бы в нужное место нужную информацию

Напишите:
UpdateStatusText(CurrentParent():statusText[2] := "F2:Выбор файла")
 
Здравствуйте коллеги
Есть Вопрос как мне в qinput(initlist) вставить шаблон для телефона по типу как в справочнике партнеров. Собственно на этот справочник я и написал плагин который собой подменяет обычный реестр и фильтрует клиентов по менеджерам (дополнительные поля) Вот теперь надо бы дать возможность редактирования информации, хотелось бы чтобы поле телефон выглядело и редактировалось, а главное сохрянялось как в БЭСТЕ чтобы через стандартное окно потом смотреть можно было.
написал шаблон
Код
   dHeads:={{"Шифр.....................: ","Code"},;
            {"Наименование.............: ","ShortName"},;
            {"Отсрочка.................: ","uOtsr"},;
            {"Время в пути.............: ","uPass"},;
            {"Календарные/рабочие дни..: ","uRD"},;
            {"№ договора...............: ","uNdoc"},;
            {"Дата окончания договора..: ","uDataOk"},;
            {"Телефон 1................: ","Telefon1"},;
            {"Телефон 2................: ","Telefon1"},;
            {"Адрес юридический........: ","Adress"},;
            {"Адрес фактический........: ","Adress2"},;
           {"Полное название..........: ","OrgName"}}
dPict :={,,,,,,,'(99999)999-99-99',,'@S40','@S40','@S40'}
   dBlockCols:={;
        {{||Field->Code},0},;
        {{||Field->ShortName},7},;
        {{||Left(mPrim->Name,18)},33},;
        {{||Str(Field->uOtsr,4,0)},52},;
        {{||Str(Field->uPass,4,0)},57},;
        {{||Iif(Field->uRD,'Рабочие    ','Календарные')},62};
        }
F8:Удаление F10:Сохранить Esc:выход")
   Partner->(InitList(dTop,dBot,dColHead,dBlockCols,dCurProc,dHeads,dRef,dPict , , , , , , , , , ,dGetBlock, , , , , , , , , , , ))


а он телефопы криво выводит.
Или надо все руками рисовать?
 
Добрый день.
Для того, чтобы телефон выводился правильно, надо перед редактированием привести его к виду "(99999)999-99-99",
то есть, добавить скобки и чёрточки. Вместо имени поля используйте private-переменную. В bPreGet инициализируйте переменную значением поля по заданному шаблону. В bPost сохраните изменённое значение в базу.
С уважением, Новиков Алексей.
Страницы: Пред. 1 2 3 4 5 6 След.
Читают тему (гостей: 1)