Import CSV file using file upload
public class discountCodeImportEventHandle
{ [FormControlEventHandler(formControlStr(Discount, Discount), FormControlEventType::Clicked)] public static void CouponUpload_OnClicked(FormControl sender, FormControlEventArgs e) { #File str availableTypes = ".csv"; DialogGroup dialogGroup; Filename textFile; FileUpload fileUploadControl, fileUpload; FormBuildControl formBuildControl; FileUploadBuild dialogFileUpload; CommaTextStreamIo localStream; container currentLine; Counter fileLineNumber; Discount discount; FormDataSource discount_DS; xxxDiscountTable xxxDiscountTable; discount = sender.formRun().dataSource("Discount").cursor(); discount_DS = sender.formRun().dataSource(formDataSourceStr(Discount,Discount)) as FormDataSource; Dialog dialog = new Dialog("Import discount"); dialogGroup = dialog.addGroup("File path"); formBuildControl = dialog.formBuildDesign().control(dialogGroup.name()); dialogFileUpload = formBuildControl.addControlEx(classstr(FileUpload), 'Upload'); dialogFileUpload.style(FileUploadStyle::MinimalWithFilename); dialogFileUpload.baseFileUploadStrategyClassName(classstr(FileUploadTemporaryStorageStrategy)); dialogFileUpload.fileTypesAccepted(availableTypes); dialog.run(); fileUpload = dialog.formRun().control(dialog.formRun().controlId('Upload')); textFile = fileUpload.fileName(); fileUploadControl = dialog.formRun().control(dialog.formRun().controlId('Upload')); FileUploadTemporaryStorageResult fileUploadResult = fileUploadControl.getFileUploadResult(); if (fileUploadResult != null && fileUploadResult.getUploadStatus()) { textFile = fileUploadResult.getDownloadUrl(); } localStream = CommaTextStreamIo::constructForRead(File::UseFileFromURL(textFile)); localStream.inFieldDelimiter("\,"); localStream.inRecordDelimiter("\n"); currentLine = localStream.read(); fileLineNumber++; System.Globalization.CultureInfo culture = System.Globalization.CultureInfo::get_InvariantCulture(); while (currentLine) { // Insert imported CSV file records to table xxxDiscountTable.CouponNumber = Discount.CouponNumber; xxxDiscountTable.DiscountCodeId = conPeek(currentLine, 1); xxxDiscountTable.DiscountCode = conPeek(currentLine, 2); xxxDiscountTable.ActivatedDate = System.DateTime::ParseExact(conPeek(currentLine, 3),'MM/dd/yyyy',culture); if(conPeek(currentLine, 4) == enum2Str(DiscountStatus::Inactive)) { xxxDiscountTable.Status = DiscountStatus::Inactive; } else if(conPeek(currentLine, 4) == enum2Str(DiscountStatus::Active)) { xxxDiscountTable.Status = DiscountStatus::Active; } xxxDiscountTableLoc.insert(); currentLine = localStream.read(); } Discount_DS.refresh(); Discount_DS.research(true); } }
Comments
Post a Comment