powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / DataWindow с возможностями поиска по его полям
25 сообщений из 44, страница 1 из 2
DataWindow с возможностями поиска по его полям
    #35447141
lioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Помогите новичку, на PowerBuilder перехожу с Delphi.
Есть DataWindow, отображающий поля account и adress, при открытии окна в режиме Grid только для чтения. Нужно для него сделать шапку, где вводится значение account, нажимается ENTER и в DataWindow отображаются только записи соответствующие введеному значению account.
1) Как при нажатии ENTER добавить условие WHERE в SQL-запрос DataWindow ?
2) Как отобразить этот же DataWindow в другом окне по двойному клики мышки на любой строке этого DataWindow, но уже в режиме Freeform для редактирования ? Или придется создавать новый DataWindow с таким же SQL-запросом но в режиме Freeform ?
Заранее спасибо.
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447340
Uzrptav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
где вводится значение account, нажимается ENTER и в DataWindow отображаются только записи соответствующие введеному значению account

Как вариант
Надо поместить на форму SingleLineEdit Control (напр. sle_1) и CommandButton (напр. можно назвать кнопку Enter).
В Sle_1 вводим значение account.
В событии кнопки Clicked и вызвать методы DataWindow SetFilter() и Filter() см. HELP:
Код: plaintext
1.
dw_1.SetFilter(sle_1.text)
dw_1.Filter()

З.Ы. Советую ознакомиться с Help"ом, примерами в комплекте с PowerBuilder, там много чего интересного.
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447372
lioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вариант с фильтрами вполне подходит, но есть одно но... В таблице много записей (более 200 тыс.), не хочется тянуть их все на клиента, поэтому используется TOP 100. А фильтр, не производит повторного запроса на сервер, а фильтрует данные клиента.
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447376
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lionerЗдравствуйте! Помогите новичку, на PowerBuilder перехожу с Delphi.
Есть DataWindow, отображающий поля account и adress, при открытии окна в режиме Grid только для чтения. Нужно для него сделать шапку, где вводится значение account, нажимается ENTER и в DataWindow отображаются только записи соответствующие введеному значению account.
1) Как при нажатии ENTER добавить условие WHERE в SQL-запрос DataWindow ?
2) Как отобразить этот же DataWindow в другом окне по двойному клики мышки на любой строке этого DataWindow, но уже в режиме Freeform для редактирования ? Или придется создавать новый DataWindow с таким же SQL-запросом но в режиме Freeform ?
Заранее спасибо.
1. Для этого можно использовать SetSQLSelect, но если эти данные уже отобраны разумнее их фильтровать на клиенте при помощи SetFilter(...)/Filter()
2. Придется создавать новое DataWindow в режиме FreeForm, причем SQL запрос к нему прикреплять совершенно не обязательно (можно создать DataWindow типа External) - главное чтобы Resultset SQL запроса совпадал с тем, что объявлено в External DataWidnow. А данные туда/сбда с помощъю RowsMove(...) гонять.
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447383
lioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запрос выглядит так:
Код: plaintext
1.
2.
3.
select account, adress
from account
order by account
Может как то можно передавать параметры в предложение WHERE ?
Хочется получить такое:
Код: plaintext
1.
2.
3.
4.
select account, adress
from account
where account = :account
order by account
А потом в этот :account запихнуть sle_1.text.
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447396
Uzrptav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Метод Retrive()
Код: plaintext
long dwcontrol.Retrieve ( {, any argument, any argument . . . } ) 
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447397
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lionerЗапрос выглядит так:
Код: plaintext
1.
2.
3.
select account, adress
from account
order by account
Может как то можно передавать параметры в предложение WHERE ?
Хочется получить такое:
Код: plaintext
1.
2.
3.
4.
select account, adress
from account
where account = :account
order by account
А потом в этот :account запихнуть sle_1.text.
В режиме редактирования запроса Design/Retrieval Arguments указываете account типа string и свой запрос.
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447398
lioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
к Локшин Марк:
Не хочется запоминать старый вариант SQL, записывать новый вариант SQL, используя ф-ции GetSqlSelect и SetSqlSelect.
Может быть можно шапку сделать в виде еще одного DataWindow, связать его с моим DataWindow по параметру :account ?
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447443
lioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что то не получается...
Отредактировал запрос так:
Код: plaintext
1.
2.
3.
4.
select account, adress
from account
where account = :sle_1.text
order by account
При закрытии окна Select вылазит сообщение: "An argument used in the SELECT is not defined"....
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447461
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lionerЧто то не получается...
Отредактировал запрос так:
Код: plaintext
1.
2.
3.
4.
select account, adress
from account
where account = :sle_1.text
order by account
При закрытии окна Select вылазит сообщение: "An argument used in the SELECT is not defined"....
Еще раз. При редактировании SQL запроса зайдите в меню Design/Retrieval arguments объявите там аргумент account типа string и напишите запрос
Код: plaintext
1.
2.
3.
select account, adress
from account
where account = :account
order by account
После этого в скрипте в своем окне (например при нажатии на большую кнопку "НАЙТИ") написать что-то типа
Код: plaintext
dw_1.Retrieve(sle_1.text)
Пытаться писать что-то типа sle_1.text внутри SQL запроса - в корни неправильно, т.к. это просто текст SQL запроса и ни о каких объектах PowerBuilder'а он не знает.
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447506
lioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал так:
Код: plaintext
1.
WHERE account like :account
чтобы при вводе "1" находились account = 1, 10, 11 и т.д. Но, like почему то не находит....
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447524
lioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Локшин Марк
Пытаться писать что-то типа sle_1.text внутри SQL запроса - в корни неправильно, т.к. это просто текст SQL запроса и ни о каких объектах PowerBuilder'а он не знает.
Я читаю книгу PowerBuilder 5.0 Брайана Дж. Смита и Гордона У. Шаада. Они приводят пример встроенного запроса:
Код: plaintext
1.
2.
3.
4.
5.
long ll_hommany
select count(*)
into :ll_hommany
from customer
where lastname = :sle_lastname.text
где sle_lastname.text - обьект класса SingleLineEdit.
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447554
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может Query mode подойдет?
См. справку по QueryMode DataWindow object property
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447577
lioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запарился с "%" в конце like, сори ))) Но все равно PB ругается на конструкцию:
Код: plaintext
1.
WHERE account like ':account%'
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447588
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lioner Локшин Марк
Пытаться писать что-то типа sle_1.text внутри SQL запроса - в корни неправильно, т.к. это просто текст SQL запроса и ни о каких объектах PowerBuilder'а он не знает.
Я читаю книгу PowerBuilder 5.0 Брайана Дж. Смита и Гордона У. Шаада. Они приводят пример встроенного запроса:
Код: plaintext
1.
2.
3.
4.
5.
long ll_hommany
select count(*)
into :ll_hommany
from customer
where lastname = :sle_lastname.text
где sle_lastname.text - обьект класса SingleLineEdit.
Различайте Embeded SQL и запрос в DataWindow и DataStore - это совершенно разные вещи.
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447592
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lionerЗапарился с "%" в конце like, сори ))) Но все равно PB ругается на конструкцию:
Код: plaintext
1.
WHERE account like ':account%'

Потому, что теперь ищется строка :account%
Нужно так
Код: plaintext
1.
WHERE account like :account + '%'
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447595
lioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly MoskovskyМожет Query mode подойдет?
См. справку по QueryMode DataWindow object property
К сожалению DataWindow я создавал в режиме Quick Select и не знаю как перевести его теперь в режим Query... Не очень хочется заново создавать DataWindow в режиме Query...
P.S. Да уж... После Delphi PB смортится какой-то очень громоздкой и неудобной средой разработки... (((
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447617
lioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Локшин МаркНужно так
Код: plaintext
1.
WHERE account like :account + '%'

Сделал именно так ! Может из за того что я в режиме Quick Select и PB не понимает синтаксис ?
Вылетает такая ошибка:
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447663
lioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну наконец-то !!!!!!!!!!!
Запрос такой:
Код: plaintext
1.
2.
3.
4.
select account, adress
from account
where account like :account
order by account
Код события modified j,mtrns sle_1:
Код: plaintext
1.
dw_1.retrieve(this.text+'%')
С пунктом 1) разобрался. Как быть с пунктом 2) ? Функция ShareData мне поможет ?
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447673
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lionerС пунктом 1) разобрался. Как быть с пунктом 2) ? Функция ShareData мне поможет ?
На второй вопрос я Вам уже ответил.
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447710
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lioner wrote:

> P.S. Да уж... После Delphi PB смортится какой-то очень громоздкой и
> неудобной средой разработки... (((

Глупость года. Впрочем, ожидаемая.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447731
lioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Локшин Марк2. Придется создавать новое DataWindow в режиме FreeForm, причем SQL запрос к нему прикреплять совершенно не обязательно (можно создать DataWindow типа External) - главное чтобы Resultset SQL запроса совпадал с тем, что объявлено в External DataWidnow. А данные туда/сбда с помощъю RowsMove(...) гонять.
Дико извиняюсь... У меня PB версии 8.0.
Выбрал File->New->FreeForm->External, появилось окно... Что в поле name мне указать ?
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447861
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lioner Локшин Марк2. Придется создавать новое DataWindow в режиме FreeForm, причем SQL запрос к нему прикреплять совершенно не обязательно (можно создать DataWindow типа External) - главное чтобы Resultset SQL запроса совпадал с тем, что объявлено в External DataWidnow. А данные туда/сбда с помощъю RowsMove(...) гонять.
Дико извиняюсь... У меня PB версии 8.0.
Выбрал File->New->FreeForm->External, появилось окно... Что в поле name мне указать ?
В полях name нужно описать структуру точно такую же как возвращает ваш запрос и указать такие же типы, тогда между DataWindow данные можно перемещать будет при помощи RowsMove(...)
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447906
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин Марк lioner Локшин Марк2. Придется создавать новое DataWindow в режиме FreeForm, причем SQL запрос к нему прикреплять совершенно не обязательно (можно создать DataWindow типа External) - главное чтобы Resultset SQL запроса совпадал с тем, что объявлено в External DataWidnow. А данные туда/сбда с помощъю RowsMove(...) гонять.
Дико извиняюсь... У меня PB версии 8.0.
Выбрал File->New->FreeForm->External, появилось окно... Что в поле name мне указать ?
В полях name нужно описать структуру точно такую же как возвращает ваш запрос и указать такие же типы, тогда между DataWindow данные можно перемещать будет при помощи RowsMove(...)
для новичка надо четче формулировать. например так
Name, Type, Length надо списать со страницы Column Specification того Datawindow из которого будете делать RowsMove/ShareData.
как то так. а то ж он запарится описывать в терминах DW то что запрос возвращает.

З.Ы. со временем может научицца делать это через Edit Source ;-)
...
Рейтинг: 0 / 0
DataWindow с возможностями поиска по его полям
    #35447907
lioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создал в новом окне новый DW с таким же Resultset, поместил его в DW Control в новое окно w_services (w_services.dw_1). В событии doubleclicked первого DataWindow (w_account.dw_1) пишу:
Код: plaintext
1.
Open(w_services) // открываю новое окно
В событии open нового окна пишу:
Код: plaintext
1.
dw_1.rowscopy( 1 ,w_account.dw_1.rowcount(),Primary!,dw_1, 1 ,Primary!)
Окно появляется без ошибок, но оно пустое... Строки скопировались ?
...
Рейтинг: 0 / 0
25 сообщений из 44, страница 1 из 2
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / DataWindow с возможностями поиска по его полям
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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