|
Как изменить retrieve аргументы DW
|
|||
---|---|---|---|
#18+
У меня такой вопрос, может он покажется глупым, но все-таки... Есть какой нибудь способ изменить retrieve аргументы DW без вызова функции retrieve? (например данные в DW я могу подменить через Object.Data) Или вообще никак этого сделать нельзя? Заранее спасибо за ответы. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2003, 14:40 |
|
Как изменить retrieve аргументы DW
|
|||
---|---|---|---|
#18+
Никогда не сталкивался с такой необходимостью, разве что агрументы для оформления DW... Собственно для этого или для чего? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2003, 15:07 |
|
Как изменить retrieve аргументы DW
|
|||
---|---|---|---|
#18+
Вообще мне надо для того чтобы я имею отретривленное DW, например в представлении grid. Я меняю DataObject на DW в другом представлении, например freeform. Данные передаю через Object.Data, а как передать ретрив аргументы без использования функции retrieve() я не знаю, а в окне эти аргументы используются, например в вычисляемых полях. Я конечно могу вызвать retrieve() и на событие retrievestart убить ретрив, но зачем это? И если так делать начинается гиморой со статусами записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2003, 16:11 |
|
Как изменить retrieve аргументы DW
|
|||
---|---|---|---|
#18+
Задача, мне кажется, не совсем стандартная. Я точно не знаю, но может быть следует посмотреть через Browser на Properties DataWindow. Вот я глянул, может эти можно как-то использовать: d_data.help.typeid.retrieve.argument d_data.table.arguments d_data.table.sqlselect Погляди, может сам чего накопаешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2003, 16:40 |
|
Как изменить retrieve аргументы DW
|
|||
---|---|---|---|
#18+
Думаю надо подумать над использованием функции ShareData() ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2003, 17:39 |
|
Как изменить retrieve аргументы DW
|
|||
---|---|---|---|
#18+
Я внимательно посмотрел еще раз свойства DW, но ничего там не нашел насчет значений ретрив аргументов. Как пример datawindow.table.arguments - возврашает строку содержащую название_ретрив_аргумента и тип_ретрив_аргумента и т.д. И все остальные свойства, все что угодно, но не то что мне надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2003, 17:43 |
|
Как изменить retrieve аргументы DW
|
|||
---|---|---|---|
#18+
Насчет ShareDate, это все конечно прекрасно, я тоже над этим задумываля, но для этого надо, как минимум, иметь еще одно DW (чтобы расшаривать данные), а у меня все происходит в одном. Так же я пробовал использовать GetFullState и SetFullState для смены DW, но тут происходит такая фигня, что он !!! представление сменить не может!!!, хотя возвращает 1, т.е. все ok. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2003, 17:49 |
|
Как изменить retrieve аргументы DW
|
|||
---|---|---|---|
#18+
А что мешает добавить поля и запихивать в них значения аргументов? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2003, 18:21 |
|
Как изменить retrieve аргументы DW
|
|||
---|---|---|---|
#18+
DenisVK Насчет ShareDate, это все конечно прекрасно, я тоже над этим задумываля, но для этого надо, как минимум, иметь еще одно DW (чтобы расшаривать данные) Можно получать данные в DataStore, потом шарить на него Ваши DataWindow. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2003, 18:41 |
|
Как изменить retrieve аргументы DW
|
|||
---|---|---|---|
#18+
Насчет, чтобы запихать их как поля, я и об этом думал и рассматриваю его как вариант вместе со всем выше перечисленным, но все-таки хочется достучаться напрямую к этим ретрив аргументам, может есть еще методы? Пишите все, расмотрю все варианты. Да и спасибо за ответы. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2003, 18:43 |
|
Как изменить retrieve аргументы DW
|
|||
---|---|---|---|
#18+
ASCRUS Можно получать данные в DataStore, потом шарить на него Ваши DataWindow. Но в данном случает, т.к. DataStore всетаки невизуальный объект, простой вопрос как я смогу отобразить эти данные взамен моего DW? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2003, 18:46 |
|
Как изменить retrieve аргументы DW
|
|||
---|---|---|---|
#18+
Можно получать данные в DataStore, потом шарить на него Ваши DataWindow. Это не поможет в решении поставленной проблемы, retrieval arguments не сидят в datawindow buffer, посему share их не принесёт и computed columns не пересчитаются... Если в оригинальном (grid) dataobjecte в detail band поместить computes, которые приравнять к retrieval arguments, то будет доступ к ним через GetItemxxx, но большого толку от этого нет, так как они всё равно через Object.Data не приедут - их нужно будет ручками куда-то пихать. Запихать их можно только в реальные колонки, чтобы в последствии computes, которые на эти реальные колонки смотрят, пересчитались. Это значит, что нужно изменять column list freeform datawindow. Но тогда будет column list mismatch, и скорее всего Object.Data assignment перестанет работать. Если не менять дизайн, наиболее переспективным (хотя и не факт, что работать будет), мне кажется подход с Retrievestart event, который автор просто не довёл до конца... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2003, 18:57 |
|
Как изменить retrieve аргументы DW
|
|||
---|---|---|---|
#18+
Мда - насчет DataStore я не подумавши сказал :) А если в computed field ссылаться не на параметры, а на собственную глобальную функцию, которая по имени параметров возвращает их значения ? По идее тогда можно было бы для стандартизации сего процесса написать сервис по аналогу сервисов PFC, который на событие DataWindow RetrieveEnd считывает значения параметров в глобальный класс коллекцию параметров, хранящихся раздельно по каждому DataWindow, Тогда глобальная функция спокойно может по 2 параметрам DataWindowName и ParamName возвращать значение параметра. На Destroy DataWindow можно прицепить удаление списка значений его параметров из глобальной коллекции параметров. В принципе делов то на десяток другой строк, зато готовое решение. P.S. Сильно не пинать если я предложил не сильно хорошее решение - я еще не волшебник, я только учусь :) Сложно все таки отвыкнуть рассуждать по Дельфийски, лучше послушаю, что спецы скажут, может решение попроще есть :) Если же нет, мне недолго такой сервис накатать - во всяком случае класс коллекцию, хранящего значения именованных параметров я сразу для PB накатал, как только его стал учить - а то неудобно было параметры по ссылке в форму передавать, не лепить же в самом деле из за этого в библиотеках структуры и обьекты :) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2003, 00:37 |
|
Как изменить retrieve аргументы DW
|
|||
---|---|---|---|
#18+
Для того, чтобы попробовать найти "решение попроще", надо понять 1) изначальную мотивацию упражнения: retrieval into grid -> смена dataobject на feeform -> перекачка данных... 2) что именно ты собрался считать с помощью computes на клиенте (может лучше на БД посчитать), да ещё и после таких исхищрений как 1), базируясь на retrieval arguments 3) какова отдача от такого сервиса, как ты собрался написать. IMHO, кроме учебной (лично для тебя) - нулевая. Ну и ваще, как у нас тут говорят, надо принцип KISS уважать... ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2003, 01:42 |
|
Как изменить retrieve аргументы DW
|
|||
---|---|---|---|
#18+
Большое спасибо за Ваши ответы. Очень рад, что открылся наконец такой форум, соответсвенно отдельное спасибо организатором сего. Подведу, так сказать резюме: 1. Все из выше перечисленного, к моему глубокому сожедению я и так знал. Но!!! Все равно огромное спасибо за Ваши ответы. 2. Решение этой проблемы соответсвенно 4, каждый имеет свои плюсы и минусы (вдоваться в подробности не буду): а. Вообще отказаться от ретрив аргументов (в некоторых случаях это возможно, в некоторых получаем определенный гиморой). б. Выкинуть ретрив аргументы в select. в. Использовать ShareDate с двумя DW и соответсвенно отображать, то одно то другое. г. С чего я и начал впринципе писать использовать функцию retrieve() и на событие retrievestart отрубать ретрив ~ return 1. На этом, думую, обсуждать эту тему не имеет дальнейшего смысла. !!!НО!!! Если есть еще какое-то другое (само-собой разумное) решение, большая просьба написать мне на мыло или оставить сообщение. Да тут у меня еще совершенно отдельный вопрос: Кто нибудь имел дело с тех.потдержкой по PB у Sybase? Ваше мнение? И есть ли там нормальные специалисты по РВ. Выскажусь сам, от одного такого специалиста вся моя бывшая контора была в шоке. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2003, 09:49 |
|
Как изменить retrieve аргументы DW
|
|||
---|---|---|---|
#18+
Филипп Такой сервис как раз позволит вычисляемым полям, ссылающимся на Retrieve Arguments спокойненько работать в зашаренных DataWindow, так как Вы же сами написали, что при зашаривании аргументы не видны. Фактически он позволит в DataWindow видеть и использовать в вычислямых полях любые установленные в приложении параметры. По моему это гораздо логичнее для текущей задачи, чем прерывать считывание на RetrieveStart (грозит сброс буферов) или впихивать эти аргументы в поля набора данных, таким образом зазря тратя память. Плюс сервис может обеспечить изменение и в том числе динамическое параметров, что тоже может пригодиться. По моему все просто и логично (во всяком случае для меня). Обьясните плиз недостатки такого подхода, надо же разобраться как программисты PB мыслят, чтобы разрабатывать "совместимые" с ними решения :) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2003, 12:05 |
|
Как изменить retrieve аргументы DW
|
|||
---|---|---|---|
#18+
Еще можна попробовать вариант из функциями Describe(), Modify(), Evalution() чтоб поработать с вычисляемыми полями для изменения их выражения (вместо аргумента поставить его новое значение) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2003, 12:15 |
|
Как изменить retrieve аргументы DW
|
|||
---|---|---|---|
#18+
DenisVK писал:Кто нибудь имел дело с тех.потдержкой по PB у Sybase? Был у них на семинаре по PB+ASA. Не знаю, те же люди осуществляют сапорт или нет, но впечатление, в целом благоприятное. Полученных на семинаре знаний хватило моему бывшему коллеге чтобы развернуть Jaguar у себя в инвестбанке. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2003, 13:01 |
|
Как изменить retrieve аргументы DW
|
|||
---|---|---|---|
#18+
Самое элегантное и удачное решение данной проблемы я считаю предложил Микола :) Действительно, что мешает через Modify изменять значения вычисляемых полей на нужные. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2003, 13:49 |
|
Как изменить retrieve аргументы DW
|
|||
---|---|---|---|
#18+
Как изменить retrive аргументы втихушку не знаю, но получить их текущее значение можно так: Код: plaintext
Где a_cardid - собственно имя retrieve аргумента. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2003, 15:17 |
|
|
start [/forum/topic.php?fid=15&fpage=116&tid=1339571]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 245ms |
total: | 393ms |
0 / 0 |