Announcements
public class importCSV extends RunBase{ private str availableTypes = /.csv/; private const str OkButtonName = 'OkButton'; private const str FileUploadName = 'FileUpload'; str textFile; DialogRunBase Dialog; public Object dialog() { DialogGroup dialogGroup; FormBuildControl formBuildControl; FileUploadBuild dialogFileUpload; Set enumSet = new Set(Types::Enum); ; dialog = super(); dialogGroup = dialog.addGroup(/File path/); formBuildControl = dialog.formBuildDesign().control(dialogGroup.name()); dialogFileUpload = formBuildControl.addControlEx(classstr(FileUpload), FileUploadName); dialogFileUpload.style(FileUploadStyle::MinimalWithFilename); dialogFileUpload.baseFileUploadStrategyClassName(classstr(FileUploadTemporaryStorageStrategy)); dialogFileUpload.fileTypesAccepted(availableTypes); dialogFileUpload.fileNameLabel(/@SYS308842/); return dialog; } protected void setDialogOkButtonEnabled(DialogRunbase _dialog, boolean _isEnabled) { FormControl okButtonControl = this.getFormControl(_dialog, OkButtonName); if (okButtonControl) { okButtonControl.enabled(_isEnabled); } } protected FormControl getFormControl(DialogRunbase _dialog, str _controlName) { return _dialog.formRun().control(_dialog.formRun().controlId( _controlName)); } protected void uploadCompleted() { FileUpload fileUpload = this.getFormControl(dialog, FileUploadName); fileUpload.notifyUploadCompleted -= eventhandler(this.UploadCompleted); textFile = fileUpload.fileName(); this.setDialogOkButtonEnabled(dialog, true); } /// Disables the dialog Ok button until the file upload is complete. public void dialogPostRun(DialogRunbase _dialog) { FileUpload fileUpload = this.getFormControl(_dialog, FileUploadName); fileUpload.notifyUploadCompleted = eventhandler(this.uploadCompleted); this.setDialogOkButtonEnabled(_dialog, false); } void processCSVFile() { #File container currentLine; int totalOfLines; CommaTextStreamIo localStream; Num number; int fileLineNumber; FileUpload fileUploadControl = this.getFormControl(dialog, FileUploadName); FileUploadTemporaryStorageResult fileUploadResult = fileUploadControl.getFileUploadResult(); if (fileUploadResult != null && fileUploadResult.getUploadStatus()) { textFile = fileUploadResult.getDownloadUrl(); } localStream = CommaTextStreamIo::constructForRead(File::UseFileFromURL(textFile)); if (localStream.status() != IO_Status::Ok) { throw error(strfmt('Is not possible to open the file. Error %1',enum2str(localStream.status()))); } localStream.inFieldDelimiter(///,/); localStream.inRecordDelimiter(///); currentLine = localStream.read(); fileLineNumber ; if(conlen(currentLine) == 1) { throw error('Is not possible to import the file, incorrect format'); } currentLine = localStream.read(); fileLineNumber ; while(currentLine) { number = conPeek(currentLine,1); info(strFmt(/Number : %1/,number)); currentLine = localStream.read(); } } public static void main(Args _args) { importCSV importClass = new importCSV(); importClass.processCSVFile(); } }
André Arnaud de Cal...
294,125
Super User 2025 Season 1
Martin Dráb
232,871
Most Valuable Professional
nmaenpaa
101,158
Moderator