Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Возможно ли получить ссылку на DWObject по его номеру? / 25 сообщений из 38, страница 1 из 2
23.01.2004, 17:00
    #32386526
dGrichine
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
Например

integer li_cols, i
any la_any[]
DWObject dwobjectvar

li_cols = Integer(ds_1.Describe("DataWindow.Column.Count"))
for i = 1 to li_cols
// тут необходимо получить ссылку на соответствующий i DWObject
//dwobjectvar = ds_1.object.#i
la_any[] = dwobjectvar.Primary
...
// далее некие действия
next
...
Рейтинг: 0 / 0
23.01.2004, 17:43
    #32386581
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
По имени можно вот так
http://lokshinmark.narod.ru/tips.htm#tip0017
...
Рейтинг: 0 / 0
23.01.2004, 18:06
    #32386622
dGrichine
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
Спасибо,
оказывается по номеру тоже можно, например так:

integer li_cols, i
any la_any[]
DWObject dwobjectvar

li_cols = Integer(ds_1.Describe("DataWindow.Column.Count"))
for i = 1 to li_cols
// тут необходимо получить ссылку на соответствующий i DWObject
dwobjectvar = ds_1.object.get_attribute( "#"+string(i),True)
la_any[] = dwobjectvar.Primary
...
// далее некие действия
next
...
Рейтинг: 0 / 0
23.01.2004, 18:38
    #32386663
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
В общем это дурацкая практика, поскольку:
1) чаще всего это просто не нужно
2) синтаксис этот (get_attribute) НЕ документирован, НЕ поддержан, и меняется от версии к версии РВ
...
Рейтинг: 0 / 0
23.01.2004, 19:06
    #32386694
dGrichine
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
Согласен, что пользоваться недокументированными функциями нехорошо...

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

DWObject ldwo

ldwo = dw_1.Object.colname
или
ldwo = dw_1.Object.#1

а рантайме стандартными средствами этого делать нельзя...

чем можно объяснить отстутсвие стандартных средств?
...
Рейтинг: 0 / 0
23.01.2004, 19:13
    #32386702
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
авторчем можно объяснить отстутсвие стандартных средств?

Тем, что кажущаяся необходимость его получить есть верный признак проблем в дизайне твоей логики/скриптинга...
...
Рейтинг: 0 / 0
26.01.2004, 11:27
    #32387477
andy753
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
Есть подозрение, что скорее проблема не в дизайне, а в методологическом взгляде на вещи. Скорее всего dGrichine привык работать с объектами, посему и пытается работать с DW не как с целостным объектом, а как с контейнером...

Я бы просто рекомендовал поработать и попрактиковаться в использовании Describe в DW ему. Надеюсь, это уберет максимум вопросов. :)
...
Рейтинг: 0 / 0
26.01.2004, 17:16
    #32388153
dGrichine
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
все заключается в том, что приложение, которым я занимаюсь является на 100% невизуальным, работаю только с DataStore (в первом постинге не зря указано ds_1), которые создаются в рантайме с помощью SyntaxFromSQL, следовательно ничего о количестве, наименовании и типе объектов во время написания скрипта я знать не могу и не знаю. Иметь же к ним (объектам) доступ в рантайме мне необходимо.
Еще раз повторюсь, что мне кажется странным:
С одной стороны при дизайне и скриптинге DataWindow или DataStore с заранее определенными объектами получить ссылку на них можно как по наименованию так и по номеру. И это не называется кривостью дизайна/скриптинга, а является стандартным и описанным в документации методом работы с объектами входящими в состав DataStore.
С другой же стороны, при работе с DataStore созданными во время выполнения все происходит с точностью до наоборот - получить ссылку на объект нельзя ни по номеру ни по наименованию и попытка ее получить - называется неправильной логикой приложения...

Самое интересное, что потребность в таком доступе существует, стоит только поискать обсуждение этой темы на форумам самого sybase'a... Там периодически обсуждают эту тему начиная, по-моему, с 98 года... Итог всего этого: потребность есть, скрытая возможность есть, а в добавить функцию в стандартные почему то не торопятся...
...
Рейтинг: 0 / 0
26.01.2004, 17:25
    #32388166
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
Поддерживаю мнение dGrichine по этому вопросу. Действительно, весьма не ясно, почему к 9 версии нельзя было исправить.
Ну это из серии наличия объекта DataWindowChild в PowerBuilder'е, невозможности приведения объектов DataStore к DataWindow и обратно.
...
Рейтинг: 0 / 0
26.01.2004, 17:54
    #32388217
Ermak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
2 dGrichine
автор// далее некие действия

Можно узнать, что это за некоторые действия?
...
Рейтинг: 0 / 0
26.01.2004, 18:20
    #32388252
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
авторС одной стороны при дизайне и скриптинге DataWindow или DataStore с заранее определенными объектами получить ссылку на них можно как по наименованию так и по номеру. И это не называется кривостью дизайна/скриптинга, а является стандартным и описанным в документации методом работы с объектами входящими в состав DataStore.
С другой же стороны, при работе с DataStore созданными во время выполнения все происходит с точностью до наоборот - получить ссылку на объект нельзя ни по номеру ни по наименованию

Сие утверждение ложно. НИКАКОЙ разницы в том, что можно получить во время выполнения и при дизайне НЕТ. И там и там ты можешь обращаться с "объектами" сидящими внутри dataobjectа одинаково - или через Descirbe/Modify, или через dot notation.
Ссылку на TYPE DWObject ты получаешь ТОЛЬКО в событиях, предопределенных Sybaseом, и в плане этих ссылок разницы между runtime и design time нет .
...
Рейтинг: 0 / 0
26.01.2004, 18:48
    #32388284
andy753
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
To: Филипп Тут скорее всего речь идет не о "... во время выполнения и при дизайне ..." а о двух двух разных "типов" DW - созданных заранее и о которых мы знаем всю инфу и можем в скриптах напрямую работать с колонками...., и созданных динамически (например по синтаксису).

To: all
Так как народ (наверное в силу определенных причин) усиленно не хочет пользовать Descirbe/Modify (не совсем понятно почему...), то мучается с дот нотацией и удивляется - почему это не было сделано или сделано криво... Все это мне немного напоминают танцы с бубнами с API Windows :). Когда народ начинает юзать недокументированные функции и потом кричит, что мол все криво.

Чесно говоря - не совсем понимаю, почему Вы так до сих пор не работаете с Descirbe/Modify, может хоть пример приведете, где они "не спасают"? Тем более, насколько мне известно - работа с дот нотацией неэффективна (тормозит). Объясните, плиз...
...
Рейтинг: 0 / 0
26.01.2004, 19:02
    #32388305
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
andy753 , опять за рыбу деньги продаем - никакой разницы между авторDW - созданных заранее и о которых мы знаем всю инфу и можем в скриптах напрямую работать с колонками...., и созданных динамически (например по синтаксису) НЕТ .
...
Рейтинг: 0 / 0
26.01.2004, 19:20
    #32388327
dGrichine
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
Филипп
Ссылку на TYPE DWObject ты получаешь ТОЛЬКО в событиях, предопределенных Sybaseом, и в плане этих ссылок разницы между runtime и design time нет.

Вот с этим позвольте не согласиться. Ссылку на DWObject объект я могу получить в design time где угодно, а не только в событиях DataWindow(DataStore) - см Help - Using the DWObject variable, а вот в run time этого сделать не удастся.

Филипп
НИКАКОЙ разницы в том, что можно получить во время выполнения и при дизайне НЕТ. И там и там ты можешь обращаться с "объектами" сидящими внутри dataobjectа одинаково - или через Descirbe/Modify, или через dot notation.

Изменять свойства объекта с помошью функций Descirbe/Modify это одно, а вот иметь ссылку на сам объект это совсем другое...
Как ты получишь/изменишь свойства объекта в run time с помощью dot natation если имена и количество объектов тебе заранее неизвестно?

В моем первом постинге есть пример того что мне сделать не удалось в run time. Если вам удастся заполнить в run time массив значений la_any[] из primary буфера какой-либо колонки с помощью Describe и без использования цикла с пробегом от первой строки до последней, то попрошу пример кода...
Но, думаю, навряд ли это удастся сделать эффективнее чем la_any[] = ds_1.object.#23.Primary

Только не спрашивайте зачем, раз уж разницы нет, то покажите как...
...
Рейтинг: 0 / 0
26.01.2004, 19:43
    #32388343
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
авторКак ты получишь/изменишь свойства объекта в run time с помощью dot notation если имена и количество объектов тебе заранее неизвестно?

Количество, номера (да и имена, поскольку номера) объектов известны ВСЕГДА, а для получения/изменения свойств имена вообще НЕ нужны, поэтому любой dot notation для получения/изменения свойств работает.

Код: plaintext
Ссылку на DWObject объект я могу получить в design time 

Ну да, всё захардкодируя, при этом неизвестно хорошо это или нет, причём ясно, что используешь ты эту ссылку ТОЛЬКО опять для получения/изменения свойств, потому как datу ты из этой ссылки вынуть всё равно не можешь.

То есть единственный случай, когда твои претензии хоть сколько нибудь обоснованы, это dot notation Syntax for one or all data items in ONE named column, OK, только в чём проблема с использования цикла с пробегом от первой строки до последней, раз тебе так уж понадобилось оперировать с ОДНОЙ колонкой с неизвестным именем?
...
Рейтинг: 0 / 0
26.01.2004, 20:59
    #32388394
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
Да, ну и зачем DataWindowChild в PowerBuilder'е присутствует? :)
...
Рейтинг: 0 / 0
26.01.2004, 21:14
    #32388397
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
А простите, причём здесь DataWindowChild?
...
Рейтинг: 0 / 0
26.01.2004, 21:31
    #32388405
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
Ну к DWObject'у он, конечно, не при чем, но все-же как-то навеяло :), почему в PowerBuilder'е функция GetChild возвращает DataWindowChild, а не DataWindow/DataStore? Вообще-то вопрос даже более чем интересный (по крайней мере, лично для меня).
...
Рейтинг: 0 / 0
26.01.2004, 22:56
    #32388434
dGrichine
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
авторКоличество, номера (да и имена, поскольку номера) объектов известны ВСЕГДА, а для получения/изменения свойств имена вообще НЕ нужны, поэтому любой dot notation для получения/изменения свойств работает.
что то мы о разном говорим, наверное...
я так и не пойму, как можно имея номер или имя объекта (их всегда можно получить) использовать dot notation в run time
приведу пример:
попытаюсь получить тип колонки в run time, получая в run time же наименование и номер колонки...
Только не говорите, что для этих целей надо использовать Describe... знаю...
но раз говорят, что см цитату выше, то как это сделать я не пойму...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
integer li_cols, i
string  ls_colname, ls_coltype

li_cols      = Integer(ads.Describe( "DataWindow.Column.Count" ))
for i =  1  to li_cols
	ls_colname = ads.Describe( "#"  +string(i)+  ".Name" )
	ls_coltype = ads.object.ls_colname.Coltype 
	ls_coltype = ads.object.#i.Coltype
next

в обоих случаях получаем system error:
Error Number = 36
Error text = Name not found accessing external object property ls_colname
и
Error Number = 36
Error text = Name not found accessing external object property #i

автор...причём ясно, что используешь ты эту ссылку ТОЛЬКО опять для получения/изменения свойств, потому как datу ты из этой ссылки вынуть всё равно не можешь.
имея ссылку на DWObject я могу изменять как данные так и свойства, но мне нужны данные, которые я могу вынуть, манипулировать ими... получив массив с данными, я могу их изменить и заново присвоить их объекту, пример см Real's HowTo @ www.rgagnon.com
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Sort an array
We create a small datastore and use it to sort our array. datastore lds_temp
string ls_err
integer i

// change the datastore definition according to the array data type
long ll_array[] = {  2  ,  3 ,  6 ,  5  }
string ls_dsdef = &
   'release 6; datawindow() table(column=(type=long name=a dbname="a") )'

lds_temp = CREATE datastore
lds_temp.Create(ls_dsdef, ls_err)
// put the array in the datastore
lds_temp.object.a.current = ll_array
lds_temp.SetSort( "a ASC" )
lds_temp.Sort()
// get back the array
ll_array = lds_temp.object.a.current

FOR i =  1  to Upperbound(ll_array)
  MessageBox("", string(ll_array[i]))
NEXT

DESTROY lds_temp


а вот используя стандартый механизм
Код: plaintext
1.
2.
for i =  1  to li_cols
      la_any[] = ads.object.data[ 1 ,i,ads.RowCount(),i]
next

я, действительно не смог достучаться до данных, массив la_any[] в таком случае выглядит как массив структур... (кстати, надо будет попробовать со структурой)
автор
только в чём проблема с использования цикла с пробегом от первой строки до последней, раз тебе так уж понадобилось оперировать с ОДНОЙ колонкой с неизвестным именем?
бегать по строкам и получать данные можно, но для этого нужно использовать набор функций GetItemDate, GetItemString, GetItemNumber и т.д.... чтобы их использовать, мне нужно определить тип каждой колонки и писать что-то типа
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
CHOOSE CASE left(ads.Describe( "#" +string(i)+ ".Coltype" ), 4 )
	CASE 'char'
		тут используем GetItemString
	CASE 'deci'
		тут используем GetItemDecimal
	CASE <item>
		<statementblock>
		... т.д.
END CHOOSE

в случае же, если мне надо получить ВСЕ данные из DWObject, мне кажется проще и эффективнее использовать la_any[] = dwobjectvar.Primary
не говоря уже о быстродействии беганья по строкам
...
Рейтинг: 0 / 0
26.01.2004, 23:57
    #32388453
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
авторбегать по строкам и получать данные можно, но для этого нужно использовать набор функций GetItemDate, GetItemString, GetItemNumber и т.д.... чтобы их использовать, мне нужно определить тип каждой колонки и писать что-то типа
Есть ерунда, делается это так:
Код: plaintext
1.
any	 lany
lany = ads.object.data[row, i])

где i - номер колонки.

А тут очепятка, вот так должно быть:
Код: plaintext
а для получения/изменения свойств имена вообще НЕ нужны, а любой dot notation для получения/изменения данных работает

(поскольку номер колонки известен, а получения/изменения свойств делаются естественно через Describe/Modify, что в любом случае лучше с точки зрения error handling)

авторно мне нужны данные, которые я могу вынуть, манипулировать ими... получив массив с данными, я могу их изменить и заново присвоить их объекту
...и далее идёт пример сортировки - блестящая идея, вынуть данные из объекта, который знает как и умеет сортировать, засунуть их в специально созданный объект (такого же класса, который умеет и знает тоже самое), потом нести их обратно.

Вы бы может поточнее задачу обрисовали, которую на самом деле решать пытаетесь, вместо того, чтоб сначала "решить", как вы её решать хотите, а потом жаловаться, что PowerBuilderное одеяло не натягивается на некоторые из ног вашего "решения"...
...
Рейтинг: 0 / 0
27.01.2004, 09:36
    #32388574
dGrichine
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
Я тебе про Фому, ты мне про Ерему... :)

Я тебе говорю, что иметь ссылку на DWObject полезно, указываю место в документации, ты мне говоришь, что-то про проблемы дизайна, хардкоддинг и одеяло :)

Я тебе говорю что получить ссылку на DWObject в design time можно, а в run time нельзя, ты мне говоришь, что нет никакой разницы... раз уж так, приведи пример.

Ты мне говоришь, что нельзя манипулировать данными из DWObject'а, я тебе показываю что это сделать довольно легко, привожу пример с сортировкой массива. Пример приведен, только для доказательства такой возможности.

Ну и навскидку задача, которую не может решить стандарный DataStore. Сразу оговорюсь, это не задача, которую я решал...
Пусть есть объект DataStore, сформированный и заполненный динамически НЕСВЯЗАННЫМИ между собой данными. Необходимо произвести сортировку данных одного или нескольких объектов, входящих с состав этого DataStore так, чтобы соседние данные остались на прежних местах...

И еще одна задача:
Необходимо в заполненный DataStore добавить копию какой-нибудь колонки, т.е. было 10 столбцов, стало 11, т.е. реализовать что-то типа
ds_1.AddColumn(name, type, data[], columnplace)
...
Рейтинг: 0 / 0
27.01.2004, 09:41
    #32388588
andy753
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
)) ну просто Ексел какой-то получается... Сори за офтоп.
...
Рейтинг: 0 / 0
27.01.2004, 18:54
    #32389692
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
авторЯ тебе говорю что получить ссылку на DWObject в design time можно
ТОЛЬКО захардкодив имена, понятно, что дальше продолжать бессмысленно.

авторПусть есть объект DataStore, сформированный и заполненный динамически НЕСВЯЗАННЫМИ между собой данными. Необходимо произвести сортировку данных одного или нескольких объектов, входящих с состав этого DataStore так, чтобы соседние данные остались на прежних местах...

Ну так и что, из динамически сделанных колонок вынимать данные (и вставлять их) строковым перебором (причём можно и без лишнего CASTинга, как я показал выше), а сортировщик можно построить статический, со колонками всех типов данных и для вставления/вынимания данных в него/из него использовать dot notation и array asignments, всех дел то...

авторИ еще одна задача:
Необходимо в заполненный DataStore добавить копию какой-нибудь колонки, т.е. было 10 столбцов, стало 11, т.е. реализовать что-то типа

Ну а с этим вообще непонятно, при чём здесь DWObject, когда весь dataobject заново CREATEать надо...
...
Рейтинг: 0 / 0
27.01.2004, 20:34
    #32389812
PL99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
ФилиппНу а с этим вообще непонятно, при чём здесь DWObject, когда весь dataobject заново CREATEать надо
Для External DатаWindow в свое время было опубликовано решение...
Заранее прошу прощения за длинную цитату, но может кому-то пригодится :-)

Код: 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.
Вот пpимеp скpипта. Я добавлял колонку c3 в External DataWindow
о двух колонках. Опpобовано на  6 . 5 

==== Hачало файла ADDCOL.TXT ====
string ls_syntax   // Синтакс DW
int    li_cnt      // Счетчик скобок
long   ll_cnt      // Счетчик символов
string ls_current  // Текущий символ

// Получаем синтакс
ls_syntax=dw_sheet.describe('DataWindow.Syntax')

// Ищем в нем конец table
li_cnt= 1 
FOR ll_cnt=pos(ls_syntax,'table(')+ 6  TO len(ls_syntax)
   // Ищем скобки
   ls_current=mid(ls_syntax,ll_cnt, 1 )
   IF ls_current='(' THEN
      li_cnt++
   LSEIF ls_current=')' THEN
      li_cnt  --
 
   END IF

   // Может, уже все нашли
   IF li_cnt= 0  THEN EXIT
NEXT

// Конец секции table найден - теперь вставляем колонку
// Имя колонки и тип вставляешь нужные (в примере c3 - char( 100 ))
ls_syntax=mid(ls_syntax, 1 ,ll_cnt - 1 )+&
             'column=(type=char(100) name=c3 dbname="c3" )'+&
              mid(ls_syntax,ll_cnt, 99999 )

// Создаем DataWindow заново
dw_sheet.create(ls_syntax)

// Делаем колонку c3 видимой
// Здесь можно вообще перечислять все атрибуты, Hо было лень все это писать
// Это можно сделать и непосpедстенно чеpез синтакс
// id - поpядковый номеp колонки в table()
dw_sheet.modify('create column( id=3 tabsequence=30 band=detail y="4"'+&
                ' x="200" height="60" width="200" name=c3 '+&
                'background.color="1086902488" color="33554432")')
==== Конец файла ADDCOL.TXT ====
Vlad.

(С) Влад Ермолаев, приблизительно конец прошлого века :-)
...
Рейтинг: 0 / 0
27.01.2004, 20:41
    #32389821
dGrichine
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли получить ссылку на DWObject по его номеру?
Давай вспомним из-за чего разгорелся спор. Я утверждал, что получить ссылку на DWObject в дизайнтайм можно, а в рантайм нельзя. Ты утверждал, что нет никаких различий в дизайне и рантайме.
Пусть получать ссылку на DWObject трижды неправильно (по-твоему мнению) и это будет хардкодинг, но получить ее в рантайме у тебя не получится...

авторНу так и что, из динамически сделанных колонок вынимать данные (и вставлять их) строковым перебором (причём можно и без лишнего CASTинга, как я показал выше)
можно, но какой смысл так делать? Данные в колонке уже являются массивом и вынуть/вставить их можно простым присваиванием этого массива локальному массиву.
Я никогда не поверю, что при копировании содержимого массивов из одного в другой ты ходишь по одному перебором (от первого элемента к последнему или от последнего к первому) и вставляешь данные поэлементно в другой... Копирование всех данных из DWObject'a в массив и обратно это как раз частный случай присвоения одного массива другому.

автора сортировщик можно построить статический, со колонками всех типов данных и для вставления/вынимания данных в него/из него использовать dot notation и array asignments, всех дел то...
зачем же строить/изобретать статический сортировщик, если сортировать прекрасно умеет dataobject... пример с сортировкой массива с использованием динамически создаваемого datastore, который я приводил выше, прекрасно с эти справляется.

авторНу а с этим вообще непонятно, при чём здесь DWObject, когда весь dataobject заново CREATEать надо...
правильно, dataobject придется пересоздавать, а вот чтобы данные из него не потерять тут как раз пригодилась бы прямая ссылка на DWObject. Но при копировании содержимого одного DWObjecta в другой этого можно избежать и использовать dot notation, как я показывал выше.
А если необходимо не копировать, а присвоить новой колонке какие-то другие данные, находящиеся в локальном одномерном массиве, то без ссылки на DWObject не обойтись...

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


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