导出csv文件

static void NJ_MF_CheckProShape(Args _args)
{
    NJ_Search_Inventory                 NJ_Search_Inventory;
    #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 NJ_Search_Inventory  where NJ_Search_Inventory.ACT_ProdShapeID == "";
        RecCount = NJ_Search_Inventory.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("tagBl,");
            textBuffer.appendText("BatchId,");
            textBuffer.appendText("ItemId,");
            textBuffer.appendText("Category,");
            textBuffer.appendText("ProductShape,");
            textBuffer.appendText("\n");

            while select NJ_Search_Inventory order by TagBl where NJ_Search_Inventory.ACT_ProdShapeID == ""
            {
                //if (StrLen())

                textBuffer.appendText(strReplace(strfmt("%1,",NJ_Search_Inventory.tagBL),"\n"," "));
                textBuffer.appendText(strfmt("%1,",NJ_Search_Inventory.InventBatchId));
                textBuffer.appendText(strfmt("%1,",NJ_Search_Inventory.ItemId));
                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-12-22 09:29  perock  阅读(344)  评论(0编辑  收藏  举报