BravoFileWriter / BravoReadFile

Phạm vi áp dụng

✅ Bravo 8 · ✅ Bravo 10

Ý nghĩa

Dùng để ghi / đọc nội dung text hoặc binary ra 1 file.

ClassNameChức năng
BravoFileWriterGhi file
BravoReadFile / BravoFileReaderĐọc file

Cú pháp

<Eval_X>
  <ClassName>BravoFileWriter</ClassName>
  <fileAction>Gia_tri</fileAction>
  <overwriteExistingFile>Gia_tri</overwriteExistingFile>
  <zFileName>Gia_tri</zFileName>
  <Value>Gia_tri</Value>
</Eval_X>

Thuộc tính

ThẻNội dung
fileActionXử lý sau khi đã ghi file thành công:
• Nothing — không làm gì cả
• OpenFile — mở file đã ghi
• OpenFolder — mở thư mục lưu file
overwriteExistingFileXử lý khi file đã tồn tại (vd. Confirm)
zFileNameTên và đường dẫn file. Nếu chỉ có tên file → tự động dùng đường dẫn Temp. Bỏ trắng → tự động dùng tên ngẫu nhiên
ValueBiểu thức trả về nội dung để ghi vào file
fileLocationNơi lưu file:
• DatabaseServer — lưu tại server cài đặt CSDL
• Local — lưu tại máy client
fileNotFoundAction(mặc định Ignore) Lựa chọn việc đọc dữ liệu:
• Ignore — bỏ qua lỗi khi đọc file có lỗi
• SetNull — cho phép xóa trắng ô chọn file
• Error — hiển thị lỗi của chương trình
zCustomConnectionNameKết nối đến Server khác (có tác dụng từ v4.1.7)
nCommandTimeoutSố giây tối đa chờ câu lệnh query trước khi báo lỗi timeout

Yêu cầu quyền

Khi sử dụng Eval để ghi hoặc đọc file thì user đăng nhập SQL phải có quyền đọc/ghi file phù hợp.

Các file txt, xml, csv, tsv sẽ được xử lý như file văn bản.

Ví dụ đầy đủ — lưu và đọc file từ đường dẫn server

1. Khai báo cột tạm chứa nội dung file

<TempColumns>
  <FileContent>
    <DataType>System.Byte[]</DataType>
  </FileContent>
</TempColumns>

2. Đọc file khi tải dữ liệu

<ServerLoaded>
  <Eval_FileContent>
    <ClassName>BravoFileReader</ClassName>
    <DataMember>FileContent</DataMember>
    <fileLocation>DatabaseServer</fileLocation>
    <zFileName>G:\DATABASES2\SQL2014\Asset{=Code}.zip</zFileName>
    <fileNotFoundAction>SetNull</fileNotFoundAction>
  </Eval_FileContent>
</ServerLoaded>

3. Ghi file — khai báo ở ColumnChanged hoặc ServerUpdating

<Eval_BravoFileWriter>
  <ClassName>BravoFileWriter</ClassName>
  <fileLocation>DatabaseServer</fileLocation>
  <zFileName>G:\DATABASES2\SQL2014\Asset{=Code}.zip</zFileName>
  <Value>FileContent</Value>
  <overwriteExistingFile>Confirm</overwriteExistingFile>
  <fileAction>Nothing</fileAction>
</Eval_BravoFileWriter>

Note

Cho dù lưu hay chưa lưu thì file cũng sẽ luôn được ghi vào đường dẫn ở zFileName.

4. Lưu tên file

<ColumnChanged>
  <FileContent>
    <Eval_SaveName>
      <DataMember>FileName</DataMember>
      <Value>IIF(FileContent IS NULL, '', 'G:\DATABASES2\SQL2014\Asset' + Code + '.zip')</Value>
    </Eval_SaveName>
  </FileContent>
</ColumnChanged>

5. Layout — control chọn file

<txtFileName>
  <ClassName>BravoDocInputBox</ClassName>
  <Dock>Top</Dock>
  <allowMultiSelect>ZipAlways</allowMultiSelect>
  <DataMember>FileContent</DataMember>
  <Column>1</Column>
  <Width>90</Width>
</txtFileName>

Liên quan

BravoAddFileEvaluator · BravoDocInputBox · TempColumns · Attach File