AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.11.2004, 16:07   #1  
NJD is offline
NJD
Участник
 
210 / 26 (1) +++
Регистрация: 21.05.2003
Адрес: Moscow
Прогр. создание общего журнала. (LedgerJournalTable )
Мне нужно программно создать общий журнал, ну а потом сделать там строчки.
Никто не поджскажет, какими классами это делается. А если кто кинет кусок кода - то вообще поклон до земли.
Старый 05.11.2004, 16:38   #2  
Miktel is offline
Miktel
Участник
 
17 / 10 (1) +
Регистрация: 13.07.2004
Адрес: Дома
Классов таких я не знаю. Можно написать свой и сделать у него такой метод:
Пусть например нужно создать журнал с номером П000-100 и 1 строку в нем.

static void сreateJournal()
{
LedgerJournalTable ledgerJournalTable;
LedgerJournalTrans ledgerJournalTrans;
;

ttsbegin;
ledgerJournalTable.clear(); //очищение курсора
ledgerJournalTable.JournalNum = "П000-100";
// заполнение других полей журнала производится аналогично
ledgerJournalTable.insert();
ledgerJournalTrans.clear();
ledgerJournalTrans.JournalNum = "П000-100";
// заполнение остальных полей строки журнала производится аналогично
ledgerJournalTrans.insert();
ttscommit;
}
Старый 05.11.2004, 16:52   #3  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Не стоит. Можно, конечно, и ручками, но я бы копал в сторону классов LedgerJournal*
В самом LedgerJournal идет отработка инициализации журнала - номерной серии + генерация номера ваучера, насколько я помню. Посмотри, как работает сама форма и делай аналогично. Хотя, если кто-то подалиться кодиком, я тоже буду не против!

С Уважением,
Георгий.
Старый 05.11.2004, 16:58   #4  
Hezl is offline
Hezl
Участник
Аватар для Hezl
 
138 / 16 (1) ++
Регистрация: 21.04.2004
Адрес: Moscow, Russia
Посмотрите класс BMblock_LedgerJournal. Там можно посмотреть как создать журнал, как создать его строки и как все это потом разнести.
Старый 05.11.2004, 17:00   #5  
NJD is offline
NJD
Участник
 
210 / 26 (1) +++
Регистрация: 21.05.2003
Адрес: Moscow
Ручками все записи создавать конечно можно, но не хотелось бы...
Спастбо за класс - покапаю. Разносить не надо... Такие вещи лучше ручками -)
Старый 05.11.2004, 19:04   #7  
Hamster is offline
Hamster
Участник
 
687 / 13 (2) ++
Регистрация: 15.05.2003
ledgerAccount _pr;
LedgerJournalTable _ljt;
LedgerJournalEngine ledgerJournalEngine;
ledgerJournalTrans _ljtr;
Args postArgs = new Args();
;
// looking for PurchReceipt account
_pr = InventPosting::item(InventAccountType::PurchReceipt,this.ItemId);
if (! _pr) throw error("Íå çàäàí ñ÷åò Ïðèõîä ïî çàêóïêå");

// create journal
_ljt = null;
_ljt.selectForUpdate();
_ljt.clear();
_ljt.initValue();
_ljt.JournalName = SalesParameters::find().PassToAgentJournalNameSec_W;
if (! _ljt.JournalName) throw error("Íå çàäàí æóðíàë 2-õ âàë. ñêëàäà â ïàðàìåòðàõ ìîäóëÿ Ðàññ÷åòû ñ êëèåíòàìè");
_ljt.Name = "Ïåðåäà÷à íà ðåàëèçàöèþ (2-õ âàë. ñêëàä)";
_ljt.CurrencyCode = companyinfo::secondaryCurrency_RU();
_ljt.CurrentOperationsTax = CurrentOperationsTax::WarehouseCur_RU;
_ljt.insert();
ledgerJournalEngine = new BMLedgerJournalEngine(null);
ledgerJournalEngine.newJournalActive(_lJT);
if (_ljt.CurrentOperationsTax != CurrentOperationsTax::WarehouseCur_RU) throw error("Íåïðàâèëüíûé òèï ó÷åòà â æóðíàëå " +_ljt.JournalName);

// create journal lines
_ljtr = null;
_ljtr.selectForUpdate();
_ljtr.clear();
_ljtr.initValue();
_ljtr.journalNum = _lJT.journalNum;
ledgerJournalEngine.numberSeqFormHandlerJournal().parmLedgerJournalTrans(_lJTr);
ledgerJournalEngine.formMethodDataSourceCreatePost();
ledgerJournalEngine.initValue(_lJTr);

// fill journal lines
_ljtr.CurrencyCode = companyinfo::secondaryCurrency_RU();
_ljtr.TransDate = this.PassToAgentDate_W;
_ljtr.AccountType = LedgerJournalACType::Ledger;
_ljtr.AccountNum = _pr;
_ljtr.OffsetAccountType = LedgerJournalACType::Ledger;
_ljtr.OffsetAccount = InventPostingBrokerage::LedgerAccount(this.ItemId);
[_ljtr.AmountCurCredit,_ljtr.ExchRate] = this.GetAmountAndRateForJournalMain();
if ( _ljtr.AmountCurCredit < 0.01) throw error("Íåò ñåáåñòîèìîñòè â âàëþòå " + companyinfo::secondaryCurrency_RU());
_ljtr.ExchRate = 0;

_ljtr.Dimension = this.Dimension;

// write journal lines
_lJTr.validateWrite();
ledgerJournalEngine.preWrite(_lJTr);
ledgerJournalEngine.formMethodDataSourceWritePre();
_lJTr.write();
ledgerJournalEngine.write(_lJTr);

// post journal now...
postArgs.record(_lJT);
postArgs.caller(NULL);
postArgs.parmEnum(0);
LedgerJournalPost::main(postArgs);

return _ljt.JournalNum;
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Обработка счет-фактуры поставщика из общего журнала ГК nmariya DAX: Функционал 2 05.06.2008 17:08
Создание нового журнала Brute DAX: Программирование 8 30.06.2006 17:30
Создание нового типа журнала в Управлении запасами vasiliy DAX: Программирование 2 03.11.2005 14:46
Создание журнала инвентаризации Sanya DAX: Функционал 6 19.08.2005 17:06
Создание нового пакета журнала gam DAX: Функционал 4 01.03.2005 10:10

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 17:06.