31.05.2004, 16:13 | #1 |
Участник
|
Работа с формами
У меня несколько вопросов по созданию и работе с формами, которые у меня что-то совсем не получается решить самому:
1. Как обратится к форме, с которой вызвана диаложка в обработке клика ОК (clicked) диалога? 2. Как на форме отобразить поле NAME по ContactPersonID таблицы ContactPerson, если в моей таблице есть только поле ContactPersonID? 3. Как сделать выборку (фильтр) в грид формы, например, по выбранной дате в контроле? 4. Как обратиться к отдельному контролу на форме, считать его значение, т.д.? 5. Как обработать создание (Ctrl+N) новой записи в таблице? Буду очень благодарен за детальные объяснения, так как с Аксаптой работаю совсем недавно. Спасибо |
|
31.05.2004, 17:04 | #2 |
NavAx
|
Re: Работа с формами
1. Как обратится к форме, с которой вызвана диаложка в обработке клика ОК (clicked) диалога?
element.args().caller() 2. Как на форме отобразить поле NAME по ContactPersonID таблицы ContactPerson, если в моей таблице есть только поле ContactPersonID? используя display метод 3. Как сделать выборку (фильтр) в грид формы, например, по выбранной дате в контроле? а нада? 4. Как обратиться к отдельному контролу на форме, считать его значение, т.д.? установить у него свойство AutoDeclaration = Yes и далее в коде по имени... 5. Как обработать создание (Ctrl+N) новой записи в таблице? а нада? P.S. 3 и 5 пункт на данном этапе лишние, используйте встроенное поведение системы. ИМХО.
__________________
И все они создания природы... |
|
31.05.2004, 23:08 | #3 |
Участник
|
Спасибо, Lazy_Tiger. Очень помог.
А по-поводу вопроса №5. (обработка Ctrl+N) Проблема в следующем. У меня в таблице есть уникальный ID, который мне соответсвенно нужно наращивать при добавлении записи в таблицу. И я думаю, что это надо делать именно в обработке создания записи. Или нет? Как можно тогда по-другому сделать? Заранее спасибо |
|
01.06.2004, 07:12 | #4 |
NavAx
|
перекрыть метод initValue() у таблицы и заполнить поля
__________________
И все они создания природы... |
|
01.06.2004, 08:18 | #5 |
1C
|
Цитата:
Изначально опубликовано kashperuk
У меня в таблице есть уникальный ID, который мне соответсвенно нужно наращивать при добавлении записи в таблицу. И я думаю, что это надо делать именно в обработке создания записи. Или нет? Как можно тогда по-другому сделать? |
|
01.06.2004, 08:25 | #6 |
NavAx
|
прямо таки само? или номерок из серии нада получить и поюзать...
__________________
И все они создания природы... |
|
01.06.2004, 10:41 | #7 |
1C
|
стоп. Что то я не понял. Вроде бы нужно просто при вставке или удалении записи изменять ID. Вроде как программно не нужно ничего получать. При правильной настройке номерной серии все должно делаться автоматически.
|
|
01.06.2004, 12:34 | #8 |
Участник
|
Цитата:
Используйте непрерывные номерные серии. Система сама автоматически будет увеличивать/уменьшать при вставке/удалении записи.
Спасибо |
|
01.06.2004, 12:51 | #9 |
Участник
|
Цитата:
Изначально опубликовано kashperuk
А не могли бы вы еще и рассказать, как именно они используются? (где их настроить). Спасибо Основное\Настройка\Номерная серия (в 2.5 вместо Основное будет Разное) |
|
01.06.2004, 12:54 | #10 |
NavAx
|
примерно так:
NumberSeq::newGetNumFromCode("Пост01", true, false).num(); не уверен что именно так рекомендуют лучшие собаководы, но видел кучу мест в системе где именно так. например вот для таблички клиентов... custTable.AccountNum = NumberSeq::newGetNum(CustParameters::numRefCustAccount()).num() Допускаю что есть какой то механизм, буду рад узнать как правильно
__________________
И все они создания природы... |
|
01.06.2004, 14:12 | #11 |
1C
|
2Lazy_Tiger:
Правильно, NumberSeq::newGetNumFromCode("Пост01", true, false).num(); - это механизм программного изменения номерной серии. Иногда возникает такая необходимость при вставке записи из кода. А при Ctrl+N номерная серия отрабатывается автоматически. |
|
01.06.2004, 15:04 | #12 |
Участник
|
Цитата:
Изначально опубликовано YVAS
2Lazy_Tiger: Правильно, NumberSeq::newGetNumFromCode("Пост01", true, false).num(); - это механизм программного изменения номерной серии. Иногда возникает такая необходимость при вставке записи из кода. А при Ctrl+N номерная серия отрабатывается автоматически. Ну, прям даже не знаю что и подумать... Открой, что ли, третий проект, таблицу доверенностей. Метод InitValue. Это и есть "ctrl + N"...
__________________
Улыбаемся и машем, парни! Улыбаемся и машем... |
|
01.06.2004, 15:59 | #13 |
1C
|
Цитата:
Изначально опубликовано Anais
Опа! Ну, прям даже не знаю что и подумать... Открой, что ли, третий проект, таблицу доверенностей. Метод InitValue. Это и есть "ctrl + N"... |
|
01.06.2004, 16:49 | #14 |
Участник
|
Цитата:
Изначально опубликовано YVAS
Этот модуль именно я и делал. Там нет программного изменения ном. серии. А вот в импорте из клиент-банков я именно newGetNumFromCode использовал, потому что Ax материлась. А записи вставлял в LJT. Поэтому для LJT получение номера номерной серии осуществляется не через метод InitValue таблицы, а через метод initValue на DS форм, в которых используется LJT (для Банка - форма LedgerJournalTransRCash). PS На самом деле там тоже не все так просто. Конкретный номер номерной серии хранится в журнале (таблице LedgerJournalTable, поле VoucherSeries). А это поле, в свою очередь, инициализируется из Названий журналов при создании журнала. PPS Но НИКОГДА номерные серии не отрабатывают автоматически, без дополнительных телодвижений со стороны программиста.
__________________
Улыбаемся и машем, парни! Улыбаемся и машем... |
|
01.06.2004, 18:04 | #15 |
NavAx
|
Цитата:
Изначально опубликовано Anais
Но НИКОГДА номерные серии не отрабатывают автоматически, без дополнительных телодвижений со стороны программиста.
__________________
И все они создания природы... |
|
01.06.2004, 18:28 | #16 |
Участник
|
Цитата:
Изначально опубликовано Lazy_Tiger
огорчили блин... а так хотелось чуда...
__________________
Улыбаемся и машем, парни! Улыбаемся и машем... |
|
02.06.2004, 08:46 | #17 |
1C
|
Цитата:
Изначально опубликовано Anais
Но НИКОГДА номерные серии не отрабатывают автоматически, без дополнительных телодвижений со стороны программиста. даже возмем тот же Модуль доверенностей и программно выполним insert(), поле, которому прикручена ном. серия пустое. А если явно задавать PHP код:
|
|
02.06.2004, 11:53 | #18 |
Участник
|
Цитата:
Изначально опубликовано YVAS
тогда нормально. То есть при ctrl+N initValue() отрабатывает, а при insert() нет. Если нужно добавить строку из кода, то initValue вызывается вручную. Или не вызывается - это уж в зависимости от обстоятельств.
__________________
Улыбаемся и машем, парни! Улыбаемся и машем... |
|
02.06.2004, 13:34 | #19 |
1C
|
Цитата:
Изначально опубликовано Anais
Конечно, не вызывается. Это разные методы таблицы, и вызываются они в разные моменты..... Если нужно добавить строку из кода, то initValue вызывается вручную |
|
22.10.2004, 16:08 | #20 |
Участник
|
delete()
2YVAS
Цитата:
За тебя это делает метод initValue() и delete(), где и прописана обработка номерной серии.
PHP код:
|
|
Теги |
number sequence, номерная серия |
|
Похожие темы | ||||
Тема | Ответов | |||
Доступ к меню "Работа с документами" | 4 | |||
Совместная работа заказчика и исполнителя в разных или одном слое? | 6 |
|