前言
导出到Text有两种方式,
一、TextIo
TextIO textIO;
container line,line1;
str filepath;
Dialog dialog;
DialogField dialogFileName;
FileIoPermission permission;
container confilter =['.txt','*.txt'];
InventTable _inventtable;
filepath = WinAPI::getSaveFileName(
0,
confilter,
"",
"Save As",
"",
"Untitled")
#File
;
try
{
new FileIoPermission(filepath, #io_write).assert();
textIO = new TextIO(filepath, #io_write);
textIO.outRecordDelimiter(#delimiterCRLF);
textIO.outFieldDelimiter(' | ');// for semicolon seperator 对于分号分隔符
if (!textIO || textIO.status() != IO_Status::Ok)
{
throw error("File cannot be opened.");
}
while select _inventtable
{
// Empty the container 清空容器
line = connull();
// Set the data into the container 将数据设置到容器中
line = conins(line, 1, _inventtable.ItemId);
line = conins(line, 2, _inventtable.NameAlias);
// Write the container to the file 将容器写入文件
textIO.writeExp(line);
}
}
catch(Exception::Error)
{
error("You do not have access to write the file to the selected folder");
}
// Revert the access privileges 恢复访问权限
CodeAccessPermission::revertAssert();
二、TextBuffer
InventItemInventSetup _InventItemInventSetup;
InventTableModule _InventTableModule;
inventtable _inventtable;
bindata bindata;
textbuffer textbuffer;
utcDateTime GMTDateTime;
str thisda;
str ThisDa2
;
textbuffer = new textbuffer();
textbuffer.settext('');
if(fieldDisplayMessage.value() != '')
{
while select _inventtable where _inventtable.ItemId == fieldDisplayMessage.value()
{
select firstOnly _InventTableModule
where _InventTableModule.ItemId == _inventtable.ItemId
&& _InventTableModule.ModuleType == ModuleInventPurchSales::Invent;
_InventItemInventSetup = InventItemInventSetup::findDefault(_inventtable.ItemId);
//select firstOnly _InventItemInventSetup where _InventItemInventSetup.ItemId == _inventtable.ItemId;
textbuffer.appendtext(strfmt('%1\r\ | %2\r | %3\r | %4\r\n',
_inventtable.itemid,
_inventtable.NameAlias,
_InventTableModule.UnitId,
_InventItemInventSetup.MultipleQty));
}
}
else
{
while select _inventtable
{
select firstOnly _InventTableModule
where _InventTableModule.ItemId == _inventtable.ItemId
&& _InventTableModule.ModuleType == ModuleInventPurchSales::Invent;
_InventItemInventSetup = InventItemInventSetup::findDefault(_inventtable.ItemId);
//select firstOnly _InventItemInventSetup where _InventItemInventSetup.ItemId == _inventtable.ItemId;
textbuffer.appendtext(strfmt('%1\r\ | %2\r | %3\r | %4\r\n',
_inventtable.itemid,
_inventtable.NameAlias,
_InventTableModule.UnitId,
_InventItemInventSetup.MultipleQty));
}
}
textbuffer.gettext();
bindata = new bindata();
bindata.setstrdata(textbuffer.gettext());
GMTDateTime = DateTimeUtil::getSystemDateTime();
thisda = datetime2str(GMTDateTime);
ThisDa2 = strAlpha(thisda);
bindata.savefile(@"c:\temp\导出产品信息"+ThisDa2+".txt");
3、TextStreamIo
Public Static void main(Args args)
{
TextStreamIo writeStreamIO;
Int lineNumber;
//writeStreamIO = TextStreamIo::constructForWrite(0); // Code_Page = ANSI encoding.
writeStreamIO = TextStreamIo::constructForWrite(); //Code_Page = UniCode encoding.
writeStreamIO.outRecordDelimiter('\n');
for(lineNumber =1; lineNumber <= 5; lineNumber++)
{
writeStreamIO.write(strFmt("Line number - %1", lineNumber ));
}
File::SendFileToUser(writeStreamIO.getStream(), @"C:\Test.txt");
}