|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
Например 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2004, 17:00 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
По имени можно вот так http://lokshinmark.narod.ru/tips.htm#tip0017 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2004, 17:43 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
Спасибо, оказывается по номеру тоже можно, например так: 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2004, 18:06 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
В общем это дурацкая практика, поскольку: 1) чаще всего это просто не нужно 2) синтаксис этот (get_attribute) НЕ документирован, НЕ поддержан, и меняется от версии к версии РВ ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2004, 18:38 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
Согласен, что пользоваться недокументированными функциями нехорошо... Но меня немного удивляет, что стандартными и документированными средствами билдера нельзя в рантайме получить ссылку на DWObject по его имени или номеру... Во время разработки в коде можно указать: DWObject ldwo ldwo = dw_1.Object.colname или ldwo = dw_1.Object.#1 а рантайме стандартными средствами этого делать нельзя... чем можно объяснить отстутсвие стандартных средств? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2004, 19:06 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
авторчем можно объяснить отстутсвие стандартных средств? Тем, что кажущаяся необходимость его получить есть верный признак проблем в дизайне твоей логики/скриптинга... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2004, 19:13 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
Есть подозрение, что скорее проблема не в дизайне, а в методологическом взгляде на вещи. Скорее всего dGrichine привык работать с объектами, посему и пытается работать с DW не как с целостным объектом, а как с контейнером... Я бы просто рекомендовал поработать и попрактиковаться в использовании Describe в DW ему. Надеюсь, это уберет максимум вопросов. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2004, 11:27 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
все заключается в том, что приложение, которым я занимаюсь является на 100% невизуальным, работаю только с DataStore (в первом постинге не зря указано ds_1), которые создаются в рантайме с помощью SyntaxFromSQL, следовательно ничего о количестве, наименовании и типе объектов во время написания скрипта я знать не могу и не знаю. Иметь же к ним (объектам) доступ в рантайме мне необходимо. Еще раз повторюсь, что мне кажется странным: С одной стороны при дизайне и скриптинге DataWindow или DataStore с заранее определенными объектами получить ссылку на них можно как по наименованию так и по номеру. И это не называется кривостью дизайна/скриптинга, а является стандартным и описанным в документации методом работы с объектами входящими в состав DataStore. С другой же стороны, при работе с DataStore созданными во время выполнения все происходит с точностью до наоборот - получить ссылку на объект нельзя ни по номеру ни по наименованию и попытка ее получить - называется неправильной логикой приложения... Самое интересное, что потребность в таком доступе существует, стоит только поискать обсуждение этой темы на форумам самого sybase'a... Там периодически обсуждают эту тему начиная, по-моему, с 98 года... Итог всего этого: потребность есть, скрытая возможность есть, а в добавить функцию в стандартные почему то не торопятся... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2004, 17:16 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
Поддерживаю мнение dGrichine по этому вопросу. Действительно, весьма не ясно, почему к 9 версии нельзя было исправить. Ну это из серии наличия объекта DataWindowChild в PowerBuilder'е, невозможности приведения объектов DataStore к DataWindow и обратно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2004, 17:25 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
2 dGrichine автор// далее некие действия Можно узнать, что это за некоторые действия? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2004, 17:54 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
авторС одной стороны при дизайне и скриптинге DataWindow или DataStore с заранее определенными объектами получить ссылку на них можно как по наименованию так и по номеру. И это не называется кривостью дизайна/скриптинга, а является стандартным и описанным в документации методом работы с объектами входящими в состав DataStore. С другой же стороны, при работе с DataStore созданными во время выполнения все происходит с точностью до наоборот - получить ссылку на объект нельзя ни по номеру ни по наименованию Сие утверждение ложно. НИКАКОЙ разницы в том, что можно получить во время выполнения и при дизайне НЕТ. И там и там ты можешь обращаться с "объектами" сидящими внутри dataobjectа одинаково - или через Descirbe/Modify, или через dot notation. Ссылку на TYPE DWObject ты получаешь ТОЛЬКО в событиях, предопределенных Sybaseом, и в плане этих ссылок разницы между runtime и design time нет . ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2004, 18:20 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
To: Филипп Тут скорее всего речь идет не о "... во время выполнения и при дизайне ..." а о двух двух разных "типов" DW - созданных заранее и о которых мы знаем всю инфу и можем в скриптах напрямую работать с колонками...., и созданных динамически (например по синтаксису). To: all Так как народ (наверное в силу определенных причин) усиленно не хочет пользовать Descirbe/Modify (не совсем понятно почему...), то мучается с дот нотацией и удивляется - почему это не было сделано или сделано криво... Все это мне немного напоминают танцы с бубнами с API Windows :). Когда народ начинает юзать недокументированные функции и потом кричит, что мол все криво. Чесно говоря - не совсем понимаю, почему Вы так до сих пор не работаете с Descirbe/Modify, может хоть пример приведете, где они "не спасают"? Тем более, насколько мне известно - работа с дот нотацией неэффективна (тормозит). Объясните, плиз... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2004, 18:48 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
andy753 , опять за рыбу деньги продаем - никакой разницы между авторDW - созданных заранее и о которых мы знаем всю инфу и можем в скриптах напрямую работать с колонками...., и созданных динамически (например по синтаксису) НЕТ . ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2004, 19:02 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
Филипп Ссылку на 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 Только не спрашивайте зачем, раз уж разницы нет, то покажите как... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2004, 19:20 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
авторКак ты получишь/изменишь свойства объекта в run time с помощью dot notation если имена и количество объектов тебе заранее неизвестно? Количество, номера (да и имена, поскольку номера) объектов известны ВСЕГДА, а для получения/изменения свойств имена вообще НЕ нужны, поэтому любой dot notation для получения/изменения свойств работает. Код: plaintext
Ну да, всё захардкодируя, при этом неизвестно хорошо это или нет, причём ясно, что используешь ты эту ссылку ТОЛЬКО опять для получения/изменения свойств, потому как datу ты из этой ссылки вынуть всё равно не можешь. То есть единственный случай, когда твои претензии хоть сколько нибудь обоснованы, это dot notation Syntax for one or all data items in ONE named column, OK, только в чём проблема с использования цикла с пробегом от первой строки до последней, раз тебе так уж понадобилось оперировать с ОДНОЙ колонкой с неизвестным именем? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2004, 19:43 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
Да, ну и зачем DataWindowChild в PowerBuilder'е присутствует? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2004, 20:59 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
А простите, причём здесь DataWindowChild? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2004, 21:14 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
Ну к DWObject'у он, конечно, не при чем, но все-же как-то навеяло :), почему в PowerBuilder'е функция GetChild возвращает DataWindowChild, а не DataWindow/DataStore? Вообще-то вопрос даже более чем интересный (по крайней мере, лично для меня). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2004, 21:31 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
авторКоличество, номера (да и имена, поскольку номера) объектов известны ВСЕГДА, а для получения/изменения свойств имена вообще НЕ нужны, поэтому любой dot notation для получения/изменения свойств работает. что то мы о разном говорим, наверное... я так и не пойму, как можно имея номер или имя объекта (их всегда можно получить) использовать dot notation в run time приведу пример: попытаюсь получить тип колонки в run time, получая в run time же наименование и номер колонки... Только не говорите, что для этих целей надо использовать Describe... знаю... но раз говорят, что см цитату выше, то как это сделать я не пойму... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
в обоих случаях получаем 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.
а вот используя стандартый механизм Код: plaintext 1. 2.
я, действительно не смог достучаться до данных, массив la_any[] в таком случае выглядит как массив структур... (кстати, надо будет попробовать со структурой) автор только в чём проблема с использования цикла с пробегом от первой строки до последней, раз тебе так уж понадобилось оперировать с ОДНОЙ колонкой с неизвестным именем? бегать по строкам и получать данные можно, но для этого нужно использовать набор функций GetItemDate, GetItemString, GetItemNumber и т.д.... чтобы их использовать, мне нужно определить тип каждой колонки и писать что-то типа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
в случае же, если мне надо получить ВСЕ данные из DWObject, мне кажется проще и эффективнее использовать la_any[] = dwobjectvar.Primary не говоря уже о быстродействии беганья по строкам ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2004, 22:56 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
авторбегать по строкам и получать данные можно, но для этого нужно использовать набор функций GetItemDate, GetItemString, GetItemNumber и т.д.... чтобы их использовать, мне нужно определить тип каждой колонки и писать что-то типа Есть ерунда, делается это так: Код: plaintext 1.
где i - номер колонки. А тут очепятка, вот так должно быть: Код: plaintext
(поскольку номер колонки известен, а получения/изменения свойств делаются естественно через Describe/Modify, что в любом случае лучше с точки зрения error handling) авторно мне нужны данные, которые я могу вынуть, манипулировать ими... получив массив с данными, я могу их изменить и заново присвоить их объекту ...и далее идёт пример сортировки - блестящая идея, вынуть данные из объекта, который знает как и умеет сортировать, засунуть их в специально созданный объект (такого же класса, который умеет и знает тоже самое), потом нести их обратно. Вы бы может поточнее задачу обрисовали, которую на самом деле решать пытаетесь, вместо того, чтоб сначала "решить", как вы её решать хотите, а потом жаловаться, что PowerBuilderное одеяло не натягивается на некоторые из ног вашего "решения"... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2004, 23:57 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
Я тебе про Фому, ты мне про Ерему... :) Я тебе говорю, что иметь ссылку на DWObject полезно, указываю место в документации, ты мне говоришь, что-то про проблемы дизайна, хардкоддинг и одеяло :) Я тебе говорю что получить ссылку на DWObject в design time можно, а в run time нельзя, ты мне говоришь, что нет никакой разницы... раз уж так, приведи пример. Ты мне говоришь, что нельзя манипулировать данными из DWObject'а, я тебе показываю что это сделать довольно легко, привожу пример с сортировкой массива. Пример приведен, только для доказательства такой возможности. Ну и навскидку задача, которую не может решить стандарный DataStore. Сразу оговорюсь, это не задача, которую я решал... Пусть есть объект DataStore, сформированный и заполненный динамически НЕСВЯЗАННЫМИ между собой данными. Необходимо произвести сортировку данных одного или нескольких объектов, входящих с состав этого DataStore так, чтобы соседние данные остались на прежних местах... И еще одна задача: Необходимо в заполненный DataStore добавить копию какой-нибудь колонки, т.е. было 10 столбцов, стало 11, т.е. реализовать что-то типа ds_1.AddColumn(name, type, data[], columnplace) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2004, 09:36 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
)) ну просто Ексел какой-то получается... Сори за офтоп. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2004, 09:41 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
авторЯ тебе говорю что получить ссылку на DWObject в design time можно ТОЛЬКО захардкодив имена, понятно, что дальше продолжать бессмысленно. авторПусть есть объект DataStore, сформированный и заполненный динамически НЕСВЯЗАННЫМИ между собой данными. Необходимо произвести сортировку данных одного или нескольких объектов, входящих с состав этого DataStore так, чтобы соседние данные остались на прежних местах... Ну так и что, из динамически сделанных колонок вынимать данные (и вставлять их) строковым перебором (причём можно и без лишнего CASTинга, как я показал выше), а сортировщик можно построить статический, со колонками всех типов данных и для вставления/вынимания данных в него/из него использовать dot notation и array asignments, всех дел то... авторИ еще одна задача: Необходимо в заполненный DataStore добавить копию какой-нибудь колонки, т.е. было 10 столбцов, стало 11, т.е. реализовать что-то типа Ну а с этим вообще непонятно, при чём здесь DWObject, когда весь dataobject заново CREATEать надо... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2004, 18:54 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
ФилиппНу а с этим вообще непонятно, при чём здесь 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.
(С) Влад Ермолаев, приблизительно конец прошлого века :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2004, 20:34 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
Давай вспомним из-за чего разгорелся спор. Я утверждал, что получить ссылку на DWObject в дизайнтайм можно, а в рантайм нельзя. Ты утверждал, что нет никаких различий в дизайне и рантайме. Пусть получать ссылку на DWObject трижды неправильно (по-твоему мнению) и это будет хардкодинг, но получить ее в рантайме у тебя не получится... авторНу так и что, из динамически сделанных колонок вынимать данные (и вставлять их) строковым перебором (причём можно и без лишнего CASTинга, как я показал выше) можно, но какой смысл так делать? Данные в колонке уже являются массивом и вынуть/вставить их можно простым присваиванием этого массива локальному массиву. Я никогда не поверю, что при копировании содержимого массивов из одного в другой ты ходишь по одному перебором (от первого элемента к последнему или от последнего к первому) и вставляешь данные поэлементно в другой... Копирование всех данных из DWObject'a в массив и обратно это как раз частный случай присвоения одного массива другому. автора сортировщик можно построить статический, со колонками всех типов данных и для вставления/вынимания данных в него/из него использовать dot notation и array asignments, всех дел то... зачем же строить/изобретать статический сортировщик, если сортировать прекрасно умеет dataobject... пример с сортировкой массива с использованием динамически создаваемого datastore, который я приводил выше, прекрасно с эти справляется. авторНу а с этим вообще непонятно, при чём здесь DWObject, когда весь dataobject заново CREATEать надо... правильно, dataobject придется пересоздавать, а вот чтобы данные из него не потерять тут как раз пригодилась бы прямая ссылка на DWObject. Но при копировании содержимого одного DWObjecta в другой этого можно избежать и использовать dot notation, как я показывал выше. А если необходимо не копировать, а присвоить новой колонке какие-то другие данные, находящиеся в локальном одномерном массиве, то без ссылки на DWObject не обойтись... авторТОЛЬКО захардкодив имена, понятно, что дальше продолжать бессмысленно. Согласен, продолжать бессмысленно... доводы друг друга мы знаем и остались при своих мнениях... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2004, 20:41 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
2 PL99 в приведенном примере вы потеряете все данные, которые были в dataobjecte... задача же была скопировать колонку с данными или добавить новый столбец и заполнить его какими-то данными... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2004, 20:47 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
2 dGrichine Пример был приведен именно (и только) в качестве примера :-) динамического создания колонки... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2004, 21:01 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
авторзачем же строить/изобретать статический сортировщик, если сортировать прекрасно умеет dataobject... пример с сортировкой массива с использованием динамически создаваемого datastore, который я приводил выше, прекрасно с эти справляется. А затем, что в динамически созданном ты не сможешь данные вынимать через dot notation в array в одну строку, поскольку к твоему сожалению захардкодить имена не удастся :-) авторможно, но какой смысл так делать? Смысл вытекает из идиотизма задачи типа: Пусть есть объект DataStore, сформированный и заполненный динамически НЕСВЯЗАННЫМИ между собой данными. Необходимо произвести сортировку данных одного или нескольких объектов, входящих с состав этого DataStore так, чтобы соседние данные остались на прежних местах... Повторю ещё раз, хошь динамически, делай строковый перебор, хочешь статически, хардкодируя - вот тут для тебя сделали поблажку в design time в виде shortcutа из array assignments ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2004, 23:01 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
автор...задача же была добавить новый столбец и заполнить его какими-то данными (без потери данных в остальных столбцах)... Эта задача не решается ВНЕ ЗАВИСИМОСТИ от возможности получить ссылку на DWObject по его номеру... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2004, 23:04 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
Кстати, о примере когда хорошо бы получать ссылку на DWObject. Есть у нас DataWindow с какими-то манипуляциями на ItemChanged, сделано окошко, все работает. И тут, вас просят разместить на окне кнопку, нажав на которую в текущее поле (если оно datetime) попадает, к примеру, текущее время. Не пригодился ли бы тут DWObject? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2004, 14:19 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
авторСмысл вытекает из идиотизма задачи Из того что, тебе такая задача в жизни не встретилась совсем не значит, что она идиотская... теперь я не удивлюсь, что ты придерживаешься мнения, что все, что не может делать PB, или все, что ты не можешь в нем реализовать, являются идиотскими идеями и задачами :) авторА затем, что в динамически созданном ты не сможешь данные вынимать через dot notation в array в одну строку, поскольку к твоему сожалению захардкодить имена не удастся :-) см пример с сортировкой массива, который я указал выше, смотри там строчку: Код: plaintext 1.
или по твоему это не извлечение данных в массив через dot notation одной строчкой кода? получив ссылку на DWObject динамически, я могу сделать тоже самое Код: plaintext 1. 2.
или опять скажешь, что низззя? :) авторПовторю ещё раз, хошь динамически, делай строковый перебор... ну это мы уже обсудили, как лучше присваивать массивы между собой... а вот тут: авторхочешь статически, хардкодируя - вот тут для тебя сделали поблажку в design time в виде shortcutа из array assignments что и требовалось доказать - различия между run time & design time есть . в design time поблажка есть, а в run time нет... что меня удивило и о чем я говорил ранее... авторЭта задача не решается ВНЕ ЗАВИСИМОСТИ от возможности получить ссылку на DWObject по его номеру... ты сам то пробовал? или это твое ИМХО? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2004, 15:32 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
2 dGrochine автор автор А затем, что в динамически созданном ты не сможешь данные вынимать через dot notation в array в одну строку, поскольку к твоему сожалению захардкодить имена не удастся :-) см пример с сортировкой массива, который я указал выше, смотри там строчку: // get back the array ll_array = lds_temp.object.a.current или по твоему это не извлечение данных в массив через dot notation одной строчкой кода? В приведенном Вами примере: ll_array = lds_temp.object. a .current Имя колонки известно в момент создания dataStore: Код: plaintext
Видите? Так что, в данном случае при использовании dot notation имеет место быть явное указание (так называемый хардкодинг) имени колонки. Мне интересно, как Вы решите подобную задачу, если DataWindow заменить на Excel? Тоже хочется что бы не зная ничего о структуре данных в листе Excel'я, просто взять и скопировать допустим колонку №5 в массив, просто одним оператором присвоения. Что бы не гемороитья вообще никак. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2004, 16:45 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
2 Ermak авторТак что, в данном случае при использовании dot notation имеет место быть явное указание (так называемый хардкодинг) имени колонки. это понятно... lds_temp.object.a это и есть DWObject посмотрите на пример чуть ниже, где я могу получить ссылку на DWObject без указания имени, просто по номеру Код: plaintext 1. 2. 3. 4. 5. 6. 7.
здесь тоже хардкоддинг? тогда в функции <datawindow>.Describe(<ColunmName>.<ColProperty>) тоже присутствует хардкоддинг... другое дело, что стандартной функции получения DWObject'a по его имени или номеру нет... про Excel ничего сказать не могу, сорри... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2004, 17:05 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
Да ладно вам спорить впустую. Если надо DWObject - используйте get_attribute, просто нужно помнить что в разных версиях - разное имя и в будущих версиях оно вообще может быть удалено. Пока же известно, что в версиях 6-10 эта ф-я есть (про предыдущие не знаю). Значит пишем что-то вроде этого: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2004, 17:17 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
автордругое дело, что стандартной функции получения DWObject'a по его имени или номеру нет... В том-то и дело, что нет. Ох и не спроста же его уже столько лет всё нет и нет. Все-таки я бы не стал использовать get_attribute(...), в виду её недокументированности. Для меня стабильность (надежность) работы приложения значат больше моего удобства кодирования. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2004, 17:21 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
авторДа ладно вам спорить впустую. согласен с Anatoly Moskovsky, спор прекращаю :) надеюсь, что хоть что-то полезное из этого топика можно почерпнуть и напоследок, наколенный пример копирования колонки датасторе с данными, без использования ненависной get_attribute() :) Код: 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. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2004, 18:26 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
автор// пересоздадим lds_source уже на основе нового синтаксиса Код: plaintext 1. 2. 3. 4. 5.
Кстати, то что идёт после фразы " или одним куском ", никому не нужно, у lds_source и lds_target теперь ведь dataobjectы одинаковые, надо просто вот так: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2004, 18:55 |
|
Возможно ли получить ссылку на DWObject по его номеру?
|
|||
---|---|---|---|
#18+
По поводу получения ссылки на DWO (соседний топик навеял :) Код: plaintext 1. 2. 3. 4. 5. 6.
Правда тут свойства теряются, но зато данные есть. :) И их можно изменять (изменения отражаются в исходном DW) : Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2004, 11:56 |
|
|
start [/forum/topic.php?all=1&fid=15&tid=1339322]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
229ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 334ms |
0 / 0 |