Search your query

Wednesday, March 29, 2017

X++ code to create, write and download the Text files (*.txt)

/// <summary>
///  This Job is used to write Text files and download by browser.
/// </summary>

Public Static void main(Args args)
{
      TextStreamIo            writeStreamIO;
      Int lineNumber;
   
      //writeStreamIO = TextStreamIo::constructForWrite(0); // Code_Page = ANSI encoding.

      writeStreamIO = TextStreamIo::constructForWrite(); //Code_Page = UniCode encoding.

      writeStreamIO.outRecordDelimiter('\n');

      for(lineNumber =1; lineNumber <= 5; lineNumber++)
      {
              writeStreamIO.write(strFmt("Line number - %1", lineNumber ));
      }

      File::SendFileToUser(writeStreamIO.getStream(), @"C:\Test.txt");
}

Wednesday, February 15, 2017

Convert SSRS report to PDF file in AX 7 (Dynamics 365)

    /// <summary>
    /// SSRS to PDF
    /// </summary>
    public static void main(Args _args)
    {
        SrsReportRunController          controller = new SrsReportRunController();
        CustTransListContract            rdpContract = new CustTransListContract();
        SRSPrintDestinationSettings     settings;

        try
        {
            // Define report and report design to use
            controller.parmReportName(ssrsReportStr(CustTransList, Report));
            // Use execution mode appropriate to your situation
            //  controller.parmExecutionMode(SysOperationExecutionMode::ScheduledBatch);
            // Suppress report dialog
            controller.parmShowDialog(false);

            // Explicitly provide all required parameters
            controller.parmReportContract().parmRdpContract(rdpContract);

            // Change print settings as needed
            settings = controller.parmReportContract().parmPrintSettings();
            settings.printMediumType(SRSPrintMediumType::File);
            settings.fileFormat(SRSReportFileFormat::PDF);
            settings.fileName(@'d:\SSRS\CustTrans_SSRS.pdf');

            // Execute the report
            //controller.startOperation();
            controller.runReport();
        }
        catch( Exception::Error)
        {
            error("Conversion error");
        }
    }

Tuesday, February 14, 2017

X++ code to browse only Excel File type in browser from AX365 form:



** Need to create a class and extend the FileUploadTemporaryStorageStrategy class.

/// <summary>
/// File upload strategy for Excel files.
/// </summary>

class ExcelFileUploadTemporaryStorageStrategy extends FileUploadTemporaryStorageStrategy
{
    public str allowedFileTypes()
    {
        return ".xlsx,.xls";
    }

}


** Add this class as parameter in FileUploadTemporaryStorageResult class.


FileUploadTemporaryStorageResult result = File::GetFileFromUser(classStr(ExcelFileUploadTemporaryStorageStrategy)) as FileUploadTemporaryStorageResult;

Thursday, February 9, 2017

X++ Code to upload and read the Excel File in Dynamics 365 (Excel Import)

// <summary>
/// Upload and Read the Excel File in Dynamics 365
/// </summary>

        public void uploadAndReadExcelFile()
        {
            FileUploadTemporaryStorageResult result = File::GetFileFromUser() as FileUploadTemporaryStorageResult;

            if (result && result.getUploadStatus())
            {
                str ret;

                using (var package = new OfficeOpenXml.ExcelPackage(result.openResult()))
                {
                    var worksheets = package.get_Workbook().get_Worksheets();
                    var worksheet = worksheets.get_Item(1);
                    var cells = worksheet.get_Cells();
                    var cell = cells.get_Item(1,1);
                    ret = cell.get_Value();
                }

                info(ret);
            }

        }

X++ Code to create and write the Excel File in Dynamics 365 (Excel Export)


/// <summary>
/// Create and Download the Excel file.
/// </summary>

        public void createAndDownloadExcelFile()
        {
            DocuFileSaveResult saveResult = DocuFileSave::promptForSaveLocation("@ApplicationPlatform:OfficeDefaultWorkbookFileName", "xlsx", null, "Testing excel export");
         
            if (saveResult && saveResult.parmAction() != DocuFileSaveAction::Cancel)
            {
                saveResult.parmOpenParameters('web=1');
                saveResult.parmOpenInNewWindow(false);

                System.IO.Stream workbookStream = new System.IO.MemoryStream();
             
             
                System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();

                using (var package = new OfficeOpenXml.ExcelPackage(memoryStream))
                {
                    var worksheets = package.get_Workbook().get_Worksheets();
                    var worksheet = worksheets.Add("First sheet");
                    var cells = worksheet.get_Cells();
                    var cell = cells.get_Item(1,1);
                    cell.set_Value("MyColumnTitle");

                    package.Save();
                }

                memoryStream.Seek(0, System.IO.SeekOrigin::Begin);

                DocuFileSave::processSaveResult(memoryStream, saveResult); // Download the file.
            }
        }