Tuesday, January 8, 2019

Customer Excel Export Based on Dialog Window Parameter

class ASAPG_CustomerListReport
{

    Dialog             dialog;
    str                ID;
    DialogField        dialogCountryCode;
    DialogGroup        dialogGroup;
    DialogField        dialogField,dialogField1;
    DialogRunbase      dialogRunbase;

}
-----------

public void CountryCodeLookup(FormStringControl control)
{
    //boolean ret;
    //Query                   query = new Query();
    //QueryBuildDataSource    queryBuildDataSource;
    //QueryBuildRange         queryBuildRange;
    //;

    dialogField1 = dialog.addField(extendedTypeStr(LogisticsAddressCountryRegionId));



}
----------

public void run()
{

    SysExcelApplication         xlsApplication;
    SysExcelWorkBooks           xlsWorkBookCollection;
    SysExcelWorkBook            xlsWorkBook;
    SysExcelWorkSheets          xlsWorkSheetCollection;
    SysExcelWorkSheet           xlsWorkSheet;
    SysExcelRange               xlsRange;
    CustTable                   custTable, _custTablenow;
    int                         row = 1;
    Name                        fileName , phoneNum , emailAddr , teleFax , faxNum,var1,var2,var3;
    str                         phonedesc , emailAddrdesc , teleFaxdesc , faxNumdesc,descrp1,descrp2,descrp3;
    str                         type1,type2,type3,type4,type5,type6;
    container                   contactInfo,ContactInfoDes,typeCon;
    int                         counter, counter1d ;
    RecId                       localCustRecid;

    Name                        countryReg;

    DirPartyLocation dirPartyLocation;

    LogisticsElectronicAddress logisticsElectronicAddress;

     ;

    fileName = "C:\\CustomerList.xlsx";

    xlsApplication           = SysExcelApplication::construct();

    xlsWorkBookCollection    = xlsApplication.workbooks();
    xlsWorkBook              = xlsWorkBookCollection.add();
    xlsWorkSheetCollection   = xlsWorkBook.worksheets();
    xlsWorkSheet             = xlsWorkSheetCollection.itemFromNum(1);

    dialogRunbase = this.showDialog();

    if(dialogRunbase.run())
    {
      ID =   dialogCountryCode.value();

      if(!ID)
       throw error("Enter Country Region ID");

     while select  custTable //  where custTable.AccountNum == '2332'
     {

      countryReg = custTable.countryRegionId();

      if(countryReg ==  ID )
       {

         _custTablenow = CustTable::find(custTable.AccountNum);

          while select dirPartyLocation
              where dirPartyLocation.Party ==custTable.Party
                 join logisticsElectronicAddress where logisticsElectronicAddress.Location == dirPartyLocation.Location
              if(logisticsElectronicAddress)
                 {

                    contactInfo    += logisticsElectronicAddress.Locator;
                    ContactInfoDes += logisticsElectronicAddress.Description;
                    //   typeCon        += enum2str(logisticsElectronicAddress.Type);

                    for(counter=1 ; counter<=conLen(contactInfo);counter++)
                    {
                        //info(conPeek(contactInfo,counter));
                        phoneNum  = conPeek(contactInfo,1);
                        faxNum    = conPeek(contactInfo,2);
                        emailAddr = conPeek(contactInfo,3);
                        var1      = conPeek(contactInfo,4);
                        var2      = conPeek(contactInfo,5);
                        var3      = conPeek(contactInfo,6);

                     }

                    for(counter1d=1 ; counter1d<=conLen(ContactInfoDes);counter1d++)
                    {
                        // info(conPeek(ContactInfoDes,counter1d));
                        phonedesc     = conPeek(ContactInfoDes,1);
                        faxNumdesc    = conPeek(ContactInfoDes,2);
                        emailAddrdesc = conPeek(ContactInfoDes,3);
                        descrp1       = conPeek(ContactInfoDes,4);
                        descrp2       = conPeek(ContactInfoDes,5);
                        descrp3       = conPeek(ContactInfoDes,6);

                    }
                 }


       //Actual data here**
        xlsWorkSheet.cells().item(row,1).value(custTable.AccountNum);
        xlsWorkSheet.cells().item(row,2).value(custTable.name());
        xlsWorkSheet.cells().item(row,3).value(custTable.address());
        xlsWorkSheet.cells().item(row,4).value(custTable.countryRegionId());
        xlsWorkSheet.cells().item(row,5).value(phoneNum);
        xlsWorkSheet.cells().item(row,6).value(faxNum);
        xlsWorkSheet.cells().item(row,7).value(emailAddr);
        xlsWorkSheet.cells().item(row,8).value(var1);
        xlsWorkSheet.cells().item(row,9).value(var2);
        xlsWorkSheet.cells().item(row,10).value(var3);
        xlsWorkSheet.cells().item(row,11).value(phonedesc);
        xlsWorkSheet.cells().item(row,12).value(faxNumdesc);
        xlsWorkSheet.cells().item(row,13).value(emailAddrdesc);
        xlsWorkSheet.cells().item(row,14).value(descrp1);
        xlsWorkSheet.cells().item(row,15).value(descrp2);
        xlsWorkSheet.cells().item(row,16).value(descrp3);

        row++;
         phoneNum         = '';
         faxNum           = '';
         emailAddr        = '';
         var1             ='';
         var2             ='';
         var3             = '';
         phonedesc        ='';
         faxNumdesc       ='';
         emailAddrdesc    ='';
         descrp1          = '';
         descrp2          ='';
         descrp3          ='';
         contactInfo      = conNull();
         ContactInfoDes   = conNull();
      }
    }

    //Check whether the document already exists
    if(WinApi::fileExists(fileName))
      WinApi::deleteFile(fileName);

    //Save Excel document
   xlsWorkbook.saveAs(fileName);

    //Open Excel document
   xlsApplication.visible(true);

     info(strfmt("Total no of rows exported %1", row));

  }
}
------------------

 Dialog showDialog()
{
    FormRun             formRun;
    FormStringControl   ctrlCountryCodeId;
    DialogWindow    dialogWindow;
    ;


    dialog      = new Dialog();
    dialog.addText("Customer Information:");

    dialogGroup = dialog.addGroup("Country Region Code");
    dialogGroup.caption("Enter Country Code Details");

    dialogCountryCode = dialog.addField(extendedTypeStr(LogisticsAddressCountryRegionId));

    dialogCountryCode.displayLength(15);

    dialog.run(true);

    return dialog;
}

-----------------------

public static void main(Args args)
{
    ASAPG_CustomerListReport      customerListReport = new ASAPG_CustomerListReport();
    ;

    customerListReport.run();

}

No comments:

Post a Comment