Snippets Collections
public boolean modified()
{
    boolean     ret;
   // DNGRMTmpUnitDetails          tmpUnitDetailsLoc;
    container conWorker=conNull();
    str val="";
    ret = super();
 conWorker=multiWorker.getSelectedFieldValues();
    /*
    workers.text("");
    workers.text(con2Str(conWorker,";"));*/
   // DNPayrollProcessNew.ConEmplID = multiWorker.get();
    val=con2Str(conWorker,";");
  //      info(strFmt("%1-%2",strLen(val),val));
    return ret;
}
//customized by Firas.Fatoum 6.4.2022

static TempStr numeralsToTxt_AR(real _num)
{
    real    numOfPennies = decround(frac(_num), 2);
    real    test         = _num - frac(_num);
    str     zero;
    str     comma;
    str     and;
    str     cent;
    int     numOfTenths;
    str 20  ones[19], tenths[9], hundreds, thousands, millions, billions, trillions;

    int64   temp;
    str 200  returntxt;

    real modOperator(real a1, real a2)
    {
    int     tmpi;
    real    tmp1, tmp2;
    tmp1 = a1 / a2;
    tmpi = real2int(tmp1);
    tmp2 = tmpi;
    return (tmp1 - tmp2)*a2;
    }

    str doubleDigit2ARTxt(real doubledigit,boolean _pennies = false)
    {
        str     txt;
        int     firstDigit;
        real    tempdigit;

        if(_pennies)
        {
            firstDigit = doubledigit * 10;
            doubledigit = doubledigit * 100;
            if(!firstDigit)
            {
                doubledigit = doubledigit  mod  10;
                //txt = zero + " " + ones[doubledigit];
                txt = ones[doubledigit];
                return txt;
            }
        }
        tempdigit = doubledigit;
        if (tempdigit >= 20)
        {
            tempdigit = tempdigit  div  10;
            txt = tenths[tempdigit];
            doubledigit = doubledigit  mod  10;
        }
        if (doubledigit >= 1)
        {
            txt = txt ?  (ones[doubledigit] + and + txt) : ones[doubledigit];
        }

        return txt;
    }

    real checkPower(real  _test,int64 _power)
    {
        int64   numOfPower;

        if (_test >= _power)
        {
            numOfPower = _test div _power;
            if (numOfPower >= 100)
            {
                temp = numOfPower div 100;

                if(temp > 9)// The validation was previously on 2
                {
                    returntxt = returntxt ? (returntxt + and + ones[temp] + ' ' + hundreds) :(returntxt + ' ' + ones[temp] + ' ' + hundreds);
                }

                else
                {
                    switch(temp)
                    {

                        Case 1:
                                returntxt = returntxt ? (returntxt + and + hundreds) : (returntxt + ' ' + hundreds);
                                break;
                        Case 2:
                                // TO DO need to insert a label for two hundred in Arabic
                                returntxt = returntxt ? (returntxt + and + "مائتين") :   returntxt + ' ' + "مائتين";
                                break;
                        Case 3:
                                // TO DO need to insert a label for three hundred in Arabic
                                returntxt = returntxt ? (returntxt + and + "ثلاثمائة") :   returntxt + ' ' + 'ثلاثمائة';
                                break;
                        Case 4:
                                // TO DO need to insert a label for four hundred in Arabic
                                returntxt = returntxt ? (returntxt + and + "اربعمائة") :   returntxt + ' ' + "اربعمائة";
                                break;
                        Case 5:
                                // TO DO need to insert a label for five hundred in Arabic
                                returntxt = returntxt ? (returntxt + and + "خمسمائة") :   returntxt + ' ' + "خمسمائة";
                                break;
                        Case 6:
                                // TO DO need to insert a label for six hundred in Arabic
                                returntxt = returntxt ? (returntxt + and + "ستمائة") :   returntxt + ' ' + "ستمائة";
                                break;
                        Case 7:
                                // TO DO need to insert a label for seven hundred in Arabic
                                returntxt = returntxt ? (returntxt + and + "سبعمائة") :   returntxt + ' ' + "سبعمائة";
                                break;
                        Case 8:
                                // TO DO need to insert a label for eight hundred in Arabic
                                returntxt = returntxt ? (returntxt + and + "ثمانمائة") :   returntxt + ' ' + "ثمانمائة";
                                break;
                        Case 9:
                                // TO DO need to insert a label for nine hundred in Arabic
                                returntxt = returntxt ? (returntxt + and + "تسعمائة") :   returntxt + ' ' + "تسعمائة";
                                break;

                    }
                }
                numOfPower = numOfPower mod 100;
            }
            if(numOfPower > 2 && _power > 100)
            {
                returntxt = returntxt ?  (returntxt + and + doubleDigit2ARTxt(real2int(numOfPower))) : (returntxt  + ' ' + doubleDigit2ARTxt(real2int(numOfPower)));
            }
            else
            {
                if(returntxt && numOfPower)
                {
                    returntxt = returntxt + and + ' ';
                }
            }
            switch(_power)
            {
                case 1000000000000 :
                {
                    if( numOfPower == 2)
                    {
                        // TO DO need to insert a label for two trillions in Arabic
                        returntxt = returntxt + "تريليونين ";
                    }
                    else
                    {
                        returntxt = numOfPower > 10 ||  numOfPower == 1 || numOfPower == 0 ? (returntxt + ' ' + trillions) : (returntxt + ' ' + "تريليونات");
                    }
                    _test = modOperator(_test, 1000000000000.00);
                    break;
                }
                case 1000000000 :
                {
                    if( numOfPower == 2)
                    {
                        // TO DO need to insert a label for two billions in Arabic
                        returntxt = returntxt + "مليارين";
                    }
                    else
                    {
                        returntxt = numOfPower > 10 ||  numOfPower == 1 || numOfPower == 0 ? (returntxt + ' ' + billions) : (returntxt + ' ' + "مليارات");
                    }
                    _test = modOperator(_test, 1000000000);
                    break;
                }
                case 1000000 :
                {
                    if( numOfPower == 2)
                    {
                        // TO DO need to insert a label for two Millions in Arabic
                        returntxt = returntxt + "مليونين";
                    }
                    else
                    {

                        returntxt = numOfPower > 10 || numOfPower == 1 || numOfPower == 0 ? (returntxt + ' ' + millions) : (returntxt + ' ' + "ملايين");

                    }
                    _test = modOperator(_test, 1000000);
                    break;
                }
                case 1000 :
                {
                    if( numOfPower == 2)
                    {
                        // TO DO need to insert a label for two Thousands' in Arabic
                        returntxt = returntxt + "ألفين";
                    }
                    else
                    {
                        returntxt = numOfPower > 10 ||  numOfPower == 1 || numOfPower == 0  ? (returntxt + ' ' + thousands) : (returntxt + ' ' + "الاف");
                    }
                    _test = modOperator(_test, 1000);
                    break;
                }
                case 100 :
                {
                    switch (numOfPower)
                    {
                        case 2:
                        returntxt = returntxt + "مائتين";
                        break;

                        case 3:
                        returntxt = returntxt +"ثلاثمائة";
                        break;

                        case 4:
                        returntxt = returntxt + "اربعمائة";
                        break;

                        case 5:
                        returntxt = returntxt + "خمسمائة";
                        break;

                        case 6:
                        returntxt = returntxt + "ستمائة";
                        break;

                        case 7:
                        returntxt = returntxt + "سبعمائة";
                        break;

                        case 8:
                        returntxt = returntxt + "ثمانمائة";
                        break;

                        case 9:
                        returntxt = returntxt + "تسعمائة";
                        break;

                        default:
                        returntxt = returntxt + ' ' + hundreds;
                    }

                     _test = modOperator(_test, 100);
                    break;
                }
            }

        }
        return _test;

    }

    //infolog.language("AR");



    #Define.text_1('واحد')
    #Define.text_2('اثنان')
    #Define.text_3('ثلاثة')
    #Define.text_4('اربعة')
    #Define.text_5('خمسة')
    #Define.text_6('ستة')
    #Define.text_7('سبعة')
    #Define.text_8('ثمانية')
    #Define.text_9('تسعة')
    #Define.text_10('عشرة')
    #Define.text_11('احدى عشر')
    #Define.text_12('اثنا عشر')
    #Define.text_13('ثلاثة عشر')
    #Define.text_14('اربعة عشر')
    #Define.text_15('خمسة عشر')
    #Define.text_16('ستة عشر')
    #Define.text_17('سبعة عشر')
    #Define.text_18('ثمانية عشر')
    #Define.text_19('تسعة عشر')
    #Define.text_20('عشرين')
    #Define.text_30('ثلاثين')
    #Define.text_40('اربعين')
    #Define.text_50('خمسين')
    #Define.text_60('ستين')
    #Define.text_70('سبعين')
    #Define.text_80('ثمانين')
    #Define.text_90('تسعين')
    #Define.text_100('مائة')
    #Define.text_200('مائتان')
    #Define.text_300('ثلاثمائة')
    #Define.text_400('أربعمائة')
    #Define.text_500('خمسمائة')
    #Define.text_600('ستمائة')
    #Define.text_700('سبعمائة')
    #Define.text_800('ثمانمائة')
    #Define.text_900('تسعمائة')
    #Define.text_1000('الف')
    #Define.text_1000000('مليون')
    #Define.text_1000000000('بليون')
    #Define.text_1000000000000('تريليون')
    #Define.text_and('و')
    #Define.text_only('فقط')
    #Define.text_cent('هللــه')
    #Define.text_comma('ريـال')
    #Define.text_zero('صفر')

    and     = ' ' + #text_and + ' ';
    comma   = #text_comma;
    zero    = #text_zero;
    cent    = #text_cent;

    ones[1] = #text_1;
    ones[2] = #text_2;
    ones[3] = #text_3;
    ones[4] = #text_4;
    ones[5] = #text_5;
    ones[6] = #text_6;
    ones[7] = #text_7;
    ones[8] = #text_8;
    ones[9] = #text_9;
    ones[10] = #text_10;
    ones[11] = #text_11;
    ones[12] = #text_12;
    ones[13] = #text_13;
    ones[14] = #text_14;
    ones[15] = #text_15;
    ones[16] = #text_16;
    ones[17] = #text_17;
    ones[18] = #text_18;
    ones[19] = #text_19;

    tenths[1] = 'Not used';
    tenths[2] = #text_20;
    tenths[3] = #text_30;
    tenths[4] = #text_40;
    tenths[5] = #text_50;
    tenths[6] = #text_60;
    tenths[7] = #text_70;
    tenths[8] = #text_80;
    tenths[9] = #text_90;

    hundreds = #text_100;
    thousands = #text_1000;
    millions = #text_1000000;
    billions = #text_1000000000;
    trillions = #text_1000000000000;

    if(test == 0)
    {
        returntxt = zero;
    }
    else
    {
        test = checkPower(test, 1000000000000);
        test = checkPower(test, 1000000000);
        test = checkPower(test, 1000000);
        test = checkPower(test, 1000);
        test = checkPower(test, 100);
    }

    if(returntxt && test)
    {
        returntxt = returntxt + and + doubleDigit2ARTxt(real2int(test));
    }
    else
    {
        returntxt = returntxt + ' ' + doubleDigit2ARTxt(real2int(test));
    }

    if(numOfPennies)
    {
        //Removing the stars and addin the pound and cent wording to fullfil the Egyptian requierment
        returntxt = returntxt + ' ' + comma + ' ' + and + doubleDigit2ARTxt(numOfPennies,true) + ' ' + cent + '  فقط لاغير  ';
        //returntxt = '***' + returntxt + ' ' + comma + ' ' + doubleDigit2ARTxt(numOfPennies,true);

    }
    else
    {
        //Removing the stars and the zeros if no cents to fullfil the Egyptian requierment
        returntxt = returntxt + ' ' + comma + '  فقط لاغير  ';

        //returntxt = '***' + returntxt + ' ' + comma + ' ' + zero + ' ' + zero;
    }



    return returntxt;
}
print "Current extension is " + curExt();

print "Current user ID is " + curUserId();

print "Current function context is " + funcName();

info(curExt());

///////////////////////////////////////////////////////////////

CompanyInfo::current(curext());

///////////////////////////////////////////////////////////////
boolean ret;

ret = super();

switch(curext())
{
  case 'YAL':
    LedgerJournalTrans_DS.object(fieldNum(LedgerJournalTrans,ArchiveReference)).mandatory(false);
    break;

  case 'TEL':
    LedgerJournalTrans_DS.object(fieldNum(LedgerJournalTrans,ArchiveReference)).mandatory(false);
    break;

  default:
    LedgerJournalTrans_DS.object(fieldNum(LedgerJournalTrans,ArchiveReference)).mandatory(true);
    break;
}

return ret;
    
    PurchTable         purchTable;
    ;
    select DocumentState from purchTable where purchTable.PurchId == this.PurchId;    
    return purchTable.DocumentState;
    

    //////////////////////////////////////////////////////////////////////
    
    return  PurchTable::find(this.PurchId, false).DocumentState;
static void sqlq(Args _args)
{
    str sql, StoreID;
    Connection conn;
    SqlStatementExecutePermission permission;
    Statement statement;
    ResultSet resultSet;
    int64 Qty;
    conn = new Connection();
    
    sql = "SELECT dbo.INVENTDIM.INVENTLOCATIONID AS StoreID, SUM(- (1 * dbo.INVENTTRANS.QTY)) AS Qty FROM  dbo.INVENTTRANSORIGIN INNER JOIN dbo.INVENTTRANS ON dbo.INVENTTRANSORIGIN.RECID = dbo.INVENTTRANS.INVENTTRANSORIGIN AND dbo.INVENTTRANSORIGIN.ITEMID = dbo.INVENTTRANS.ITEMID INNER JOIN dbo.INVENTDIM ON dbo.INVENTTRANS.INVENTDIMID = dbo.INVENTDIM.INVENTDIMID WHERE        (dbo.INVENTTRANSORIGIN.REFERENCECATEGORY = 0) AND (dbo.INVENTTRANS.DATEFINANCIAL BETWEEN CONVERT(DATETIME, '2019-05-01 00:00:00', 102) AND CONVERT(DATETIME, '2019-05-10 00:00:00', 102)) GROUP BY dbo.INVENTDIM.INVENTLOCATIONID";
    
    permission = new SqlStatementExecutePermission(sql);
    
    permission.assert();
    
    statement = conn.createStatement();
    resultSet = statement.executeQuery(sql);
    
    while (resultSet.next())
    {
        StoreID = resultSet.getString(1);
        Qty = resultSet.getInt64(2);
        
        info(strFmt("StoreID %1, Qty %2", StoreID, Qty));
        
    }
}
SalesByStaffReportTemp salesByStaffReportTemp;
//table type from properties TempDB

 ttsBegin;

while (resultSet.next())
{
  salesByStaffReportTemp.clear();
  salesByStaffReportTemp.StaffName =StaffName;
  salesByStaffReportTemp.NetSalesVat =any2Real(NetSalesVAT);
  salesByStaffReportTemp.insert();
}
//str date2Str(date date, int sequence, int day, int separator1, int month, int separator2, int year [, int flags = DateFlags::None])

    date currentDate = today();
    str s;
    int iEnum;
    s = date2Str
    (currentDate, 
        321,
        DateDay::Digits2,
        DateSeparator::Hyphen, // separator1
        DateMonth::Digits2,
        DateSeparator::Hyphen, // separator2
        DateYear::Digits4
    );
    info("Today is:  " + s);

/** Example Infolog output
Message (12:36:21 pm)
Today is:  2009-01-13
**/

////////////////////////////////////////////////////////////////////////////////

sql_fromDate =  date2str(fromDate,321,DateDay::Digits2,DateSeparator::Hyphen,DateMonth::Digits2,DateSeparator::Hyphen,DateYear::Digits4);

/** output
2018-09-20
**/
System.ArgumentException ex;
try
{
    throw new System.ArgumentException("Invalid argument specified");
}
catch(ex)
{
    error(ex.Message);
}

///////////////////////////////////////////////////////////////////////////////

try
{
    // call to .NET code which throws exception
}
catch(Exception::CLRError)
{
    System.Exception ex = CLRInterop::getLastException();
    error(ex.Message);
}

///////////////////////////////////////////////////////////////////////////////

var athing = new SomethingDisposable();
try
{
    // Do work.
}
finally
{
    if (athing != null)
        athing.Dispose();
}

///////////////////////////////////////////////////////////////////////////////

static void TryCatchThrowError1Job(Args _args)
{
/***
    The 'throw' does not directly add a message to the Infolog.
    The exception is caught.
***/
    try
    {
        info("In the 'try' block. (j1)");
        throw Exception::Error;
    }
    catch (Exception::Error)
    {
        info("Caught 'Exception::Error'.");
    }

/**********  Actual Infolog output
Message (03:43:45 pm)
In the 'try' block. (j1)
Caught 'Exception::Error'.
**********/
}
star

Wed Jun 22 2022 06:25:30 GMT+0000 (Coordinated Universal Time)

#dynamicsax2012 #x++
star

Tue Jun 21 2022 06:32:54 GMT+0000 (Coordinated Universal Time)

#dynamicsax2012
star

Tue Jun 21 2022 06:29:23 GMT+0000 (Coordinated Universal Time)

#dynamicsax2012
star

Tue Jun 21 2022 06:25:29 GMT+0000 (Coordinated Universal Time)

#dynamicsax2012
star

Tue Jun 21 2022 06:23:45 GMT+0000 (Coordinated Universal Time)

#dynamicsax2012
star

Tue Jun 21 2022 06:21:26 GMT+0000 (Coordinated Universal Time)

#dynamicsax2012
star

Tue Jun 21 2022 06:17:32 GMT+0000 (Coordinated Universal Time) https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/dev-ref/xpp-conversion-run-time-functions

#dynamicsax2012
star

Tue Jun 21 2022 06:11:33 GMT+0000 (Coordinated Universal Time) https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/dev-ref/xpp-exceptions

#dynamicsax2012

Save snippets that work with our extensions

Available in the Chrome Web Store Get Firefox Add-on Get VS Code extension