Tuesday, October 27, 2015

Open a CSV through a dialog box and read it

 private static void openCSVAndReadIt(Args args)
{
    #File
    IO  iO;
    Dialog dialog;
    DialogField     dialogFilename;
    ProjId projId;
    ProjGroupId fromProjGrpId;
    ProjGroupId toProjGrpId;
    FilenameOpen        filename;
    Container           record;
    boolean first = true;
    ;
    dialog = new Dialog("ProjGrp Change");

    dialogFilename = dialog.addField(extendedTypeStr(FilenameOpen));
    dialog.filenameLookupFilter(["@SYS100852","*.csv"]);

    dialog.caption("ProjGrp Change");
    dialogFilename.value(filename);
    if(!dialog.run())
        return;
    filename = dialogFilename.value();

    iO = new CommaTextIo(filename,#IO_Read);
    if (! iO || iO.status() != IO_Status::Ok)
    {
        throw error("@SYS19358");
    }
    while (iO.status() == IO_Status::Ok)
    {
        record = iO.read();// To read file
        if (record)
        {
            if (first)  //To skip header
            {
                first = false;
            }
            else
            {

                //do your logic here, in my case I will be using it change project groups as mentioned in the next blog post

                projId = conpeek(record, 1);//To peek record
                toProjGrpId = conpeek(record, 4);
                ProjGrpChangeCSV::changeGroupPerReord(ProjTable::find(projId),toProjGrpId);
            }
        }
    }
}

No comments:

Post a Comment