**
1、NC65及NC63 各类开发实例
- 附件管理(自定义附件)
**
> 自定义附件管理按钮实现当前单据附件上传
代码:
package nc.ui.hfet.hfet_fininvoiceandorg.ace.action2;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import nc.hr.utils.ResHelper;
import nc.md.data.access.NCObject;
import nc.ui.pub.beans.UIDialog;
import nc.ui.pub.filesystem.FileManageUI;
import nc.ui.pub.print.PictureUploadDLG;
import nc.ui.pubapp.uif2app.model.BillManageModel;
import nc.ui.pubapp.uif2app.view.ShowUpableBillForm;
import nc.ui.uif2.NCAction;
import nc.ui.uif2.model.AbstractAppModel;
import nc.vo.hfet.hfet_fininvoiceandorg.AggHfet_fininvoiceandorg;
import nc.vo.hfet.hfet_fininvoiceandorg.Hfet_fininvoiceandorg;
public class OutputFileAction extends NCAction {
private static final long serialVersionUID = 1L;
private ShowUpableBillForm editor;
//private BillManageModel model;
private PictureUploadDLG pictureUploadDLG;
private BillManageModel model;
protected AbstractAppModel appModel;
public AbstractAppModel getAppModel() {
return appModel;
}
public void setAppModel(AbstractAppModel appModel) {
this.appModel = appModel;
}
public OutputFileAction(){
setCode("printLoagBQuery");
setBtnName("附件管理");
//ActionInitializer.initializeAction(this, "File");
}
@Override
public void doAction(ActionEvent e) throws Exception {
Object[] objValue = (Object[]) getModel().getSelectedOperaDatas();
if(objValue==null){
throw new Exception("请选择数据后再点上传附件");
}
if(objValue.length>1){
throw new Exception("只允许选择一条数据进行附件上传");
}
//validate(objValue);
//checkDataPermission();
/*if (!beforeDialogOpen())
{
return;
} */
AggHfet_fininvoiceandorg object = (AggHfet_fininvoiceandorg) objValue[0];
Hfet_fininvoiceandorg parentVO = object.getParentVO();
FileManageUI fileManageUI = new FileManageUI(parentVO.getPk_hfet_declearinfomt());
fileManageUI.setTreeRootVisible(false);
fileManageUI.setToolBarVisible(true);
UIDialog fileManageDialog = new UIDialog(getModel().getContext().getEntranceUI(), ResHelper.getString("6001uif2", "06001uif20033"));
fileManageDialog.getContentPane().setLayout(new BorderLayout());
fileManageDialog.getContentPane().add(fileManageUI, "Center");
fileManageDialog.setResizable(true);
fileManageDialog.setSize(820, 400);
//initBtnState();
fileManageDialog.showModal();
//getPictureUploadDLG().setVisible(true);
}
private PictureUploadDLG getPictureUploadDLG() {
if (pictureUploadDLG == null) {
pictureUploadDLG = new PictureUploadDLG(getModel().getContext().getEntranceUI());
}
return pictureUploadDLG;
}
public ShowUpableBillForm getEditor() {
return editor;
}
public void setEditor(ShowUpableBillForm editor) {
this.editor = editor;
}
public BillManageModel getModel() {
return model;
}
public void setModel(BillManageModel model) {
this.model = model;
}
}
> 判断当前单据是否有上传附件
代码:
IUAPQueryBS server = NCLocator.getInstance().lookup(IUAPQueryBS.class);
Object[] aggvos = getModel().getSelectedOperaDatas();
for(int i = 0 ;i < aggvos.length ; i++){
PriceAuditVO aggvo = (PriceAuditVO) aggvos[i];
PriceAuditHeaderVO headvo = (PriceAuditHeaderVO)aggvo.getParentVO();
String pk_priceaudit = headvo.getPk_priceaudit();
String sql = "select count(pk) from sm_pub_filesystem where filepath like '"+pk_priceaudit+"%' and dr = 0 and isdoc = 'z' and isfolder = 'n'";
int filecount = 0;
filecount = (int) server.executeQuery(sql, new ColumnProcessor());
if(0 == filecount){
MessageDialog.showErrorDlg(((ShowUpableBillForm)this.editor).getBillCardPanel(), "提交失败", "附件必填,请到辅助功能按钮里的附件管理上传附件!");
putValue("message_after_action", "提交失败,失败单据号:" + headvo.getVbillcode());
return;
}
}
> 自定义附件管理(自定义路径,自定义大小,是否可删除,是否可以修改。。。。。)
代码:
IUAPQueryBS dao = (IUAPQueryBS) NCLocator.getInstance().lookup(IUAPQueryBS.class);
EquipVO aggvo = (EquipVO)getModel().getSelectedData();
EquipHeadVO hvo = aggvo.getParentVO();
String sql="select pk_checkstandard_equip from qc_standard_equip where wl='"+hvo.getPk_material()+"' and dr=0";
String pk = (String)dao.executeQuery(sql, new ColumnProcessor());
if(pk==null){
MessageDialog.showErrorDlg(getModel().getContext().getEntranceUI(),
"提示", "当前设备卡片中的设备还未进行质检!");
}else{
String finalchildpath = "检验单-设备";
String userCode = WorkbenchEnvironment.getInstance().getLoginUser().getUser_code();
String funcode = getModel().getContext().getNodeCode();
String pk_group = getModel().getContext().getPk_group();
FileManageUI ui = FileManageUIFactory.getFileManagePnl(pk,userCode, funcode, pk_group);
String fullPath = pk+"/"+ finalchildpath;
//附件服务
IFileSystemService service = (IFileSystemService) NCLocator
.getInstance().lookup(IFileSystemService.class);
if (!(service.isExist(pk))) {
service.createNewFileNode(pk, finalchildpath,
WorkbenchEnvironment.getInstance().getLoginUser().getCuserid());
}
ui = FileManageUIFactory.getFileManagePnl(fullPath, userCode, funcode,pk_group);
ui.setDeleteNodeEnable(false);//附件是否可以删除
ui.setUploadFileEnable(false);//附件是否可以上传
ui.setRenameNodeEnable(false);//文件夹是否可以重命名
ui.setCreateNewFolderEnable(false);//是否可以添加文件夹
ui.setEnabled(false);
ui.setTreeEditable(false);
ui.setTreeRootVisible(false);
UIDialog dlg = new UIDialog(getModel().getContext().getEntranceUI(),
NCLangRes4VoTransl.getNCLangRes().getStrByID("pubapp_0","0pubapp-0129"));
dlg.getContentPane().setLayout(new BorderLayout());
dlg.getContentPane().add(ui, "Center");
dlg.setResizable(true);
dlg.setSize(600, 400);
dlg.showModal();