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 для отчета
 
1.Вопрос был про aHeads - вот и посмотрите в описании примеры к aHeads.Там все есть.
2.Нет никакой разницы откуда вы запускаете Qinput есть разница какими переменными вы пользуетесь. У Вас пример упрощенный насколько я понял тоже пошел и проблемы в понимании прорисовки экрана: Вы пытаетесь
рисовать экран самостоятельно и удивляететсь почему он при том не хочет рисовать штатно...
3.Подсказать в Вашем понимании в Вашем коде найти ошибки...т.е. по сути сидеть и работать над этим кодом.
Буду по свободнее - посмотрю, а пока могу только направлять.
 
Цитата
nordk пишет:
Вопрос был про aHeads - вот и посмотрите в описании примеры к aHeads.Там все есть.


Вот мой aHeads:
Код
aHeads := {{{ 3,28},'ucPeriod',"1","2","0"},; 
             {{ 4,28},'ucStruct'    },; 
             {{5,28}, 'nEmptyStr'}; 
            }


Вот из aHeads из описания к InitList:
Код
aInputHeads:={;  
 
 {{4,5},'Grup'},;  
 
 {{4,25},'NNum'},;  
 
 {{5,5},'Kol0'},;  
 
 {{5,25},'Cena0'},;  
 
 {{6,5},'Sklad'},;  
 
 {{6,25},'Mesto'};  
 
 }  


Не вижу принципиальной разницы
 
Цитата
nordk пишет:
2.Нет никакой разницы откуда вы запускаете Qinput есть разница какими переменными вы пользуетесь. У Вас пример упрощенный насколько я понял тоже пошел


У меня пример проходит, если bScrInit не возвращает 2 или 3. А это означает, что рисовать свою картинку. Значит я не могу изменить заголовок диалогового окна.

А не использую переменных БЭСТ-а! Я все переменные сам определяю!

Цитата
nordk пишет:
Вы пытаетесьрисовать экран самостоятельно и удивляететсь почему он при том не хочет рисовать штатно...


В файле SPR_PART.PRG из Инструментарий разработчика БЭСТ-4+ из Справочника пользователя БЭСТ тоже экран прорисовывают. И я экран прорисовываю без проблем при запуске из реестра (из любого реестра!)
 
Вы можете выложить код QInput который используется в Б5 3.4 СП9?

Вы можете привести пример, который будет работать из главного меню. Пример в котором в заголовке диалогового окна будет произвольная фраза, а не фраза Корректировка"?

Цитата

nordk пишет:
Qinput - в моих решениях я с ним проблем не испытваю...

Вы можете выложить bdll c функцией, которая использует QInput?
 
Я могу выложить - но если Вы не хотите сами - то ждите.
На след. неделе положу

Насчет самостоятельной работы - последний раз говорю посмотрите не в исх. код какого-то prg а в описание Initlist по переменной aHeads - уберите координаты и увидите как строится экран запроса.
Также посмотрите старый форум. Урок по QINPUT
 
Насчет заголовка фраза будет типовая. В противном случае когда рисуете сами bScrInit не должен возвращать NIL,2 и 3 ни в коему случае !!!
Не надо ехать направо и рулить налево
 
И наконец если Вам так труден QINPUT попробуйте просто DIALOG()...Возможно он решит Ваш Вопрос.
 
Цитата
nordk пишет:
Насчет заголовка фраза будет типовая.


С типовой фраза без прорисовки своей прорисовки экрана у меня работает.

Цитата
nordk пишет:
В противном случае когда рисуете сами bScrInit не должен возвращать NIL,2 и 3 ни в коему случае !!!


Покажите мне пример со своей прорисовкой, но чтобы bScrInit возвращал не 2 и не 3

Цитата
nordk пишет:
И наконец если Вам так труден QINPUT попробуйте просто DIALOG()...


В Dialog() не поддерживает не сколько справочников. При использование справочников в Dialog() может быть только одна строчка. Это не решает моих задач. Раньше обходился с помощью Dialog().

Видимо надо переходить на "@ ... GET ..."
 
Вы можете выложить код QInput который используется в Б5 3.4 СП9?
 
Выше я все написал
 
Цитата
Денис пишет:
К сожалению мне ни кто не может подсказать, как надо изменить второй пример из сообщения #44, чтобы он заработал из главного меню. Пока я слоняюсь к тому, что проблема в БЭСТ-е. Думаю, что ее можно как-то обойти. Пока я не видел ни одного работоспособного из главного меню примера, где bScrInit возвращает NIL

P.S. К сожалению меня начинает поджимать время. В понедельник надо показывать...

Добрый день!
Поставьте перед вызовом Qinput
ShowParent()
Если проблемы останутся, выложите или пришлите мне на titov@bestnet.ru код и описание проблемы. А то тут столько написано, что концов не найдешь...
 
Цитата
Александр Титов пишет:
Поставьте перед вызовом Qinput
ShowParent()


Спасибо! Проблема решена :happiness:

На будущие подскажите, пожалуйста, есть еще известные отличия написания плагинов запускаемых из отчетов и плагинов запускаемых из главного меню?
Изменено: Денис - 08.08.2008 16:02:45
 
И последний пока Вопрос. Я в плагине который, который запускал из реестра лицевых счетов использую переменные БЭСТ-а B_Period и cAPeriod, которые не смогу использовать при запуске из главного меню. С cAPeriod проблем нет. Эти данные возьму из salary\setting.dbf->S_Period.

А как задана в БЭСТ-е в зарплате B_Period?
 
Цитата
Денис пишет:
Цитата Александр Титов пишет:

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

ShowParent()



Спасибо! Проблема решена



На будущие подскажите, пожалуйста, есть еще известные отличия написания плагинов запускаемых из отчетов и плагинов запускаемых из главного меню?


Все отличия мы постепенно искореняем. В частности, в SP10 учтем и описанную ситуацию, чтобы не обязательно было писать ShowParent() перед QInput
 
Цитата
Денис пишет:
И последний пока Вопрос. Я в плагине который, который запускал из реестра лицевых счетов использую переменные БЭСТ-а B_Period и cAPeriod, которые не смогу использовать при запуске из главного меню. С cAPeriod проблем нет. Эти данные возьму из salary\setting.dbf->S_Period.



А как задана в БЭСТ-е в зарплате B_Period?

b_period это public переменная блок кода для ввода даты

Код
   Public bCPer     := {;
                          |d, o|;
                          d := If(LastKey() == 43, 1, -1),;
                          o := GetActive(),;
                          If(!Empty(o:VarGet()),,;
                           (;
                              o:VarPut(M->S_PERIOD),;
                              o:UpdateBuffer();
                           )),;
                          o:VarPut(NewPeriod(o:Buffer, d)),;
                          o:UpdateBuffer();
                       }

   Public B_Period  := {;
                          |oGet|;
                          SetKey(43, M->bCPer),;
                          SetKey(45, M->bCPer),;
                          BHelpPush(),;
                          ScrTitul(24, "+/-:Период +:Ввод"),;
                          GetReader(oGet),;
                          SetKey(43, NIL),;
                          SetKey(45, NIL),;
                          BHelpPop();
                       }


 
Цитата
Александр Титов пишет:
b_period это public переменная блок кода для ввода даты


При запуске или при работе плагина из главного меню при использовании b_period программа вываливается на функциях BHelpPush(), BHelpPop(), NewPeriod(). Их как-то можно подгрузить из salary.bdll?

P.S. Вопрос не срочный.
 
Цитата
Денис пишет:
Цитата Александр Титов пишет:

b_period это public переменная блок кода для ввода даты



При запуске или при работе плагина из главного меню при использовании b_period программа вываливается на функциях BHelpPush(), BHelpPop(), NewPeriod(). Их как-то можно подгрузить из salary.bdll?
P.S. не срочный.

Да, в этом случае, поскольку salary.bdll не загружена, следует написать
LoadLibrary("salary.bdll")
 
Цитата
Александр Титов пишет:
Да, в этом случае, поскольку salary.bdll не загружена, следует написать LoadLibrary("salary.bdll")


Все работает :happiness: :happiness:

В конце программы salary.bdll надо выгружать? Если уже загружен salary.bdll, а я повторно ее загружу, то будут негативные последствия? Если да, то как проверить загружен bdll или нет?
Изменено: Денис - 08.08.2008 17:15:38
 
Цитата
Денис пишет:
Цитата Александр Титов пишет:

Да, в этом случае, поскольку salary.bdll не загружена, следует написать LoadLibrary("salary.bdll")



Все работает



В конце программы salary.bdll надо выгружать? Если уже загружен salary.bdll, а я повторно ее загружу, то будут негативные последствия? Если да, то как проверить загружен bdll или нет?

При повторной загрузке ничего страшного не произойдет, оно само все отследит, выгружать тоже не надо: оно само выгрузит :-)
 
Огромное спасибо! :-)
 
Опять возникло сообщение "Сохранить изменения?" :-(

Напомню мою проблему. Если вводишь какую-то информацию, а потом нажимаешь Esc, то выдается Вопрос: "Сохранить изменения?". Мне от этого Вопроса надо избавится. Одно время помогала конструкция:
Код
Local aValid := {{||ucPeriod := aIn[1], aLastIn[1] := aIn[1]},; 
                {||ucStruct := aIn[2], aLastIn[2] := aIn[2]},; 
                {||nEmptyStr := aIn[3], aLastIn[3] := aIn[3]}}


Но добавилось поле (первое поле) в котором значение выбирается по "пробелу". Конструкцию изменил на:
Код
Local aValid := {{||ucSpace := aIn[1], aLastIn[1] := aIn[1]},;
                {||ucPeriod := aIn[2], aLastIn[2] := aIn[2]},;
                {||ucStruct := aIn[3], aLastIn[3] := aIn[3]},;
                {||nEmptyStr := aIn[4], aLastIn[4] := aIn[4]}}

Если изменить в первом поле значение с помощью пробела и перейти на другую строчку, то все нормально. Сообщения "Сохранить изменения?" нет.

А вот если изменить изменить в первом поле значение с помощью пробела и не переходя на другую строку нажать "Esc", то вылезет сообщение "Сохранить изменения?".

P.S. Параметры bPost, bPostRead, bPreGet пробовал, но они мне не помогли даже в старом варианте.
 
В bPreGet попробуйте проинициализировать значение первого поля...
И потом надпись то появляется только при нажатии ESC...
 
Цитата
nordk пишет:
В bPreGet попробуйте проинициализировать значение первого поля...


Так:
Код
  bPreGet:={||aIn[1] := aType[1],.T.}

? Так не помогает ...

P.S. bPreGet - 26 параметр QInput?
Изменено: Денис - 21.08.2008 11:31:48
 
Цитата
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;
)
 
1. Спасибо за предыдущие сообщение!

2.
Цитата
nordk пишет:
В bPreGet попробуйте проинициализировать значение первого поля...


Ставлю bPreGet 19-м параметром.

Если bPreGet:={||SayAndWait("Test"),.T.}, то сообщение "Test" выходит до попадания в диалог. При выходе из первой строки по Ecs, если она изменена, то выходит лишние сообщение "Сохранить изменения?".

Если bPreGet:={||aIn[1] := aType[1],.T.}, то вылетает с ошибкой.

Как надо задать bPreGet?
Страницы: Пред. 1 2 3 4 5 6 След.
Читают тему (гостей: 1)