I use QrCode.dll and it's very easy to use look example,  in preupdate and display a result in Media field
p_web.ssv('Loc:receipt_url',Eve4:RECEIPT_URL)        
Loc:Text = CLIP(Eve4:GUI)
Loc:PathFileUci=clip(p_web.site.WebFolderPath)&'\uploads\$$$QRInvoice' & CLIP(Eve4:GUI)&'.jpg'  
Loc:Pixel=100
Loc:Format='png'
Loc:ColorBlack ='black'
Loc:ColorWhite = 'white'
GenerateQrCode(CLIP(Loc:Text),clip(Loc:PathFileUCI),clip(Loc:Pixel),clip(Loc:Format),clip(Loc:ColorBlack),clip(Loc:ColorWhite))
loc:st_filename3 = '/uploads/'&'$$$QRInvoice'&CLIP(Eve4:GUI)&'.jpg'
p_web.ssv('loc:st_filename3',clip(loc:st_filename3))