### NCV6开发常用知识与功能代码实现 #### 一、网络编程与域名解析 **知识点**: 在网络编程中,经常需要通过域名来获取其对应的IP地址,这涉及到DNS(Domain Name System)域名解析的过程。 **示例代码**: 通过Java的`InetAddress`类获取域名对应的IP地址。 ```java InetAddress myServer = null; // 取得www.abc.com的IP地址 public InetAddress getServerIP() { try { myServer = InetAddress.getByName("www.baidu.com"); } catch (UnknownHostException e) { // 处理异常 } return myServer; } // 调用方法获取IP地址 String ipAddress = getServerIP().getHostAddress(); ``` **应用场景**: 当需要通过域名访问远程服务器时,可以通过这种方式获取IP地址。 #### 二、NCV6自定义参照 **知识点**: 自定义参照是指在NCV6系统中对特定字段进行定制化处理,使其能够显示或选择特定的数据集合。 **步骤**: 1. 设置字段类型为“参照”。 2. 初次设置时,可以任意选择一个参照。 3. 之后,在对应的单据模板上进行编辑,替换为所需的自定义参照。 **应用场景**: 这种功能在创建各种业务单据时非常有用,可以提高数据输入的准确性和效率。 #### 三、获取当前登录公司信息 **知识点**: 在NCV6系统中,获取当前登录用户的公司信息对于定制化的业务处理非常重要。 **示例代码**: ```java String newOrgPk = OrgSettingAccessor.getDefaultOrgUnit(); String currentUser = WorkbenchEnvironment.getInstance().getLoginUser(); String businessDate = WorkbenchEnvironment.getInstance().getBusiDate(); ``` **应用场景**: 当需要根据不同的公司信息来执行不同的业务逻辑时,这些方法非常有用。 #### 四、获取服务器时间 **知识点**: 在分布式应用中,确保所有客户端显示的时间与服务器时间一致至关重要。 **示例代码**: ```java // 获取服务器时间 Date serverTime = ServerTimeProxy.getInstance().getServerTime(); // 或者使用另一种方式 Date serverTime2 = SFServiceFacility.getServiceProviderService().getServerTime().getDate(); ``` **应用场景**: 在需要记录操作日志、同步时间等场景下,这些方法能够提供准确的服务器时间。 #### 五、查询数据库字符集 **知识点**: 数据库字符集设置决定了数据库中数据如何存储和检索。 **SQL查询**: ```sql SELECT * FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET'; ``` **应用场景**: 在处理多语言或多字符集环境时,了解数据库的字符集是非常重要的。 #### 六、禁止在Public和Client端使用BaseDAO进行数据库操作 **知识点**: 为了保证系统的稳定性和安全性,NCV6系统在公共端和客户端限制了直接使用BaseDAO进行数据库操作的功能。 **应用场景**: 这种限制有助于防止未经授权的数据访问和修改。 #### 七、NC远程调试配置 **知识点**: 通过远程调试可以方便地定位和解决NC系统中的问题。 **配置示例**: 1. 在测试机上的`nchome/bim/sysConfig.bat`文件中,添加虚拟参数 `-agentlib:jdwp=transport=dt_socket,suspend=n,server=y,address=192.168.6.123:2199`。 2. 在Eclipse中配置远程调试,名称自定义。 **应用场景**: 当需要对部署在远程服务器上的NC系统进行调试时,这种配置是必不可少的。 #### 八、Java文件中(Model)数据模型的接收类 **知识点**: 在Java文件中,为了更好地管理和操作数据模型,通常需要继承特定的父类。 **应用场景**: 这种做法可以提高代码的可读性和可维护性,尤其是在处理复杂的业务逻辑时。 #### 九、加锁节点内部编码为空的问题 **知识点**: 如果出现加锁节点内部编码为空的情况,可能是由于V5虚拟公司没有完成一系列操作,如建账等。 **解决方案**: 确保所有的初始化和设置步骤都已完成。 #### 十、单据模板取得参照项取主键 **知识点**: 在单据模板中,可以通过设置关键字名指向参照项的主键字段,以便在后续处理中使用。 **应用场景**: 这种做法可以简化查询条件,并提高数据处理的准确性。 #### 十一、发送会计平台相关服务 **知识点**: 在NCV6系统中,可以通过特定的服务接口向会计平台发送消息。 **示例代码**: ```java CmpPublicServiceProxy.getFipMessageService().sendMessage(messageVO); ``` **应用场景**: 这种功能通常用于与其他模块或外部系统进行交互。 #### 十二、NCV6报表模板初始化功能注册 **知识点**: 报表模板初始化功能的注册对于报表的正确展示至关重要。 **功能编码**: `1305ROPERT` **功能类名**: `nc.ui.pub.report.ReportModelTool` **应用场景**: 在报表设计和管理中,这种功能注册机制非常关键。 #### 十三、快速查询 **知识点**: 快速查询是一种高效的查询方式,可以用来快速获取满足特定条件的数据。 **SQL查询**: ```sql SELECT qsobject FROM pub_queryschem WHERE isquickqs = 'Y'; ``` **应用场景**: 在需要频繁进行简单查询的情况下,这种方法可以极大地提高查询效率。 #### 十四、动作(APPROVE)+审批人主键 **知识点**: 动作处理和审批流程是NCV6系统中常见的业务逻辑之一。 **示例代码**: ```java PfUtilTools.approveSilently( String billType, String billId, String checkResult, String checkNote, String checkman, String[] dispatched_ids ); ``` **应用场景**: 在需要自动化处理审批流程时,这种功能非常有用。 以上内容涵盖了NCV6开发过程中的常见知识点和功能实现细节,希望对您有所帮助。
剩余24页未读,继续阅读
- 粉丝: 1
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助