У меня есть отчет в Microsoft Dynamics для печати настраиваемых меток.Запуск отчета с передачей количества страниц для печати и некоторых значений
В самом отчете есть один DataItem из таблицы Items. Если вы запустите отчет, вы можете ввести номер позиции и распечатать ярлык на выбранном термопринтере.
Теперь, что я хочу архив, если у меня есть заказ на покупку, я хочу Klick Somwhere и Navision должны сделать что-то вроде этого:
отчет беги «50070» с пунктом «10001» 6 копий наклейка; запустите отчет «50070» с номером «10020» 3 копии этикетки;
и так далее.
Я не нашел достаточно об этой теме. Я попытался сделать это с помощью цикла копирования, как упоминалось в некоторых сообщениях, но это не совсем так, как хотелось бы.
Обзор DataItems
Доклад:
"Пункт" -> Record :: Пункт
Следующий код из пункта - OnAfterGetRecord() - Trigger
RecordNo := RecordNo + 1;
ColumnNo := ColumnNo + 1;
ItData[ColumnNo][1] := FORMAT("No.");
ItData[ColumnNo][2] := FORMAT(Description);
ItData[ColumnNo][3] := FORMAT(Var1);
ItData[ColumnNo][4] := FORMAT(Var2);
ItData[ColumnNo][5] := FORMAT("Unit Price");
ItData[ColumnNo][5] := FORMAT("Unit Price" * 1.19);
// finding own barcode first, if no own barcode found, take
// the one you can get
barcodeStr := '';
recBarcode.SETFILTER("Item No.", "No.");
recBarcode.SETFILTER("Barcode No.", '99916*');
IF recBarcode.FINDFIRST THEN BEGIN
barcodeStr := recBarcode."Barcode No.";
END ELSE BEGIN
recBarcode.RESET;
recBarcode.SETRANGE("Item No.", "No.");
IF recBarcode.FINDFIRST THEN BEGIN
barcodeStr := recBarcode."Barcode No.";
END;
END;
// ask user, if to printing barcode is not a company own
// barcode, and let him decide if he whishes to print anyway
IF STRLEN(barcodeStr) = 13 THEN BEGIN
IF (COPYSTR(barcodeStr, 1, 5) <> '99916') THEN BEGIN
IF NOT CONFIRM('This item has NO company own barcode. Do you whish to print it anyway?', FALSE) THEN
EXIT;
END;
// format the barcode-string to a format, that the barcode font
// can understand and printing it properly for reading with a scanner
EAN13 := DADA.GetPrintTextEAN13(barcodeStr);
END;
COMPRESSARRAY(ItData[ColumnNo]);
IF RecordNo = NoOfRecords THEN BEGIN
FOR i := ColumnNo + 1 TO NoOfColumns DO
CLEAR(Addr[i]);
ColumnNo := 0;
END ELSE BEGIN
IF ColumnNo = NoOfColumns THEN
ColumnNo := 0;
END;
// finding a suiting logo for the barcode, user can choose between none, dd or ex
IF intLogoOption = 2 THEN BEGIN
IF EXISTS ('N:\Labelprinting\dd\75x75\sw_for75x75.bmp') THEN
TT.BLOBImport(BLOBRef, 'N:\Labelprinting\dd\75x75\sw_for75x75.bmp', FALSE);
END ELSE IF intLogoOption = 3 THEN BEGIN
IF EXISTS ('N:\Labelprinting\ex\75x75\sw_for75x75.png') THEN
TT.BLOBImport(BLOBRef, 'N:\Labelprinting\ex\75x75\sw_for75x75.png', FALSE);
END;
CALCFIELDS(Item.Picture);
Моя цель состоит в том, чтобы пользователь мог щелкнуть один раз и выбрать принтер один раз, и все метки напечатаны правильно