![]() |
#6 |
Участник
|
Цитата:
Цитата:
Нужно чтобы юзеру было показано:
For Item: AAA1 Barcode: юзер вводит баркод, жмет ок и на экране появляется следующий товар: For Item: AAA2 Barcode: юзер вводит баркод ... {OnRun по аналогии} --Триггер для ввода, например ProcessInput(): IF XMLDOMMgmt.FindNode(RootNode,'Header/Input',ReturnedNode) THEN TextValue := ReturnedNode.text ELSE ERROR(Text001 - описание ошибки); IF EVALUATE(TableNo,ADCSCommunication.GetNodeAttribute(ReturnedNode,'TableNo')) THEN BEGIN // Key1 = TableNo RecRef.OPEN(TableNo); EVALUATE(RecordId,ADCSCommunication.GetNodeAttribute(ReturnedNode,'RecordID')); // Key2 = RecordID IF RecRef.GET(RecordId) THEN BEGIN RecRef.SETTABLE(Item); ADCSCommunication.SetRecRef(RecRef); END ELSE ERROR(Text004); END; FuncGroup.KeyDef := ADCSCommunication.GetFunctionKey(MiniformHeader.Code,TextValue); CASE FuncGroup.KeyDef OF FuncGroup.KeyDef::Esc : PrepareData; FuncGroup.KeyDef::First : ADCSCommunication.FindRecRef(RecRef,0,MiniformHeader."No. of Records in List"); FuncGroup.KeyDef::LnDn : IF NOT ADCSCommunication.FindRecRef(RecRef,1,MiniformHeader."No. of Records in List") THEN Remark := Text008; FuncGroup.KeyDef::LnUp : ADCSCommunication.FindRecRef(RecRef,2,MiniformHeader."No. of Records in List"); FuncGroup.KeyDef::Last : ADCSCommunication.FindRecRef(RecRef,3,MiniformHeader."No. of Records in List"); FuncGroup.KeyDef::PgDn : IF NOT ADCSCommunication.FindRecRef(RecRef,4,MiniformHeader."No. of Records in List") THEN Remark := Text008; FuncGroup.KeyDef::PgUp : ADCSCommunication.FindRecRef(RecRef,5,MiniformHeader."No. of Records in List"); FuncGroup.KeyDef::Input : BEGIN EVALUATE(FldNo,ADCSCommunication.GetNodeAttribute(ReturnedNode,'FieldID')); CASE FldNo OF Item.FIELDNO("Barcode"): //наше поле "Штрих-код" BEGIN {ВЫПОЛНЯЕМ ВСЕ, ЧТО НАМ НУЖНО} { та же смотрим применение функции ADCSCommunication.FieldSetvalue(RecRef,FldNo,TextValue);} END ELSE BEGIN ADCSCommunication.FieldSetvalue(RecRef,FldNo,TextValue); RecRef.SETTABLE(Item); END; END; { можно добавить КОД - не знаю что именно там еще нужно делать и в какой последовательности} //========= ActiveInputField := ADCSCommunication.GetActiveInputNo(CurrentCode,FldNo); IF ADCSCommunication.LastEntryField(CurrentCode,FldNo) THEN BEGIN ADCSCommunication.GetNextMiniForm(MiniformHeader,MiniformHeader2); MiniformHeader2.SaveXMLin(DOMxmlin); CODEUNIT.RUN(MiniformHeader2."Handling Codeunit",MiniformHeader2); END ELSE ActiveInputField += 1; //========= RecRef.GETTABLE(Item); ADCSCommunication.SetRecRef(RecRef); END; END; IF NOT (FuncGroup.KeyDef IN [FuncGroup.KeyDef::Esc,FuncGroup.KeyDef::Register]) THEN SendForm(ActiveInputField); |
|