![]() |
#12 |
Участник
|
Идиотский кодеюнит, все равно что Нав для рисования в Паинте использовать
У пользую размеченные мной или ключевыми пользователями шаблоны (можно брать хоть регламентные формы из Консультанта) и спец. кодеюнит. Соглашение с пользователями только о названиях меток для макроподстановок и названиях секций отчета. Дизайн отчета целиком на их совести Код для вывода листов просчета для инвентаризации: Header - OnAfterGetRecord() TemplateMgt.CreateNewSheet("Document No."); TemplateMgt.CopyPageSetupFromTemplate(); TemplateMgt.CopyNamedRange('HEADER'); TemplateMgt.xlReplaceRange1('#=DocumentNo', "Document No."); TemplateMgt.xlReplaceRange1('#=DT', FORMAT(CURRENTDATETIME)); TemplateMgt.xlReplaceRange1('#=USERID', USERID); window.UPDATE(1, "Document No."); Line - OnPreDataItem() TemplateMgt.CopyNamedRange('LINE_HEADER'); Line - OnAfterGetRecord() CALCFIELDS(Barcode, Article); TemplateMgt.CopyNamedRange('LINE'); TemplateMgt.xlReplaceRange1('#=LineNumber', FORMAT("Line Number")); TemplateMgt.xlReplaceRange1('#=BinCode', "Bin Code"); TemplateMgt.xlReplaceRange1('#=PSN', "Parent Serial No."); TemplateMgt.xlReplaceRange1('#=Barcode', Barcode); TemplateMgt.xlReplaceRange1('#=Description', Description); TemplateMgt.xlReplaceRange1('#=Article', Article); TemplateMgt.xlReplaceRange1('#=LotNo', "Lot No."); TemplateMgt.xlReplaceRange1('#=Project', Project); TemplateMgt.xlReplaceRange1('#=UOM', UOM); IF "Qty Per UOM"<>0 THEN TemplateMgt.xlReplaceRange1('#=QtyPerUOM', FORMAT("Qty Per UOM")) ELSE TemplateMgt.xlReplaceRange1('#=QtyPerUOM', ''); Header - OnPostDataItem() SheetsForDelete.INIT; SheetsForDelete.Key := 1; SheetsForDelete.tFld03 := 'ШАБЛОН'; SheetsForDelete.INSERT; TemplateMgt.DeleteTemplateSheets(SheetsForDelete); TemplateMgt.FinishBook; |
|