powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Концепция разработки приложений в PB
25 сообщений из 30, страница 1 из 2
Концепция разработки приложений в PB
    #32559970
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поставил PB8, поиграться, покрутить.

Честно говоря, не понял, с какой стороны к нему подступиться.

Есть некий workspace (я так понял, это аналог project'а), в котором находится куча непонятно чего. Простите за глупый вопрос, а как вообще писать приложение? С чего начать? Хотя бы примитив, навроде окна приложения, в котором вывести таблицу БД?
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32559980
Mykola
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Для начала создайте workspace и подключите (add target ) с примерами которые идут с PowerBuilder. Они должны быть в папке куда вы установили PowerBuilder.
2. создать new target
создать новое окно (w_1) и событие open for application write code Open(w_1).
Для Работы с таблицей необходимо подключиться к источнику данных (настроить ODBC) , в PowerBuilder настроить профиль. Создать datawindow object. На окно поставить datawindow control и для его свойства dataobject выбрать созданный datawindow object. И к примеру в событие Constructor datawindow control (dw_1) write code This.SetTRansObject(sqlca)
This.Retrieve()
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32560159
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сходи сюда: http://www.sybasedevel.ru/
Там есть пару статей.
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32560652
gerss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сходи вот сюда:
http://]ikarhomecenter.narod.ru - лекции по PB для начинающих.
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32561256
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за помощь, почитал, попробовал. Не особенно мне понравилось, честно говоря. И я так и не понял - он позволяет создавать готовые экзюки или нет? Я нашел только в InfoMaker'е фишку, которая сделала exe-файл, но какой-то странный: вылезает форма, которая запрашивает какое из окон библиотеки открыть. Как-то это неправильно
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32561358
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторСпасибо за помощь, почитал, попробовал. Не особенно мне понравилось, честно говоря.
Угу - и не должно было понравиться с первого раза :) Чтобы понравилось надо вьехать в методологии проектирования приложений на PB, можно даже сказать изменить свои взгляды на привычные вещи. В этом плане Access-никам мне кажется даже легче будет понять PB, чем специалистам, работающих на Delphi или C.

авторИ я так и не понял - он позволяет создавать готовые экзюки или нет?
Конечно позволяет. А InfoMaker - это просто утилита для конечного пользователя, которая позволяет на ходу быстро лепить какие то несложные формочки ввода и отчеты без необходимости кодирования.

Совет:
Если знаете Access, то воспринимайте PB ближе к нему, чем другим средствам разработки. DataWindow - это описание набора данных и его визуальное представление. Начните изучение с него, научитесь получать данные, создавать их различное визуальное отображение, сортировку, группировку и фильтр, поэкспериментируйте с Expression на свойства контролов DataWindow. Оставьте на потом формы, контролсы и PowerScript, они служат только для описания работы интерфейса приложения, вся бизнес-логика сосредотачивается в DataWindow. В общем учите PB как платформу для построения клиентских приложений, а не как язык программирования.
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32561425
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не известно какая версия PB у вас. У меня 9.0.1

Надеюсь что у техническим английским вы владеете.
Если так, то воспользуейтесь поставляемым с PB докуменнтом, который так и называется "Getting Started".

Для этого:
- Вызываем Help
- Выбираем Contents
- Выбираем пункт Getting Started
- Кликаем на иконку Acrobat Reader'a
Собственно и все. Теперь у вас этот документ должен быть уже открыт. Дальше выполняем уроки, которые там есть.

Кроме этого рекомендую выложить на Desctop вашего ПК "PowerBuilder User’s Guide" in HTML format. Потому как кроме него, в этом файле есть:
- "Application Techniques" - На первых порах смотрел часто.
- "DataWindow Programmer's Guide" - выкачайте в PDF и распечатайте
- "Connecting To Your Database" - поначалу тоже смотрел
- "Working with WEB and JSP Targets"
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32561559
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mustliveИ я так и не понял - он позволяет создавать готовые экзюки или нет? Standalone файл создать не получится. Исполняемые файлы представляют собой только запускалку интерперетатора, поэтому понадобятся библиотеки времени исполнения (runtime по-русски :-).

Относительно всего прочего - ASCRUS и Ermak все уже рассказали :-)
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32563083
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
В этом плане Access-никам мне кажется даже легче будет понять PB, чем специалистам, работающих на Delphi или C.


В общем-то, согласен с этим утверждением. С Access'ом я правда не работал, ибо на большие задачи он явно не рассчитан. Зато поработал в свое время с Paradox (воспоминания остались не из приятных. paradox в том, что он вообще работает :), и PB мне напомнил как раз его. В части некоторой бардаковости написания программы, т.е. например можно встретить вызов функции и потом дооолго искать ее тело по коду программы.


автор
DataWindow - это описание набора данных и его визуальное представление. Начните изучение с него,


Одной из причин, по которой я взялся за PB, является мой достаточно большой опыт разработки DataWindow. У Sybase (точнее, в то время у фирмы Powersoft, которую купил Sybase) в свое время был такой продукт: DataWindow Builder. Выглядит он примерно как InfoMaker, в нем можно создавать DataWindow'ы для ввода и отображения информации в виде репортов. Куча пропертей, видов отчетов (FreeForm, Grid, Composite) и т.д.
Результатом является файл pbl (или pbd), который затем через ActiveX компонент для C++ встраивается в программу, имеет кучу event'ов (selectedrow, retrieve и т.п.) и соответственно интерфейс для их обработки, извлечения данных, внесения данных и само собой для сохранения инфы в базу. Родным для него является ASA.

Но посколько компонент довольно старый (1997 год), хочется чего-нибудь посвежее. DataWindow'ы от DataWindow Builder прекрасно импортируются в PB


автор
Standalone файл создать не получится. Исполняемые файлы представляют собой только запускалку интерперетатора, поэтому понадобятся библиотеки времени исполнения (runtime по-русски :-).


Я чего-то не догоняю. Короче говоря, можно ли сделать EXE-файл, в тот же каталог положить нужные DLL и все это будет работать без установки PB?
Да или Нет?
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32563126
alexis glinski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mustliveЯ чего-то не догоняю. Короче говоря, можно ли сделать EXE-файл, в тот же каталог положить нужные DLL и все это будет работать без установки PB?
Да или Нет?

Да, smotri v helpe Deploying your application
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32563196
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЯ чего-то не догоняю. Короче говоря, можно ли сделать EXE-файл, в тот же каталог положить нужные DLL и все это будет работать без установки PB?
Да или Нет?

Да.

К своему EXE + *.PBD кладёте PB runtime DLLs
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32563213
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЗато поработал в свое время с Paradox (воспоминания остались не из приятных. paradox в том, что он вообще работает :), и PB мне напомнил как раз его.

А мне было легко, я как раз с Paradox на PB перешел.

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

Можно. Я например иногда для этих целей использую как это не странно pbl_dump

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
==============================================================
  pbl_dump - просмотрщик библиотек PowerBuilder  версия 1.0.3
  (C) А.Московский, e-mail: avm@trais.com.ua
==============================================================
Комплект файлов:
 Readme.txt      - этот файл
 pbl_dump.exe    - исполняемый файл программы (win32 console application)
 custom.ini.add  - файл с настройками для FAR'а
 test_app.pbl    - тестовая библиотека из поставки PowerBuilder'а
==============================================================Поддерживаются режимы:
- листинг имен, времени модификации и размеров объектов и их p-кода
    Пример:  pbl_dump -v test_app.pbl
    
- вывод статистики использования блоков в PBL
    Пример:  pbl_dump -vb test_app.pbl            
    
- извлечение объектов/p-кода в файл в текущем каталоге
    Пример:  pbl_dump -e test_app.pbl m_genapp_frame.srm m_genapp_frame.men
    
- совместная работа с FAR'ом (работа с PBL/PBD как с каталогами)
  см. файл "custom.ini.add"

- работа с форматами библиотек PowerBuilder 6 и 7
  
==============================================================
Не поддерживаются:    
- любая модификация исходной библиотеки (в следующих версиях ожидается
  удаление объектов)

Смотрит как миленький форматы библиотек 8 и 9
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32563470
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторpbl_dump - просмотрщик библиотек PowerBuilder версия 1.0.3 (C)

это не последняя версия, см. http://sqlbatch.com/pd/

автор- работа с форматами библиотек PowerBuilder 6 и 7
Смотрит как миленький форматы библиотек 8 и 9


с PBL из PB10 точно не работает :))
поэтому скоро будет новая версия pbldump и powerbatch соответственно

а насчет поиска - я делаю так (FAR+pbldump):
в FAR, зайти в каталог с PBL, запустить поиск файлов, включить "искать в архивах", указать маску *.sr?, указать искомую строку
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32563521
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот и автор.

Большое Вам спасибо.

Я тоже пользуюсь pbl_dump'ом в cвязке с Far.
Когда появится новая версия, то пожалуста, сообщите об этом здесь, в этом форуме.
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32563581
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mustliveв свое время был такой продукт: DataWindow BuilderРазве он распространялся отдельно, а не входил в состав Optima?

mustliveРезультатом является файл pbl (или pbd), который затем через ActiveX компонент для C++ встраивается в программу, имеет кучу event'ов (selectedrow, retrieve и т.п.) и соответственно интерфейс для их обработки, извлечения данных, внесения данных и само собой для сохранения инфы в базуТак вот этот ActiveX тоже требует виртуальной машины, разве нет?
Вообще-то, судя по описанию Вашего опыта работы, я бы рекомендовал Вам оставаться на C++, а свежий DataWindow ActiveX, вероятно, можно попросить, например, в этом форуме :-)
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32563647
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Разве он распространялся отдельно, а не входил в состав Optima?


Входил, входил :) Просто про Optima мало кто вообще знает и слышал, я уж не стал на этом моменте акцентировать внимание

автор
Так вот этот ActiveX тоже требует виртуальной машины, разве нет?
Вообще-то, судя по описанию Вашего опыта работы, я бы рекомендовал Вам оставаться на C++, а свежий DataWindow ActiveX, вероятно, можно попросить, например, в этом форуме :-)


Никакой виртуальной машины не требуется. Регистрируешь его в винде через regsrv, dll'и нужные устанавливаешь, и все работает

Свежего DataWindow нема, насколько я знаю. Optima со всеми своими компонентами была объявлена end-of-life product'ом, и все на этом закончилось. Остался единый могучий PowerBuilder
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32563750
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторРегистрируешь его в винде через regsrv, dll'и нужные устанавливаешь, и все работаетНу вот это оно и есть :-) PBV(irtual)M(achine)XX.dll


В поставку PB входит DataWindow.WebControl (psdwcxXX.dll) - с полным набором свойст и методов DW. Попробуйте, может быть Вам подойдет.
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32563760
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У PB в составе есть ActiveX компонент, для новой 10-ой версии так же есть DataWindow.NET (аналог ActiveX, только уже для использования в среде .Net FrameWork).

Хотя мне например легче все в PB катать, чем обвязывать ActiveX на другом инструменте, в PowerScript есть забавные возможности, которые позволяют кодировать интерфейс с меньшим кол-вом кода, чем на том же C++ или Delphi (event-ы, post-вызовы, Embedded SQL, наследование обьектов внутри родителя, и т.д.). Главное не начинать изучение PB с попыток реализовать на нем все, что явно с первого взгляда не хватает. Лучше разобраться с тем, что есть и понять концепции. Дальше естественно все равно всплывет, что чего то не хватает. И тут уже можно будет решить - выучить и воспользоваться PFC, взять чьи то наработки или же сделать свои. Я например удовольствовался тем, что докатал в PB кое какие полезные функции, класс поддержки коллекций, именованных параметров, расширил функциональность DataWindow-контрола и DataStore-обьекта в сторону поддержки особенностей ASA и своего стиля проектирования приложения, малость расширил функциональность Transaction-обьекта, дописав в него автоматический реконнект сессии, если был обрыв, сделал прототип главного и дочернего окон, накатал собственное окно визарда, позволяющее быстро строить мастера ввода и изменения информации и сделал компонент запроса параметров поиска и фильтрации информации, который базируется на собственном движке построения запросов по бизнес-фильтрам, реализованным на ASA. Этого вполне хватило на обеспечение нормальной централизованной функциональности проектов, уже далее на основе стандартных и расширенных мной решений я спокойно смог внутри проекта расширять иерархию в нужную сторону и концетрируясь только на бизнес-логике приложения реализовать довольно удобный интерфейс без особых затрат на кодирование и отладку.

Могу кстати привести скриншоты, в принципе думаю выглядит вполне нормально по сравнению с другими языками
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32563776
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И скриншот одного из визардов - картинка правда на нем от Access, все никак не дойдут руки чего нибудь путевое нарисовать :)
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32563843
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Ну вот это оно и есть :-) PBV(irtual)M(achine)XX.dll


В поставку PB входит DataWindow.WebControl (psdwcxXX.dll) - с полным набором свойст и методов DW. Попробуйте, может быть Вам подойдет.


А вот и нет - P(ower)S(oft)D(ata)W(indow)E(nterprise edition).OCX

:)


Какой-то контрол я пытался прикрутить (назывался он по-моему PowerSoft DataWindow Runtime), но он убогий - все эвенты и прочее придется руками описывать, неудобно и долго. Уж лучше время на изучение PowerBuilder'а потратить.

Или плюнуть на все, и уйти в отпуск отдыхать от всего этого.
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32566331
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot]
У PB в составе есть ActiveX компонент
[\quot]

А как он называется (сам dll, ocx или что там)?

Попробовал установить DataWindow Web control, не хочет он что-то работать,
программа виснет при запуске.
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32571093
E-doc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А не расскажет ли уважаемый ASCRUS , хотя бы в общих чертах, про принципы постороения своих визардовых диалогов - каждая страница визарда - это отдельный userobject или еще как? Как управлять последовательностью страниц визарда и т.д. Хотя бы намекните. :)
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32571634
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно при помощи tab-контрола страницы Wizard'а делать.
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32571662
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть базовая форма, на ней лежит Tab с одной вкладочкой, на которую автоматом при запуске визарда грузиться описание мастера из БД (ну и галочка для выключения этой странички по желанию пользователя - как в визардах Sybase Central). Так же есть кнопки управления ходом визарда и целая куча логики - от приема и обработки параметров окну, таких как режим работы (добавление, изменение или удаление информации), стартовая страница визарда, параметры для потомков, плюс туча функций управления ходом работ (инициализация страниц визарда, уведомления о смене режима работ, запросы на подтверждения достоверности данных, запросы на сохранение данных и т.д.). В общем вся целостная логика самого визарда реализована полностью - он полностью отвечает за ход работ и организовывает все необходимые уведомления и оповещения для своих потомков как в пределах событий формы, так и событий пользовательских вкладок. Далее чтобы быстро слепить мастер нам достаточно наследоваться от формы визарда, в Tab понаделать сколько надо вкладок или вставить UserObject-ы (если страничка используется в нескольких визардах одновременно). Никаких особых требований к страничкам вкладок нет - если вкладка хочет участвовать в ходе работ визарда, то ей просто достаточно подписаться на определенные события, вот их список:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
 /* 
  События страничек:

  none ue_Init( reference boolean p_Complete, reference boolean p_Visible )
  - Уведомление странички о необходимости инициализации
    ее параметров. Вызывается, когда визард уже считал
    и установил все свои необходимые характеристики.
    Страничка имеет право остановить работу визарда,
    установив p_Complete в False. Страничка может указать свою
    видимость через p_Visible

  none ue_Activate()
  - Уведомление странички о передаче ей фокуса. 
    Вызывается после передачи фокуса страничке.

  none ue_SetFocus()
  - Уведомление страничке о необходимости установки фокуса.
    Вызывается после передачи фокуса страничке и вызова
    события ue_Activate.

  none ue_Validate( boolean p_IsBefore, reference boolean p_Complete )
  - Запрос о готовности настроек странички. Если p_IsBefore = TRUE,
    то вызывается сразу после попадания фокуса на страничку для 
    определения возможности перехода с нее на следующую страничку
    или при вызове метода ValidPage(). Иначе вызывается при попытке
    ухода со странички с p_IsBefore = FALSE для окончательного 
    определения готовности данных странички и возможности ухода 
    с нее. Через p_Complete страничка может указать визарду, правильно
    ли введены все ее данные.

  none ue_Deactivate()
  - Уведомление странички о потери фокуса.
    Вызывается перед самой потерей фокуса страничкой.

  none ue_Finish( reference boolean p_Complete )
  - Уведомление странички о завершении работы визарда и
    о необходимости ее сохранения данных. Страничка имеет
    право остановить процесс завершения работы визарда, 
    установив флаг p_Complete в False.
    
  none ue_Row_New()
  -  Запрос на добавление новой записи (shortcut)
  
  none ue_Row_Delete()
  -  Запрос на удаление записи (shortcut)
  
  none ue_Row_Retrieve()
  -  Запрос на обновление записей (shortcut)
*/ 
Так что шлепаем на вкладки DataWindow Control и другие контролсы, создаем в вкладке только те события, на логику которых нам нужно реагировать и честно туда вписываем свою логику. Все остальное нас не заботит - визард честно все инициализирует, будет следить за пользователем, чтобы все данные были заполнены, сам при подтверждении окончания работы создаст транзакцию, сам ее подтвердит или откатит в зависимости от результатов работы и позволит потомкам вернуть свой код завершения работы окна для оповещения о проделанной визардом работе. Так же события ue_Row_* позволяют каждой страничке реагировать на клавишы быстрого доступа (для этого визард скрытно на окно цепляет меню).

P.S. Конечно на том же Delphi я все реализовал немного по другому - существовал предок для страничек визарда, но в принципе разницы большой в этом нет - там бы я делал OVERRIDE базовых методов странички, здесь же визард просто динамически вызывает событие у вкладки, которая просто должна его иметь. Мне честно говоря даже модель визарда в PB больше нравиться, чем ту, которую я делал на Delphi, хотя конечно тут опять же свою роль играет DataWindow :)

P.S. В принципе данный визард вполне универсальный и самодостаточный (PBL с системными функциями и PBL с самим визардом), в БД ему нужно создать 3 таблички и одну ХП, через которую он вписывает пользовательские настройки. Эти обьекты элементарно переносятся на любую СУБД, так что подключить визард к любому проекту не представляет никакой сложности. Если кому то будет нужно, то я всегда могу выложить ссылку для его скачки в FAQ.
...
Рейтинг: 0 / 0
Концепция разработки приложений в PB
    #32571758
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ASCRUS
Не ради флейма, мне действительно интересно. С чем связано стремление получать результаты работы событий через параметры, передаваемые по ссылке?
В этом заложен какой-то глубокий архитектурный смысл, это принятый корпоративный стандарт или что-то еще?

Заранее спасибо :-)
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Концепция разработки приложений в PB
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]