导出CSV

static void ExInventMaterialType(Args _args)

{

    InventTable                         _invent;

    #AviFiles

    str                                 s,tempStr;

    int                                 i,RecCount;

    container                           c,conFilter = ["Excel Files(*.csv)", "*.csv"];

    SysOperationProgress                simpleProgress;

    TextBuffer                          textBuffer  = new TextBuffer();

    FileIoPermission                    perm;

    counter                             Lines;

 

    ;

 

    s = Winapi::getSaveFileName(0, conFilter, "","Save File", "", "");

    if (s)

    {

        select count(RecId) from _invent  where _invent.NJ_MaterialType != "";

        RecCount = _invent.RecId;

        simpleProgress = SysOperationProgress::newGeneral(#aviUpdate, 'Exporting...', RecCount);

        simpleProgress.setCaption("Data Export");

        simpleProgress.setAnimation(#AviFormLetter);

        startlengthyoperation();

 

        try

        {

            perm = new FileIoPermission(s, "w");

            perm.assert();

            textBuffer.appendText("Itemid,");

            textBuffer.appendText("MaterialType,");

            textBuffer.appendText("\n");

 

            while select _invent where _invent.NJ_MaterialType != ""

            {

                //if (StrLen())

 

                //textBuffer.appendText(strReplace(strfmt("%1,",NJ_Search_Inventory.tagBL),"\n"," "));

                textBuffer.appendText(strfmt("%1,",_invent.ItemId));

                textBuffer.appendText(strfmt("%1,",_invent.NJ_MaterialType));

                /* textBuffer.appendText(strfmt("%1,",NJ_Search_Inventory.ACT_ItemCategoryId));

                textBuffer.appendText(strfmt("%1,",NJ_Search_Inventory.ACT_ProdShapeID)); */

                textBuffer.appendText("\n");

 

                simpleProgress.incCount();

                simpleprogress.setText(strfmt("Task: %1/%2", i,RecCount));

                i++;

            }

 

            Lines = textBuffer.numLines();

            try

            {

                if (textBuffer.toFile(s))

                    info(strfmt("¼Ç¼µ¼³öµ½Îļþ %1.¹²µ¼³öÁË %2 ÐмǼ.",s,Lines-1));

            }

            catch ( Exception::Error )

            {

                error ("Generated file error.");

            }

            CodeAccessPermission::revertAssert();

            }

           

        catch (Exception::Deadlock)

        {

            retry;

        }

    }

}

posted @ 2011-09-20 11:10  perock  阅读(588)  评论(0编辑  收藏  举报