Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / текстовые поля в ДВ / 9 сообщений из 9, страница 1 из 1
13.02.2010, 16:25
    #36467639
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
текстовые поля в ДВ
Добрый день!
есть ПБ105.
Задача-хочется пробежать по ДВ -найти все текстовые поля и сделать в них замену.
Как это сделать в окне понятно-там есть controls и функция typeof.
В ДВ -кроме как в синтаксисе найти текстовые поля, их имена, а уж потом обрабатывать с помощью modify-ничего другого придумать не могу.(текст. поля не ВСЕ заканчиваются на _t)
с уважением
...
Рейтинг: 0 / 0
13.02.2010, 16:41
    #36467647
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
текстовые поля в ДВ
- Получаем список имен всех объектов в в виде строки с разделителем "~t":
dw.Describe("datawindow.objects")

- Проходимся по каждому имени и получаем тип
dw.Describe("объект.type")

У объектов типа Text, будет тип text :)
...
Рейтинг: 0 / 0
14.02.2010, 16:11
    #36468480
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
текстовые поля в ДВ
Большое спасибо Анатолий!
...
Рейтинг: 0 / 0
15.02.2010, 07:45
    #36468910
tiger_sc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
текстовые поля в ДВ
Anatoly Moskovsky, А для датавиндовов типа Free данный метод тоже работает?

ЗЫ. Сам делал методом, предложенным автором, т.е. перебором и модификацией. Вот так:

ls_syntax = l_dw.Describe("DataWindow.Syntax")
l_end = 1
DO WHILE True
l_start = pos(ls_syntax,'text="',l_end)
IF l_start = 0 THEN Exit;
l_start = l_start + 6
l_end = pos(ls_syntax,'"',l_start)
IF l_end = 0 THEN Exit;
ls_syntax = replace(ls_syntax, l_start, l_end - l_start, <<ЗАМЕНЯЕМЫЙ ТЕКСТ>>)
LOOP
...
Рейтинг: 0 / 0
15.02.2010, 09:40
    #36469004
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
текстовые поля в ДВ
Для колонок, можно было бы по Column.Count
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
15.02.2010, 10:49
    #36469154
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
текстовые поля в ДВ
tiger_sc,
И для Freeform это работает, а вот Ваш код не обеспечивает корректный разбор синтаксиса DataWindow.
...
Рейтинг: 0 / 0
15.02.2010, 11:58
    #36469369
tiger_sc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
текстовые поля в ДВ
Локшин Марк, что именно в коде некорректного?
...
Рейтинг: 0 / 0
15.02.2010, 12:12
    #36469410
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
текстовые поля в ДВ
tiger_scЛокшин Марк, что именно в коде некорректного?
То, что ищется вхождение text= , которое может быть например в запросе или в выражении свойства DataWindow и еще в других местах тоже...
...
Рейтинг: 0 / 0
15.02.2010, 12:42
    #36469527
tiger_sc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
текстовые поля в ДВ
Локшин Марк, а... У нас просто нет в БД полей с названием 'text', которые могли бы участвовать в запросе, а задача (моя) стоит переобозвать все текстовые метки датавиндова, не только названия полей, а и, в том числе, названия разделов, названия кнопок и пр. Хотя замечание интересное, учту. С запросом может быть реальная засада, если что.
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / текстовые поля в ДВ / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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