23.10.2003, 09:34 | #1 |
Дмитрий Ерин
|
Как достать Common из FormDataSource?
Прошу прощения за дублирование этого сообщения (первоначально оно было в теме "Программирование в среде MorphX..."), но из-за особенностей навигации на сайте этот форум - "Программирование в Аксапта (дороботка)" - посещается гораздо чаще.
Вопрос такой: есть класс, в который при создании передается параметром ДатаСорс формы. А в этом классе необходимо получить доступ к таблице этого ДатаСорса. Именно к таблице, то есть к объекту типа Common. Нужно это для того, чтобы потом можно было выполнять такие запросы к этой таблице: PHP код:
|
|
23.10.2003, 10:24 | #2 |
NavAx
|
можно попробовать так
PHP код:
|
|
23.10.2003, 10:28 | #3 |
NavAx
|
можно так
PHP код:
|
|
23.10.2003, 10:31 | #4 |
NavAx
|
поищи в AOT такой текст
switch (_common.tableId) и надешь кучу примеров |
|
23.10.2003, 10:46 | #5 |
Дмитрий Ерин
|
Так мне-то наоборот нужно
В указанных примерах тип таблицы указан ЯВНО: SalesTable salesTable; так то оно без проблем работает. А нужно, чтобы тип таблицы заранее не был известен, а передавалась она как-то через FormDataSource... Идентификатор ее я могу вытащить через DataSource.table(), но вопрос в том, как из него получить объект Common, а не заранее известный тип таблицы... |
|
23.10.2003, 10:58 | #6 |
----------------
|
RTFM - System Documentation\ Classes\ FormDataSource
FormDataSource.cursor()
а можно еще воспользоваться Query & QueryRun для получения данных по известному TableId |
|
23.10.2003, 11:34 | #7 |
Дмитрий Ерин
|
Спасибо!
cursor() действительно работает! |
|
23.10.2003, 12:32 | #8 |
Administrator
|
Цитата:
Изначально опубликовано Ruff
cursor() действительно работает! Для более подробного ответа, необходимо знать подробности вашей задачи.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
23.10.2003, 12:49 | #9 |
Дмитрий Ерин
|
Цитата:
Изначально опубликовано Maxim Gorbunov
Лучше создать еще один объект, и делать select'ы по нему. Для более подробного ответа, необходимо знать подробности вашей задачи. А вот насчет "создать еще один объект" хотелось бы поподробнее, если можно... |
|
23.10.2003, 14:22 | #10 |
Модератор
|
Цитата:
А вот насчет "создать еще один объект" хотелось бы поподробнее, если можно...
|
|
23.10.2003, 14:24 | #11 |
NavAx
|
Цитата:
Изначально опубликовано Ruff
А вот насчет "создать еще один объект" хотелось бы поподробнее, если можно... PHP код:
__________________
С уважением, Игорь Ласийчук. |
|
23.10.2003, 14:31 | #12 |
Administrator
|
Чтобы понять, что я имел в виду, под фильтрацией буфера, проведите маленький эксперимент:
А теперь представьте, что вы генерируете более сложные запросы. Представьте, что будет видеть пользователь! Вместо этого, предлагаю вам создать новый буфер и читать данные из него. Если вы хотите добиться полной универсальности, воспользоваться можно следующим способом (вставьте в тот же самый метод clicked()): PHP код:
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
23.10.2003, 15:16 | #13 |
Дмитрий Ерин
|
Не понимаю механизма...
2 Garic:
Цитата:
Common common = _formDS.cursor().data();
Хотя так и не понял смысла метода data(). Он дублирует всю таблицу? То есть, это как бы новый экземпляр? 2 Maxim Gorbunov: А чем отличается common = dictTable.makeRecord(); от, скажем, common = InventTable_ds.cursor().data() ? |
|
23.10.2003, 18:30 | #14 |
Administrator
|
Из Online Help про метод data():
Цитата:
Returns only the data part of the record. Is used to copy data from one record buffer to another rather than making the new buffer into a pointer to the buffer copied from. The buffer copied to has no database position or locks.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|