20190924——功能类:弹出窗口,让用户输入值
我的目的是让用户点击一个MenuItem,然后弹出如下窗口。
当用户输入客户账户和报关单号,点击确认后,系统会自动插入一条报关单记录。我们需要写这样一个类:
/***************************************************
(C) Copyright VYA All rights reserved.
Created Date:2019-09-16
Created By:Grady
Description of Behavior:批处理Demo
***************************************************/
public class VYA_Grady_BuildCustomsOrder extends RunBaseBatch
{dialog dialog;DialogField dialogCustAccount;DialogField dialogCustomsOrderNum;CustAccount custAccount;VYA_CustomsOrderNum customsOrderNum;VYA_CustomsOrderTable customsOrderTable;CustTable custTable;#define.CurrentVersion(1)#LOCALMACRO.CurrentListcustAccount,customsOrderNum#ENDMACROObject dialog()
{;dialog = super();dialogCustAccount = dialog.addFieldValue(extendedTypeStr(CustAccount),custAccount,"客户账户");dialogCustomsOrderNum = dialog.addFieldValue(extendedTypeStr(VYA_CustomsOrderNum),customsOrderNum,"报关单号");return dialog;
}boolean getFromDialog()
{boolean ret;;ret = super();custAccount = dialogCustAccount.value();customsOrderNum = dialogCustomsOrderNum.value();return ret;
}public void initParmDefault()//初始化参数
{super();
}public container pack()
{return [#CurrentVersion, #CurrentList];
}public boolean unpack(container packedClass)
{Integer version = RunBase::getVersion(packedClass);switch (version){case #CurrentVersion:[version, #CurrentList] = packedClass;break;default :return false;}return true;
}void run()
{#OCCRetryCountint retryCount;;if (!this.validate()){throw error("校验失败。");}try{ttsbegin;select firstFast custTablewhere custTable.AccountNum == custAccount;customsOrderTable.clear();customsOrderTable.ItemId = custTable.VYA_DefaultItemId;customsOrderTable.AccountNum = custAccount;customsOrderTable.CustomsOrderNum = customsOrderNum;customsOrderTable.insert();info("插入成功");ttscommit;}catch (Exception::Deadlock){ttsAbort;if (retryCount < #RetryNum){retryCount++;retry;}}catch (Exception::UpdateConflict){ttsAbort;if (appl.ttsLevel() == 0){if (xSession::currentRetryCount() >= #RetryNum){throw Exception::UpdateConflictNotRecovered;}else{retry;}}else{throw Exception::UpdateConflict;}}
}boolean validate(Object _calledFrom = null)//校验
{boolean ret =true;;return ret;
}static VYA_Grady_BuildCustomsOrder construct()
{return new VYA_Grady_BuildCustomsOrder();
}static public ClassDescription description()//批处理名称
{return "插入一条报关单记录。";
}static void main(Args _args)//程序主入口
{VYA_Grady_BuildCustomsOrder runBaseBatchDemo;#OCCRetryCountsetprefix(VYA_Grady_BuildCustomsOrder::description());try{runBaseBatchDemo = new VYA_Grady_BuildCustomsOrder();if (runBaseBatchDemo.prompt()){runBaseBatchDemo.run();}}catch (Exception::Deadlock){ttsAbort;retry;}catch (Exception::UpdateConflict){ttsAbort;if (appl.ttsLevel() == 0){if (xSession::currentRetryCount() >= #RetryNum){throw Exception::UpdateConflictNotRecovered;}else{retry;}}else{throw Exception::UpdateConflict;}}
}
}
然后把这个类做成菜单就行啦。
这里用到了一个小技巧,那就是通过序列化保存用户上次输入的值。
原理是将
#LOCALMACRO.CurrentListcustAccount,customsOrderNum#ENDMACRO
这里的值将被序列化,然后存入数据库。
pack是序列化的过程,unpack是反序列化的过程。
要将序列化后的值存入数据库,有两种办法:
1、类继承runbase类,然后用saveLast()和getLast()
2、未继承此类的直接调用xSysLastValue的两个静态方法saveLast()和getLast()
20190924——功能类:弹出窗口,让用户输入值相关推荐
- java一个界面用另一个界面的值_如何将参数/值从一个弹出窗口传递到Angular2中的另一个弹出窗口...
我在Angular2中有一个要求,我需要打开第一个弹出窗口,用户会输入一些值 . 在某些用户事件(即按钮单击)上,我需要关闭该弹出窗口并打开另一个弹出窗口,其中包含用户在第一个弹出窗口中输入的值 . ...
- u盘自动打开html,如何快速禁用U盘自动弹出(播放)功能无需手动关闭弹出窗口
如何快速禁用U盘自动弹出(播放)功能无需手动关闭弹出窗口 发布时间:2013-08-26 17:04:27 作者:佚名 我要评论 移动硬盘分了N个区的时候需要手动一个一个的关掉自动播放窗口,真 ...
- js实现弹出窗口的拖拽功能
弹出窗口的拖拽 拖拽功能运用到的有 onmousedown 事件,onmousemove 事件以及 onmouseup 事件 弹出窗口基本步骤: 1.点击点击弹出窗口按钮弹出窗口: 2.窗口弹出后,鼠 ...
- vue 提示框modal_v-dialogs v1.9.0 - 基于 Vue2 的简洁易用的弹出窗口,包含 modal, alert, mask, toast 等功能模式...
v-dialogs 基于Vue2.x的简洁易用的弹出窗口插件,其包含有 Modal, Alert, Mask 与 Toast 等功能模式 更多文档.Demo 请访问: the jQuery versi ...
- android 百度地图覆盖物popupwindow自动弹出,android实现百度地图自定义弹出窗口功能...
public class MyPopupOverlay extends ItemizedOverlay { private Context context = null; // 这是弹出窗口, 包括内 ...
- Visual C#弹出窗口杀手
2002-11-19· ···ASPCool.com 弹出窗口杀手是一个可以自动关闭IE弹出窗口的程序,它工作在系统的托盘中,按照一定的间隔来检测IE窗口,然后关闭弹出窗体.最后,还提供了用热键来杀掉 ...
- 一劳永逸 让你与IE弹出窗口彻底告别
新闻来源:天极安全 使用电脑的过程中,弹出窗口我们经常遇到,一些是对应我们的操作必须出现的,而有些则是被动接受的.尤其是各种广告窗口更是无孔不入,防不胜防,这些弹出窗口严重影响了电脑的正常使用,甚至会 ...
- ASP.NET弹出窗口技术之增加网站流量方法
作为Microsoft的最新建立动态Web网站的工具,ASP.NET相对于ASP和JSP在改变原始的Web编程方式方面有了长足的长进.它的代码与页面分离技术(CodeBehind)以及完善的Web服务 ...
- python的窗口处理模块_Python tkinter模块弹出窗口及传值回到主窗口操作详解
本文实例讲述了Python tkinter模块弹出窗口及传值回到主窗口操作.分享给大家供大家参考,具体如下: 有些时候,我们需要使用弹出窗口,对程序的运行参数进行设置.有两种选择 一.标准窗口 如果只 ...
- OO实现ALV TABLE 六:ALV的弹出窗口形式
前面的例子ALV列表都是直接输出在主窗口中,下面我们实现在弹出窗口中实现ALV.在弹出窗口中实现ALV也很简单,只要在实现类CL_SALV_TABLE的一个方法SET_SCREEN_POPUP就可以了 ...
最新文章
- jQuery插件thickbox在ie下垂直居中问题
- vue和react相同点_我在React和Vue中创建了相同的应用程序。 这是区别。
- Qlik收购Idevio,为客户带来先进的地理信息分析功能
- 电子商务思维导图精品荟萃:电子商务思维导图大全[多图精品收藏]
- IBM MR10i阵列卡配置Raid0/Raid1/Raid5(转)
- 用户注册 - 判断用户名存在
- java库存导出_java生成导出excle文件
- 素材网源码资源下载站源码,带用户中心和VIP充值系统,后台管理+素材下载+积分金币下载
- Python标准库判断图片文件和声音文件的格式
- Wireshark教程(简介、抓包、过滤器)
- 不写一行代码,搭建Jenkins+Jmeter+Ant接口自动化框架
- php漫画源码,小涴熊漫画CMS:开源的PHP漫画源码
- 爬虫项目十六:用 Python 三十行代码采集QQ群成员信息,很简单
- 嵌入式大佬 | 嵌入式C语言知识点万字总结
- autocad 二次开发 拆分图纸_(整理)autocad二次开发块表记录获得和cad层级结构,以及图块保存与打开....
- 分享两个开源的成品项目,一个视频播放器,一个音乐播放器!
- 【python】给excel加密
- android 转码工具下载,m3u8视频转码工具
- Js鼠标放上去图片变大变小
- 从事c++一年的感悟