24 Mart 2016 Perşembe

AXAPTA - Sysmailer ile mail gönderirken türkçe harf sorunu

SysMailer class ile mail gönderirken aşağıdaki kırmızı satırı eklemediğinizde türkçe harfler mailde çıkmayacaktır. Bu çözümü bir blog'dan bulmuştum ancak yerini şu an hatırlayamıyorum:


   SysEmailParameters  parameters;
    SysMailer           mailer;
    ;
    new InteropPermission(InteropKind::ComInterop).assert();
        parameters = SysEmailParameters::find();

        mailer = new SysMailer();
        if (parameters.SMTPRelayServerName)
        {
            mailer.SMTPRelayServer(parameters.SMTPRelayServerName,
                               parameters.SMTPPortNumber,
                               parameters.SMTPUserName,
                               SysEmailParameters::password(),
                               parameters.NTLM);
        }
        else
        {
            mailer.SMTPRelayServer(parameters.SMTPServerIPAddress,
                               parameters.SMTPPortNumber,
                               parameters.SMTPUserName,
                               SysEmailParameters::password(),
                               parameters.NTLM);
        }
        mailer.fromAddress(fromAddr);
        mailer.tos().appendAddress(toAddr);
        mailer.subject(subject);
        //türkçe harflerin düzgün gitmesi için:
        mailer.bodyCharSet("Windows-1254");
        if(FileName)
            mailer.attachments().add(FileName);
        mailer.ccs().appendAddress(ccAddr);
        mailer.bccs().appendAddress(bccAddr);
        mailer.htmlBody(body);
        mailer.sendMail();
    }
    CodeAccessPermission::revertAssert();

2 Mart 2016 Çarşamba

AXAPTA - Bir tablo alanının label değerini bulmak

Bir tablonun bir alanının label değerini bulmanın iki yolu var:

Eğer field label değerini direk extended data tipinden alıyorsa:


    if (curext()=="krc" && this.RBOInventItemGroupId == "")
        ret = checkfailed(strfmt("'%1' alanı doldurulmalıdır!..",
            new SysDictType(extendedTypeNum(RBORetailGroupId)).label()));

Eğer tabloda alana bir etiket yazıldıysa:

    if (curext()=="krc" && this.RBOInventItemGroupId == "")
        ret = checkfailed(strfmt("'%1' alanı doldurulmalıdır!..",
            new SysDictField(tablenum(WholeSalesCampaignGroup),
fieldnum(WholeSalesCampaignGroup,RBOInventItemGroupId)).label()));