ПРОДАЖИ
+7 (991) 312-04-37
trade@bestnet.ru
Авторизация

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

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


Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Написание синей формы.
 
Всем доброго времени суток!
Пытаюсь сделать синюю форму! Что-то совсем совсем не получается! (Хотя когда-то давно работало, вообще разобраться не могу).

Начну сразу с кода:
Код
Function RunTest1()
RETURN RunForm('project\unit1',.T.,{},nil)


Итак:
1. У нас в файле (Папка с БД) Man_2011_\userbdll.txt Имеется запись:
Финансы\Расчеты с партнерами;zzzzz;RunTest1;PartFin;0
2. Создан проект в папке "Расчеты с партнерами". Имя проекта (в свойствах) - project.bpr. Все файлы проекта лежат в этой папке workspace.bws, unit1.prg, project.bpr, unit.prg! (Надо ещё додуматься как их туда положить. Первый раз не так просто :) )
3. В файле unit.prg, что соответсвует меню "Программы" в дизайнере приложений имеется вышеупомянутый код, приведу еще раз:
Код
Function RunTest1()
RETURN RunForm('project\unit1',.T.,{},nil)

4. Имеется форма unit1.prg в разделе Форма дизайнера приложений. Форма просто пустая. На ней ничего нет.

Внимание вопрос! Почему при входе в меню zzzzz я получаю ошибку (картинка ниже) :
Код
C:\Program Files\BEST\BEST5_34\Client\Bin\projects\Расчеты с партнерами\unit.prg:RUNTEST1(2);RUNTEST1(0)l
SunSystem:BASE Code: 1001 Неизвестная функция

?

И как сделать, чтобы работало?
Изменено: Саак Шахламджян - 26.10.2012 10:48:01
 
Начал экспериментировать!
1. Добавил

Код
#include "hbclass.ch"
#include "BO_Const.ch"
class UNIT1 from UNIT1Base
endclass


В код формы. (подсмотрел в пример и в файл unit1base.prg)
2. Добавил кнопку

Код
#include "hbclass.ch"
#include "BO_Const.ch"

class UNIT1 from UNIT1Base
  METHOD bButton1_Click
endclass

METHOD bButton1_Click(Sender) class unit1
   ::Destroy()
RETURN .T.


3. Добавил 2 синие формы в меню Б-5 (форма в Example1.bdll работала, свою форму делал по ней)
Финансы\Расчеты с партнерами;zzzzz;RunTest;MY;0
Финансы\Расчеты с партнерами;xxxxx;RunFormTest;Example1;0

После этого что-то начало работать! Но с 2мя синими формами в обеих меню Открывается ОДНА И ТА ЖЕ форма:)!!!. Или одна открывается, а вторая нет. В общем не работает так, как должно? Или так и должно?

Сейчас почему-то выше описанный пример работает. С кнопочкой нарисованной. Правда при условии, что в Б-5 есть только одна синяя форма (на конце "0" в файле userbdll.txt)
Изменено: Саак Шахламджян - 26.10.2012 12:42:01
 
Для применения изменений не забывайте "передергивать" базу, т.е. либо выйти из программы и зайти вновь, либо сменить предприятие.
Тогда обновленная библиотека загрузится и процесс отладки пойдет намного проще :funny:
С уважением,
Ильин Евгений
 
Цитата
itman пишет:
Для применения изменений не забывайте "передергивать" базу, т.е. либо выйти из программы и зайти вновь, либо сменить предприятие.

Тогда обновленная библиотека загрузится и процесс отладки пойдет намного проще :funny:

bdll не компилируется при открытом бесте. В любом случае постоянно переоткрывать надо.
 
Делаете hrb

LoadLibrary("my.bdll")
runtest()

Убираете пункт из меню userbdll.txt
И тогда компилируете при открытом БЭСТе, только выходите непосредственно из реестра в котором привязан hrb файл.

Дальше помним о том, что RUNFROM работает только в новых окнах.
А такие функции как Diaolg,InitList только в старых - это чтобы понимать где функции видны, а где видны не будут.
 
Цитата
nordk пишет:
Делаете hrb



LoadLibrary("my.bdll")

runtest()



Убираете пункт из меню userbdll.txt

И тогда компилируете при открытом БЭСТе, только выходите непосредственно из реестра в котором привязан hrb файл.



Дальше помним о том, что RUNFROM работает только в новых окнах.

А такие функции как Diaolg,InitList только в старых - это чтобы понимать где функции видны, а где видны не будут.

Я новое окно и пытаюсь написать . Старые надоели В старых пользователи отказываются работать :(
(Со старыми окнами никаких проблем при использовании userbdll.txt, всё работает, проблемы только с новыми!!!)
Т.е. с новым окном без userbdll.txt не обойтись. Так ведь?
Изменено: Саак Шахламджян - 26.10.2012 15:59:58
 
Новые окна тоже можно через HRB запускать.
Смотря из какого режима Вы это делать пытаетесь
 
Цитата
nordk пишет:
Новые окна тоже можно через HRB запускать.

Смотря из какого режима Вы это делать пытаетесь


Предположим, есть свое "старое" окно, которое вызывается по отдельному меню "Моё окно" (userbdll.txt : Финансы\Расчеты с партнерами;Моё окно;RunTest;MYG;1)

Отсюда можно его вызвать? Или только спецфункциями из стандартных меню Б-5 старого типа?
 
Цитата
Саак Шахламджян пишет:
Отсюда можно его вызвать? Или только спецфункциями из стандартных меню Б-5 старого типа?

Можно и как меню и спецфункциями.
Но ! Спецфукнциями можно перекомпилировать не выгружая БЭСТ при отладке
 
Цитата
nordk пишет:

Можно и как меню и спецфункциями.

Но ! Спецфукнциями можно перекомпилировать не выгружая БЭСТ при отладке


Замечательно!!! Подскажите как! А то надоело уже, то userbdll.txt править, то организацию постоянно перевыбирать!!!

И еще Вопрос! Начал рисовать синее окошко. (Смотрел уроки 5,6,7 - за них спасибо отдельно!!! )

На форме BO, DS, DataSource1, уже и класс для таблички нужной описан и грид уже на форме тоже висит. Все работает, всё открывается. (таблица ap_reg.dbf)

НО. Когда в гриде меняю ширину столбцов данные не обновляются :(
Т.е. изначально ширина столба у меня 220 пикселей для поля Партнер, и если есть партнер "шире" 220 пикселей, то когда меняю ширину столба уже пр и работе в Бесте, то данные обрубаются/не выводится полностью - Как исправить!!!? (Надеюсь, Вопрос понятен).
Изменено: Саак Шахламджян - 09.11.2012 14:00:26
 
Цитата
Саак Шахламджян пишет:
Замечательно!!! Подскажите как!


Пишите в hrb
LoadLibrary([имя bdll])
[имя функции]()
 
Элемент xbGrid.
1. Как задать ширину колонки (ок)!!!?
2. Как сделать автообновление содержимого колонки при изменении ее ширины, когда пользователь в ней работает?


Подскажите кто нибудь, пожалуйста!!!
 
Саак начните с того, чтобы колонки были не прописаны в форме а создавались программно.
Я подозреваю, что колонки прописанные в форме статически уже не меняются
а вообще у себя в программе мы управляем колонками примерно так


Код
oGrid:columns(icol):width:=::DS:FieldValue("width")


в Form Create
 
Цитата
nordk пишет:
Саак начните с того, чтобы колонки были не прописаны в форме а создавались программно.

Я подозреваю, что колонки прописанные в форме статически уже не меняются

а вообще у себя в программе мы управляем колонками примерно так





Код
 oGrid:columns(icol):width:=::DS:FieldValue("width") 




в Form Create


Названия не отображались полностью, т.к. они в dbf файле были "обрезаны" :))

НО. Ваш код реализовать не получилось, ширина колонки не регулируется.

У меня нет метода formcrate.
Я вставил Ваш код
Код
::bGrid1:columns(1):width:=::DS:FieldValue("width")

в unit1base.prg

Код
  ::bGrid1 := CGrid():new(0, 0, 0, 0)

  ::bGrid1:ControlPtr := LINKCONTROL("bGrid1", ::FormPtr, @::bGrid1)
  ::bGrid1:Name := 'bGrid1'
  ::bGrid1:columns(1):width:=::DS:FieldValue("width")

  ::AddControl(::bGrid1)
 
А мой код у вас и не пойдет :lol:
Я же вытащил его из задачи где данные хранятся в некоей базе, эта база открывается и непосредственно в DS по ней пробегает курсор читает в цикле значения из полей "width" и подставляет их для определения ширины колонки.
Вам то такого не надо - надо в правой части просто значение прописать :lol:
 
А мог бы кто-нибудь похвастаться скринами своих поделок в новом интерфейсе?
С уважением,
Ильин Евгений
 
Женя могу по скайпу показать, если интересно.
 
Цитата
nordk пишет:
Женя могу по скайпу показать, если интересно.

Константин, да я не для себя. Для сообщества в качестве обмена опытом и пропаганды :happiness: .
С уважением,
Ильин Евгений
 
Цитата
itman пишет:
Цитата
nordk пишет:

Женя могу по скайпу показать, если интересно.


Константин, да я не для себя. Для сообщества в качестве обмена опытом и пропаганды :happiness: .

аааааааа
Семен Семеныч...
Все равно надо ролик снимать небольшой.
Давай я тебе показывать буду а ты это дело с копии экрана писать :surprise: :lol:
Минут на 5-10
Страницы: 1
Читают тему (гостей: 2)