Archive for Ağustos, 2010

Lookup’ta join ile query yazmak

Merhaba

Axapta  formlarında bir alanın lookup metodunu ezmek zorunda kalabilirsiniz.

Örneğimizde bir lookup metedu var.  join ile query yazılıp kriter veriliyor.
static client void lookupPortfolioPromissory(FormStringControl _ctrl, CurrencyCode _filterStr)// para birimine göre farklı gelsin
{
    SysTableLookup          sysTableLookup = SysTableLookup::newParameters(tablenum(BankAccountTable),_ctrl);
    Query                   query = new Query();
    QueryBuildDataSource    queryBuildDataSource = query.addDataSource(tablenum(BankAccountTable)); // birinci tablomuz
    QueryBuildDataSource    qdbs;
    ;

Read more

Query & Dialog Örnekleri 6

Merhaba

static void Query6(Args _args)
{
    CustTable   cust;
    CustTrans   custTrans;

    Query                   q = new Query();
    QueryRun                qr;
    QueryBuildDataSource    qbdsCustTable;
    QueryBuildDataSource    qdbsCustTrans;
    QueryBuildRange         qbrCurrency;
    QueryBuildRange         qbrRiskAmount;
    CurrencyCode            currency;
    Amount                  riskAmount;

    dialog                  d = new Dialog(“Müşteriler”);
    dialogField             dfCurrency;
    dialogField             dfRiskAmount;

    ;
    //Dialog
    dfCurrency = d.addField(typeId(CurrencyCode));
    dfRiskAmount = d.addField(typeId(Amount), “Max risk tutarı :”);

    if(d.run())
    {
        //getFromDialog
        currency    = dfCurrency.value();
        riskAmount  = dfRiskAmount.value();

Read more

Query & Dialog Örnekleri 5

Merhaba

static void query5(Args _args)
{
    CustTable   cust;

    Query                   q = new Query();
    QueryRun                qr;
    QueryBuildDataSource    qbdsCustTable;
    QueryBuildRange         qbrCurrency;
    QueryBuildRange         qbrRiskAmount;
    CurrencyCode            currency;
    Amount                  riskAmount;

    dialog                  d = new Dialog(“Müşteriler”);
    dialogField             dfCurrency;
    dialogField             dfRiskAmount;

    ;
    //Dialog
    dfCurrency = d.addField(typeId(CurrencyCode));
    dfRiskAmount = d.addField(typeId(Amount), “Max risk tutarı :”);

    if(d.run())
    {
        //getFromDialog
        currency    = dfCurrency.value();
        riskAmount  = dfRiskAmount.value();

Read more

Query & Dialog Örnekleri 4

Merhaba

static void query4(Args _args)
{
    CustTable   cust;

    Query                   q = new Query();
    QueryRun                qr;
    QueryBuildDataSource    qbdsCustTable;
    QueryBuildRange         qbrCurrency;
    CurrencyCode            currency;
    dialog                  d = new Dialog(“Müşteriler”);
    dialogField             dfCurrency;
    ;
    dfCurrency = d.addField(typeId(CurrencyCode));
    if(d.run())
    {

Read more

Query & Dialog Örnekleri 3

Merhaba

static void query3(Args _args)
{
    CustTable   cust;

    Query                   q = new Query();
    QueryRun                qr;
    CurrencyCode            currency;
    ;
    currency = “USD”;
    warning(“select ile”);
    while select cust
        where cust.Currency == currency
    {
        info(strFmt(“%1″, cust.Name));
    }

Read more

Query & Dialog Örnekleri 2

Merhaba

static void query2(Args _args)
{
    CustTable   cust;

    Query                   q = new Query();
    QueryRun                qr;
    QueryBuildDataSource    qbdsCustTable;
    QueryBuildRange         qbrCurrency;
    CurrencyCode            currency;
    ;
    currency = “USD”;

Read more

Query & Dialog Örnekleri 1

Merhaba

Örenk 1:

static void query1(Args _args)
{
    CustTable   cust;

    Query       q = new Query();
    QueryRun    qr;

    ;
    warning(“select ile”);
    while select cust
    {
        info(strFmt(“%1″, cust.Name));
    }

Read more

Formda CTRL veya Shift ile seçilmiş kayıtlarda işlem yapmak

Merhaba.

Axaptada grid üzerinde CTRL veya shift ile çoklu seçim yapılabilir.

Bu özelliği kullandığım bir örneği sizinle paylaşıyorum.

Öreneğimizde seçilen kayıtları bir buton aracılığıyla artan numara atanacak.

Öncelikle eklediğimiz butonun propertisinden MultiSelecet  = Yes yapıyoruz.

daha  sonra  click() metodundan   preNumbering() metodnu çağırıyoruz.

Element.preNumbering();

preNumbering() metodumuz inceleyelim ;

void preNumbering()
{
    CustInvoiceJour localCustInvoiceJour;

    boolean         isPreExist;
;
    isPreExist = false;
    localCustInvoiceJour = CustInvoiceJour_ds.getFirst(1); // çoklu seçim varsa içinde dolanıp  PreInvoiceId dolu olan varsa  uyarı verdiriyoruz

   <!--more-->

 if(localCustInvoiceJour)
    {
        while (localCustInvoiceJour)
        {
            if(localCustInvoiceJour.PreInvoiceId)
            {
                isPreExist = true;
            }
            localCustInvoiceJour = CustInvoiceJour_ds.getNext();
        }
    }
    else // eğer çoklu seçim yapılmamış tek satır seçilmişse burası çalışıyor
    {
         if(CustInvoiceJour.PreInvoiceId)
            {
                isPreExist = true;
            }
  �
    }
    if(isPreExist) // eğer PreInvoiceIddolu olan bir kayıt varsa  uyarı veriyoruz
    {
       if(box::yesNo("Seçilen kayıtlarda matbu numara var, değiştirmek istiyor musunuz?",  dialogbutton::Yes) == dialogbutton::Yes)
       {

           // dolu olmasına rağmen değiştirmek isterse
            element.dialogPreNumbering();
       }
    }
    else // PreInvoiceId  eğer dolu değilse diyaloğumuzu çağırıyoruz
    {
        element.dialogPreNumbering();
    }
}

şidide  dialogPreNumbering() metodumuza bakalım

void dialogPreNumbering()
{
    dialog                  d = new Dialog("Numara başlangıcı");
    dialogField             dfPrefix;
    dialogField             dfSufix;

    DTSeries                Prefix;
    DTStartingNum           Sufix;
    CustInvoiceJour         localCustInvoiceJour;
    CustInvoiceJour         upCustInvoiceJour;
;
    d.addGroup().columns(2);
    dfPrefix = d.addField(typeId(DTSeries),"Seri");
    dfSufix  = d.addField(typeId(DTStartingNum), "Başlangıç");

    if(d.run())
    {
        Prefix      = dfPrefix.value();
        Sufix       = dfSufix.value();

        localCustInvoiceJour = CustInvoiceJour_ds.getFirst(1);

        if(localCustInvoiceJour) // yine seçilen kayıtlarda dolanıp gerekli updateişlemini yapıyoruz.
        {
            while (localCustInvoiceJour)
            {
                ttsbegin;
                upCustInvoiceJour = CustInvoiceJour::findRecId(localCustInvoiceJour.RecId,true);
                upCustInvoiceJour.PreInvoiceId = strfmt("%1%2",Prefix,Sufix);
                upCustInvoiceJour.update();
                ttscommit;

                Sufix += 1;

                localCustInvoiceJour = CustInvoiceJour_ds.getNext();
            }
        }
        else
        {
                ttsbegin;
                upCustInvoiceJour = CustInvoiceJour::findRecId(CustInvoiceJour.RecId,true);
                upCustInvoiceJour.PreInvoiceId = strfmt("%1%2",Prefix,Sufix);
                upCustInvoiceJour.update();
                ttscommit;
      �
        }
    }
  �
    CustInvoiceJour_ds.executeQuery(); // formu tazeledik update işlemleri artık görünür halde

}

Selamlar.

Axaptada forma seçime göre range eklemek.

Merhaba

Örneğin bir formunuz var  belli kriterlere göre süzülmesi isteniyor öncelikle gerekli değişkenimizi forma ekliyoruz.

eğer enum tipindeyse ComboBox EDT ise listBox yapabilirsiniz.

sonra eklediğiniz objenin modified metodundan şu metodu çağırın.

void addRange()
{

// önce eski rangeleri temizliyoruz
AXIntegrationTable_ds.query().dataSourceName(“AXIntegrationTable”).clearRange(fieldnum(AXIntegrationTable, RecordType));

Read more

Cross Company ile query yazmak

Merhaba

Bu yazımda birden çok şirketin verilerini gösteren bir formda seçilen kayıtların hangi şirketlerde olduğunu bulan bir metod öreneği var.

void groupByCompany()
{
    TmpFrmVirtual   tmpTmpFrmVirtual;
    PurchReqLine    tmpPurchReqLine;

    str 10          dizi[];
    int             i,j;
    Query           query;
    QueryRun        qRun;

    ;

Read more

Page 1 of 212