21.07.2003, 08:39 | #1 |
Участник
|
Navision 3.60.03 Открыть документ одной фирмы из другой
Есть такая ситуация:
Две фирмы. Одна оптом продает другой товар. При учете документа продажи в одной фирме, автоматически создается и учитывается документ покупки в другой фирме. Ссылки при этом у этих документов друг на друга сохраняются. Заказчик желает находясь в любой из фирм, открыть связанный документ в другой фирме. Я описывал переменную как таблицу заголовок (продажи/покупки), для этой таблицы делал ChangeCompany, потом переменной типа Forms применял SetRecord описанной таблице и запускал форму. Открывается документ с нужным заголовком из другой фирмы, но табличная часть берется из текущей фирмы, причем не понятно по какому принципу... Может кто-нибудь сталкивался с проблемой и подскажет что-нибудь. |
|
21.07.2003, 10:50 | #2 |
Участник
|
Видимо для субформы, которая отображает строки документа тоже требуется команда CHANGECOMPANY.
|
|
21.07.2003, 12:33 | #3 |
Участник
|
Точнее сказать, CHANGECOMPANY необходимо сделать для таблицы, в которой хранятся строки документа (вообще документ есть совокупность записи из таблицы заголовков и записей из таблицы строк). При продажи это таблица Sales Line, при покупке - Purchase Line.
|
|
21.07.2003, 18:23 | #4 |
Участник
|
Я выполнял ChangeCompany и для таблицы со строками документа. Но результат нулевой... При вызове формы, в качестве параметров можно передать только одну таблицу... Я передаю заголовок. Для него тоже делаю ChangeCompany. Для таблицы в субформе - тоже. Но при открытии - заголовок береться из нужной компании, а субформа заполняется из текущей... Получается бред. Вообщето задача сводится к тому, что бы открыть документ продажи/покупки компании № 2, находясь в компании № 1. Помогите!!!
Или так: К таблице можно применить ChangeCompany. А как потом у таблицы можно прочитать к какой компании она применена? Если прочитать у заголовка формы имя компании, то для субформы ее изменить не сложно... |
|
22.07.2003, 10:00 | #5 |
Участник
|
Что бы по заказу отображались не только заголовок, но и строки нужной фирмы сделать можно. И это не сложно. Но путь этот тупиковый. Из любого заказа пользователь может получить доступ практически ко всем данным системы, на которые ему даны права (например, через справочник поставщиков и покупателей, далее учтенные операции и т.д.). Для какой компании нужно будет открывать все эти формы и отчеты? Как пользователь будет их различать?
Для начала нужно ответить на вопрос: "Для чего это нужно?" Если для того чтобы пользователю дать возможность получить информацию о связанном заказе, то лучше это сделать через отчет. Если выполнить какую-нибудь функцию, то существует множество вариантов как это сделать, но для этого опять же не обязательно открывать форму такого заказа. Если же вы хотите предоставить пользователю полную функциональность по одновременной работе с несколькими (в данном случае - с двумя) компаниями, то вас ждет большая работа. |
|
22.07.2003, 10:13 | #6 |
Участник
|
Вот так оно работает:
- в субформе заказа добавляется функция ChangeCompany(CompanyName : Text[50]) IF NOT CHANGECOMPANY(CompanyName) THEN ERROR('Error'); - в форме заказа добавляется глобальная переменная CompanyName Text 50 функция ChangeCompany(lCompanyName : Text[50]) CompanyName := lCompanyName; в триггер OnOpenForm() if CompanyName <> '' then begin IF NOT CHANGECOMPANY(CompanyName) THEN ERROR('Error'); CurrForm.SalesLines.FORM.ChangeCompany(CompanyName); end; Для того, чтобы все это заработало, объявляется переменная SF Form Sales Order вызывается функция SF.ChangeCompany('Фирма 1') SF.RUN; Но это еще не самое страшное, все переменные в данной форме продолжают смотреть на текущую фирму. Когда вскроются все подводные камни, Вы откажетесь от такой идеи Вот и все. Если не секрет, то как реализован автоматический учет в другой фирме? |
|
22.07.2003, 15:22 | #7 |
Участник
|
Вот так оно работает:
- в субформе заказа добавляется функция ChangeCompany(CompanyName : Text[50]) IF NOT CHANGECOMPANY(CompanyName) THEN ERROR('Error'); - в форме заказа добавляется ......... -------------------------------------------------------------------------------------------------- Спасибо... Это я попробую... На счет учета: Создание самого документа, наверно вопросов не вызывает. А вот на счет его учета - взял на вооружение способ предложенный в этом же форуме (вот и ссылка: http://www.axforum.info/forums/showth...=&threadid=2460 где-то с середины топика) |
|
22.07.2003, 17:07 | #8 |
Участник
|
Цитата:
Изначально опубликовано KuDm
http://www.axforum.info/forums/showth...=&threadid=2460 где-то с середины топика) Посмотрел на свой код и нашел ошибки, а вернее конфликты имен. Переменную CompanyName и функции ChangeCompany придется "переобозвать". |
|
22.08.2003, 17:20 | #9 |
Участник
|
HYPERLINK
Обратите внимание на метод HYPERLINK
|
|