powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Переход по таблицам
16 сообщений из 16, страница 1 из 1
Переход по таблицам
    #37261118
zasranec2la
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вcем привет =) Скажите пожалуйста как сделать так, чтобы при нажатии на поле таблицы в DataWindow открывалось новое окно DataWindow с принадлежащей к ней сущностям? Так, например, у меня есть 2 сущности: факультет и университет. Понятно, что университет стоит выше. Есть множество университетов. Я нажимаю на один из них и мне выскакивает окно со списком факультетов принадлежащих только этому университету. Я так понимаю, это надо как-то фильтровать и выполнять поиск по текущему университету среди факультетов, но не знаю как.
...
Рейтинг: 0 / 0
Переход по таблицам
    #37261136
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zasranec2la ,
начните изучение PowerBuilder'a со знакомства с учебными примерами, который есть в каждом РВ (см. в пути по умолчанию "c:\Program Files\Sybase\PowerBuilder\Code Examples\"). Там есть всё о чем Вы спрашивали и то, о чем спросите ещё. :)
...
Рейтинг: 0 / 0
Переход по таблицам
    #37261162
zasranec2la
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AIS,

я смотрел до этого примеры, но то ли не разобрался, то ли на нашёл похожего... Мне бы чтобы при нажатии на табличку университетов открывалось не DropDownDW, а переключалось на другую таблицу с факультетами и с фильтрацией показывались относящиеся к необходимому университету (только одному) факультеты.
...
Рейтинг: 0 / 0
Переход по таблицам
    #37261223
Фотография Ikar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В событии clicked у DW Вам нужно получить значение ячейки в которой произошел клик, понять, что это нужная ячейка, вызвать новое окно, в которое передать, в качестве параметра, полученное из ячейки значение университета. В новом окне нужно отретривить DW со списком факультетов университета, переданного в окно параметром.

Поищите по форуму, тут были ссылки на книги по 6-му РВ на русском. Там подобные примеры рассматривались, на сколько я помню.
...
Рейтинг: 0 / 0
Переход по таблицам
    #37261268
zasranec2la
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ikar,

я не знаю как получить текущую ячейку в которой произошёл клик, дальше понятное дело передать этот параметр ячейки (то что в ней хранится) глобальной стринговой переменной, а дальше сделать ритрив или фильтр (тоже не совсем знаю как это написать).
...
Рейтинг: 0 / 0
Переход по таблицам
    #37261692
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zasranec2la ,
100% примера, чтобы совпадал с вашей задачей, нет конечно. Вам дали направление где искать, по аналогии посмотреть как сделано у других. А Вы не смотрите и не читаете.
Ikar вообще Вам всё "разжевал", а Вы ленитесь даже в help заглянуть. :(
...
Рейтинг: 0 / 0
Переход по таблицам
    #37261976
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zasranec2la,
В событии DW clicked:
Код: plaintext
1.
2.
3.
4.
5.
6.
string ls_col
long ll_univer
ls_col = dwo.Name
IF ls_col = 'университет_number' THEN
  ll_univer = This.GetItemNumber(row, ls_col) // Так получают номер
  dw_2.Retrieve(ll_univer) // Это ритрив. В dw_2 должен быть параметр для приема университета.
END IF
...
Рейтинг: 0 / 0
Переход по таблицам
    #37262325
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Riskazasranec2la,
В событии DW clicked:
Код: plaintext
1.
2.
3.
4.
5.
6.
string ls_col
long ll_univer
ls_col = dwo.Name
IF ls_col = 'университет_number' THEN
  ll_univer = This.GetItemNumber(row, ls_col) // Так получают номер
  dw_2.Retrieve(ll_univer) // Это ритрив. В dw_2 должен быть параметр для приема университета.
END IF

Вообщем, да. Но у автора это работать не будет, т.к. кликает он не по ' университет_number ', а по ' университет_name ', и поэтому в скрипте надо "кое-что" изменить и возможно и "кое-что" добавить (например, учесть влияние регистра), т.к. передаваемый параметр для ретрива уже String. ;)
...
Рейтинг: 0 / 0
Переход по таблицам
    #37262433
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AIS,
кликает он не по 'университет_number', а по 'университет_name',
Код: plaintext
1.
2.
3.
4.
long ll_univer
IF dwo.Name = 'университет_name' THEN
  ll_univer = This.GetItemNumber(row, 'университет_number') // Так получают номер
  dw_2.Retrieve(ll_univer) // Это ритрив. В dw_2 должен быть параметр для приема университета.
END IF
...
Рейтинг: 0 / 0
Переход по таблицам
    #37262447
zasranec2la
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Riska,

написал я вот так вот и поместил в doubleclicked dw_univer:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
//переход на другую таблицу с определённой маской
long ll_univer
if dwo.Name = 'universities_name_of_university' then
	ll_univer = This.GetItemNumber(row, 'universities_id_of_faculty')
	dw_faculty.Visible = True
	dw_university. Visible = False
	dw_faculty.Retrieve(ll_univer)
end if;
Не работает =(
...
Рейтинг: 0 / 0
Переход по таблицам
    #37262472
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zasranec2la,
жаль :(
...
Рейтинг: 0 / 0
Переход по таблицам
    #37262599
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zasranec2la ,
если Вам не важно куда пользователь "кликнул" на строке, то Ваш скрипт можно упростить:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
//переход на другую таблицу с определённой маской
long ll_univer
if (Not IsNull(row)) AND (row> 0 ) then
	ll_univer = This.GetItemNumber(row, 'universities_id_of_faculty')
	dw_faculty.Visible = True
	dw_university. Visible = False
           /*возможно что-то из это пропущено*/
                dw_faculty.DataObject = '.........'
                dw_faculty.SetTransObject(SQLCA)

	dw_faculty.Retrieve(ll_univer)
end if
...
Рейтинг: 0 / 0
Переход по таблицам
    #37263298
zasranec2la
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Riska,

прошу прощения, тупанул. Работает, но чуть не так... Просто переключает таблицы, а мне нужно чтобы показывал только принадлежащие к этому университету факультеты =(
Код: plaintext
1.
2.
3.
4.
5.
6.
long ll_univer
if dwo.Name = 'name_of_university' then
	ll_univer = This.GetItemNumber(row, 'id_of_university')
	dw_faculty.Visible = True
	dw_university. Visible = False
	dw_faculty.Retrieve(ll_univer)
end if;
...
Рейтинг: 0 / 0
Переход по таблицам
    #37263306
zasranec2la
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То есть вопрос у меня сейчас стоит как удалить ненужные (не относящиеся факультеты к универу)?
...
Рейтинг: 0 / 0
Переход по таблицам
    #37263999
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый Засранец,

Посмотрите на картинку.
Это в дизайнере DW добавление аргумента.
Создайте аргумент al_univer .
А в селекте допишите
...
WHERE ... univer_id = :al_univer

P.S. Зачем Вам РВ? Если учить с нуля, то лучше что-нибудь более популярное.
...
Рейтинг: 0 / 0
Переход по таблицам
    #37264084
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RiskaА в селекте допишите
...
WHERE ... univer_id = :al_univer
это для него тоже "темный лес". :)
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Переход по таблицам
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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