18.08.2004, 11:42 | #1 |
Участник
|
Изменить компанию в форме
AXAPTA 2.5 SP 3RU
Необходимо по выбору пользователя изменить текущую компанию в текущей форме для всех DataSource. Пишу: Table1.company(newCompany) Table1_DS.reseach() Никакой реакции. Запросы по прежнему выполняются по той компании, которая была установлена при инициализации формы. Пока проблема решается через промежуточный класс, который и организует вызов формы. При выборе другой компании форма просто переоткрывается через класс-оболчку. Есть более простое решение? AXAPTA 2.5 SP 3RU |
|
18.08.2004, 12:27 | #2 |
Участник
|
Не проще выбрать компанию через StatusBar и открыть форму?
|
|
18.08.2004, 12:37 | #3 |
Участник
|
Цитата:
Не проще выбрать компанию через StatusBar и открыть форму?
Организация копирования счета-фактуры для закупки из другой закупки. Сначала выбирается закупка в текущей компании, а затем вызывается форма для выбора строки закупки откуда следует сделать копию. Вот образец для копирования и может быть в другой компании. Не в текущей. А в какой - пользователи и должны иметь возможность выбора. |
|
18.08.2004, 12:49 | #4 |
Модератор
|
А changecompany не подходит?
|
|
18.08.2004, 12:56 | #5 |
Участник
|
Цитата:
А changecompany не подходит?
На форме 2 Grid, в которых отображается список закупок (шапки и строки). В этих списках надо проставить "птички" что именно использовать как образец для копирования. При смене компании должно полностью поменятся содержимое этих Grid для выбора пользователем (если был выбор по другой компании, то он сбрасывается). Каким местом здесь можно воткнуть changecompany()? |
|
18.08.2004, 13:04 | #6 |
Модератор
|
А отдельной формой? Выведи им все закупки в других компаниях, пусть роются... найдут то, что надо - жмут "Перенести" - и копируешь... потом открываешь PurchTable и позиционируешь курсор на этой записи... И будет им Щастье
Я бы отдельной формой делал... |
|
18.08.2004, 13:46 | #7 |
Участник
|
Ну так это и есть отдельная форма! Может я плохо объяснил? ВСЯ информация в этой форме из другой компании. Просто надо иметь возможность выбирать из какой именно компании эта самая информация.
|
|
18.08.2004, 14:16 | #8 |
Модератор
|
Владимир! Да что Вы заморачиваетесь? Работает - и работает Я бы вообще datasource не делал, а заполнял бы grid динамически... Хотя... заказы - та еще табличка может, передал бы контрол формы "MyGrid" в новый метод на таблице и там бы его заполнил из всех компаний или по выбору. У меня, правда, 3шка..
Главное - чтоб работало! Чего Вам и желаю! С Уважением, Георгий. |
|
18.08.2004, 17:41 | #9 |
Участник
|
Согласен с Георгием, что без changeCompany не обойтись.
Ваша форма должна работать в другой компании, по этому в нее нужно перейти. Так же нужно у таблицы указать компанию purchLine.company( curExt() ); Вызов формы в другой компании: PHP код:
PHP код:
|
|
18.08.2004, 17:46 | #10 |
Модератор
|
Цитата:
Изначально опубликовано sergy
Есть одна особенность. После уничтожения формы в другой компании происходит переход обратно в исходную компанию до закрывающей } changeCompany, как это победить с удовольствием узнал бы сам [/B] |
|
18.08.2004, 17:51 | #11 |
Участник
|
А может быть там описано как главное меню сделать невидимым, а потом закрыть?
|
|
18.08.2004, 19:05 | #12 |
Участник
|
sergy
Ну, ладно, будем считать, что я не умею объяснять что именно мне надо получить. Хорошо, воспользовался я Вашим советом. Открыл форму в дургой компании. Теперь вопрос: Как находясь в той же самой форме изменить значение компании? Т.е. чтобы не закрывая формы в ней отобразились данные другой, указанной пользователем, компании. PS: форма уже есть. Она рабочая. Проблема только в том, что она меняет компанию только в момент инициализации. А потом ей уже все по барабану. Будет стоять на текущей компании до своего закрытия. Способ обхода я нашел, но мне он кажется "кривоватым" |
|
19.08.2004, 09:34 | #13 |
Участник
|
Без переоткрытия формы не обойтись
|
|
19.08.2004, 11:29 | #14 |
Administrator
|
Цитата:
Изначально опубликовано Владимир Максимов
Способ обхода я нашел, но мне он кажется "кривоватым"
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
19.08.2004, 11:50 | #15 |
Участник
|
Цитата:
А какой?
В момент выбора другой компании в форме запоминаю выбранную компанию в классе-посреднике и закрываю форму. В классе-посреднике организовал цикл по вызову Prompt(), если по завершении Prompt() есть значение компании, то заново вызываю форму передав в качестве параметра это новое значение. Фактически, просто переоткрываю форму с новым значением компании. |
|
19.08.2004, 12:41 | #16 |
Administrator
|
Понятно
Просто я думал, что Вы нашли способ, как изменять компанию без переоктрытия формы.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
27.09.2006, 12:06 | #17 |
Участник
|
Столкнулся с подобной задачей.
Нужно открыть эту же форму, только в другой компании. Сделал немного по-другому: Код: #define.company('dat') Args args; // ?????? ????? Args FormRun formRun; // ?????? ????? FormRun int hwnd; ; super(); hwnd = element.hWnd(); element.close(); appl.setDefaultCompany(#company, false); SysSecurity::reload(false); args = new Args(); args.parm(int2str(hwnd)); // args.caller( this ); args.name(formStr(PurchTable)); formRun = ClassFactory.formRunClass(args); formRun.init(); formRun.run(); formRun.wait(); infolog.clear(); Хотя, закрывать пытаюсь и в этом методе (простое element.close()); и в init открываемой формы, если передали parm() Код: hwnd = str2int(element.args().parm()); WinAPI::sendMessageEx(hwnd, #WM_SYSCOMMAND, #SC_CLOSE, 0); или, может, кто-то знает хороший способ открытия формы в другой компании? |
|
27.09.2006, 12:39 | #18 |
Banned
|
Кажется, надо вместо formRun.wait() поставить formRun.detach(). После этого можно уже вызывать caller.close().
А вообще, отличной иллюстраций к обсуждаемой теме является класс TradeInterCompany. Все уже придумано до нас. |
|
|
За это сообщение автора поблагодарили: kashperuk (2). |
27.09.2006, 12:58 | #19 |
Участник
|
Спасибо, EVGL
Уже сам допер, что не закрывалось именно из-за wait() Как раз зашел всем об этом рассказать X++: formRun.detach();
// formRun.wait(); Спасибо. Вопрос снят. PS Класс посмотрю, спасибо |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|