Create/Export Data in CSV file through Dialog (lookup) in AX 2012

Creat Class and creat a following method under Class:

A. Declare variable in ClassDeclaration.

class Acx_OnHandPlanningReport
{
    System.IO.StreamWriter             sw;
    InteropPermission                       perm;
    Dialog                                         dialog;
    DialogField                                 dialogField, dialogField1, dialogField2;
    Filename                                     fileName;
    FilePath                                      filePath;
    Str                                               string;
    str 200                                         timeStamp;
    ItemId                                         itemId;
    InventLocationId                        warehouse;
    InventSiteId                                site;

    ACX_InventOnHand_2              inventOnHand;
}

--------------------------------------------------------------------------------------------------------------------------
B. Create  a  method called "reportData" or anything as you want.

void reportData()
{
    ;

   string =  'Item Type'                         + ',' +
                 'Bar code'                           + ',' +
                'Item Number'                     + ',' +
                'Item Name '                        + ',' +
                'Site '                                    + ',' +
                'Warehouse '                        + ',' +
                'Location '
    ;

    sw.WriteLine(string);
    string    ='' ;

    while select inventOnHand
        where inventOnHand.inventBatchId           != ''
            && inventOnHand.wMSLocationId       != ''
            && inventOnHand.InventSiteId             like site
            && inventOnHand.InventLocationId     like warehouse
    {
         string =    enum2str(inventOnHand.ACX_ItemType)                                           + ',' +
                         strRem(inventOnHand.ItemId,',')                                                          + ',' +
                         strRem(InventTable::find(inventOnHand.ItemId).itemName(),',')       + ',' +
                         strRem(inventOnHand.InventSiteId,',')                                                 + ',' +
                         strRem(inventOnHand.InventLocationId,',')                                         + ',' +
                         strRem(inventOnHand.wMSLocationId,',')
        ;

        sw.WriteLine(string);
        string    = '';
    }

    sw.Flush();
    sw.Close();
    sw.Dispose();

    CodeAccessPermission::revertAssert();
}

--------------------------------------------------------------------------------------------------------------------------
D. Create a run method

public void run()
{
    dialog          = new Dialog("On Hand Planning Report");
    dialogField  = dialog.addFieldValue(ExtendedTypeStr(InventSiteId), site, "Site Id");
    dialogField1= dialog.addFieldValue(ExtendedTypeStr(InventLocationId), warehouse, "Warehouse");
    dialogField2= dialog.addFieldValue(ExtendedTypeStr(FilePath), filePath, "File Path");

    if (dialog.run())
    {
        site        = dialogField.value();
        site        = !site ? '*' : site;

        warehouse   = dialogField1.value();
        warehouse   = !warehouse ? '*' : warehouse;

        filePath    = dialogField2.value();
        if (!filePath)
        {
            throw error("Please define file path.");
        }

        perm        = new InteropPermission(InteropKind::ClrInterop);
 
        timeStamp   = System.String::Format("{0:ddMMMyy_hhmm}", (DateTimeUtil::applyTimeZoneOffset(DateTimeUtil::utcNow(), Timezone::GMTPLUS0530CHENNAI_KOLKATA_MUMBAI)));
     
        fileName    = filePath + "\\\\On Hand Planning Report_"+ timeStamp + ".csv";

        perm.assert();

        sw = new System.IO.StreamWriter(fileName);
 
        this.reportData();
    }
}
--------------------------------------------------------------------------------------------------------------------------

D. Create a main method

static client void main(Args args)
{
    Acx_OnHandPlanningReport   onHandPlanning = new Acx_OnHandPlanningReport();

    onHandPlanning.run();
}

Comments