How-to: Do not collect printer name (Cloud Print)

Description

Skip collecting printer name when printing a label

Use case

If you can determine the printer based on label template name, context, user name, etc. then you may skip collecting printer-step 


Modify the printer step

We hide the step and we set a default value.

This way, the value is set, but the user will not be prompted.

Using event OnLookupOnPrintLabel_OnAfterAddStepForTemplate

    // [Example] Hide printer step, instead of collecting the value, set a (hidden) default value
    [EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB Print", 'OnLookupOnPrintLabel_OnAfterAddStepForTemplate', '', true, true)]
    local procedure MyOnLookupOnPrintLabel_OnAfterAddStepForTemplate(_TemplateName: Text[50]; _SourceRecRef: RecordRef; var _Step: Record "MOB Steps Element"; var _Dataset: Record "MOB Common Element")
    var
        MobPrinter: Record "MOB Printer";
    begin


        // Making sure we only handle relevant label templates
        if not _TemplateName.Contains('3x2') then  
            exit;

        // Find the printer to use
        MobPrinter.FindFirst();  

        // Set defaultValue and hide printer-step
        if _Step.Get_name() = 'Printer' then begin
            _Step.Set_defaultValue(MobPrinter.Name);    
            _Step.Set_visible(false);
        end;
    end;


See also