7(重) JavaScript -dialog.ktr(需要调用Java代码,有界面)

// This JavaScript asks for a start and ending date with text dialog boxes.

// It is  a proof of concept if dialogs could be used out of JavaScript within transformations.

// This could be a base for discussion if a general input step dialog should be created.

// It runs within Spoon, Pan and launched by the "Test script" button within the JavaScript editor.

// @author Jens Bleuel

// @since 2006-07-11

// to get the "Test script" button at the editor working correctly we need the existing Display / Shell

var display;

var displayHasToBeDisposed=false;

var shell=null;

try {

display=Packages.org.eclipse.swt.widgets.Display.getCurrent();

shell=display.getActiveShell();

} catch(e) {

// if it runs in batch mode (Pan or preview mode) no Display is available, so we have to create one

display=new Packages.org.eclipse.swt.widgets.Display();

displayHasToBeDisposed=true;

shell=new Packages.org.eclipse.swt.widgets.Shell(display);

}

// if we run in Pan we need to load the properties:

if(!Packages.org.pentaho.di.ui.core.PropsUI.isInitialized()) {

Packages.org.pentaho.di.ui.core.PropsUI.init(display,2); //2=TYPE_PROPERTIES_PAN

}

var dateDefaultFrom=DateFromProposal.getString().substr(0,10);//only the date and not the time

var dialogDateFrom=newPackages.org.pentaho.di.ui.core.dialog.EnterTextDialog(shell,"Date from", "Please enter the beginning date", dateDefaultFrom);

var dateFromAsString=dialogDateFrom.open();

if(dateFromAsString!=null&& dateFromAsString.length()>0) {

var dateDefaultTo=DateToProposal.getString().substr(0,10);//only the date and not the time;

var dialogDateTo=newPackages.org.pentaho.di.ui.core.dialog.EnterTextDialog(shell,"Date to", "Please enter the ending date", dateDefaultTo);

var dateToAsString=dialogDateTo.open();

if(dateToAsString!=null&& dateToAsString.length()>0) {

// here you could check or change formats a.s.o

} else {

// stop transformation when user cancels

throw new Packages.java.lang.RuntimeException("Input canceled by the user.");

}

} else {

// stop transformation when user cancels

throw new Packages.java.lang.RuntimeException("Input canceled by the user.");

}

if(displayHasToBeDisposed) {

display.dispose();

}

文本文件输出

DateFromProposal@DateToProposal@dateFromAsString@dateToAsString

2006/01/01 00:00:00.000@2006/12/31 00:00:00.000@2014/01/02@2014/12/31

8 JavaScript - extract date fromfilename.ktr(从文件名中提取日期,字符串处理)

// C:\temp\LIM_kettle\ST18.PROTOKL.TENOPROD_2006*07_21_00_09

// rightstr(16),截取右边16个字符

var dat = DIR.Clone().rightstr(16).str2dat("yyyy*MM_dd_HH_mm");

文本文件输出:

DIR@@@dat

C:\temp\LIM_kettle\ST18.PROTOKL.TENOPROD_2006*07_21_00_09@@@2006/07/21 00:09:00.000

9 JavaScript - Get the filenamefrom a path.ktr(从路径中提取文件名)

var strArray = File.getString().split("/");//数组

var last = strArray[strArray.length-1];//数组中的最后一个即文件名

文本文件输出

File@@@@last

C:/Test/file.txt@@@@file.txt

10.JavaScript - Hex to Integer conversion.ktr(16进制->10进制)

java; //不写木发现影响,仅限本例

//16进制->10

var nummerke = Packages.java.lang.Integer.valueOf(Hex.getString(), 16).intValue();

//Alert(nummerke);

文本文件输出:

Hex;nummerke

DEAD; 0057005

11 JavaScript - parse Debet-Credit prefix innumbers.ktr(数值中有前缀)

var first = amountField.Clone().substr(0,1).getString();

var amount = amountField.Clone().substr(1).str2num("###.00",".").getNumber();

if (first.equals("D"))

{

amount = -amount;

}

文本文件输出:

amountField@@@first@@@amount

C100.00  @@@C@@@00100.00

D100.00  @@@D@@@-00100.00

kettle转换中使用javascript例子整理(2)相关推荐

  1. kettle转换之多线程

    kettle转换之多线程   ETL项目中性能方面的考虑通常是最重要的,特别是所讨论的任务频繁执行,或一些列的任务必须在固定的时间内执行.本文重点介绍利用kettle转换的多线程特性,以优化其性能. ...

  2. 解决kettle配置文件中的中文乱码

    在日常开发中有时候配置文件会出现中文(如config.properties 里有中文),为了避免出现乱码,因而要转成unicode编码. 1.在设置变量的javascript(转换中的JavaScri ...

  3. kettle中使用javascript步骤和fireToDB函数实现自己定义数据库查询

    kettle中使用javascript步骤和fireToDB函数实现自己定义数据库查询 如果你须要实现非传统的数据库查询操作.为了讨论这样的情景,我们如果你须要读取数据库中的正則表達式,然后检查输入的 ...

  4. kettle转换JavaScript获取命令行参数

    日常开发中由于很多参数是变化的,需要在部署时才能确定.而写在配置文件里又显得很笨重,因而可以运行时实时指定.那么kettle是怎么获取命令行中的参数的呢? kettle可以通过转换里的JavaScri ...

  5. Kettle(spoon)从转换中提取数据

    主要操作就是在被提取数据的转换中的最后一步连上<复制记录到结果>,在需要提取数据的转换步骤上,进行result rows配置: 直接上: 1.新建一个转换test01,并配置基础流程(获取 ...

  6. 第十一章:WEB浏览器中的javascript

    客户端javascript涵盖在本系列的第二部分第10章,主要讲解javascript是如何在web浏览器中实现的,这些章节介绍了大量的脚本宿主对象,这些对象可以表示浏览器窗口.文档树的内容.这些章节 ...

  7. Kettle转换作业50个案例代码

    Kettle转换作业应用脚本 本文是Kettle转换作业微案例相关的脚本(代码)及注释的说明.本项目旨在技术交流与学习,由于本人能力有限,代码中难免有些错误,欢迎留言.私信反馈给我,希望对你有所帮助. ...

  8. 在 IE 中调试 JavaScript

    简介 虽然越来越多的用户转向使用 FireFox 等非 IE 内核浏览器,但是 Internet Explorer(IE, 6 以及后续版本 ) 仍然有着超过 50% 的市场占有率,大部分产品产品都需 ...

  9. 在javascript中使用el表达式(jsp中的javascript中支持写el表达式,毋庸置疑,单独的js文件中不支持写el表达式,别钻牛角尖)

    哎,够背的,最后4张图怎么调整都很小,看不清楚,所以大家还是看我这篇文章吧在javascript中使用el表达式(图片清晰版,有图有真相),这篇文章的图片可以正常看清楚,跟我这篇文章是一样的内容! 有 ...

最新文章

  1. Machine Learning——DAY1
  2. C#委托与事件学习笔记
  3. API Gateways – An Evaluation of Zuul 2
  4. Java黑皮书课后题第8章:***8.20(游戏:四子连)两人玩游戏,轮流将有颜色的棋子放在一个六行七列的垂直悬挂网格中。谁先实现一行、一列或者一对角线上有4个相同颜色的棋子。
  5. oracle 基于备份 duplicate 没有目标连接,RMAN 概述及其体系结构
  6. kafka生产者开发方式
  7. HDFS文件和HIVE表的一些操作
  8. 做一个类似登录的循环
  9. shell for循环两个变量并列_从Go汇编角度解释for循环的两个疑点
  10. vCenter 或者 vmwareworkstation 虚拟机 安装vmware tools
  11. [转帖]成功者的十四项心理定律
  12. 数学建模 Lingo 基本算法模板
  13. 读书笔记之《随机漫步的傻瓜》
  14. 银河麒麟V10(Kylin Linux V10)安装ElasticSearch
  15. 谷歌浏览器好用的复制粘贴插件_chrome浏览器好用的插件
  16. Visual FoxPro 6.0常用命令
  17. 基于asp.net028住院部病人管理系统
  18. 银行网申计算机技能怎么填,邮政储蓄银行网申填写技巧分享二
  19. Android APP头像的图标与背景的设置
  20. Django个人博客开发练手demo笔记

热门文章

  1. Csharp基础整理
  2. GIT 修改用户名和密码
  3. 【Python数学建模】SEIR传染病模型模型延伸-SEIDR模型(一),加入疫苗接种、政府管控、病毒变异等因素的影响
  4. 浅谈iPhone OS(iOS)架构
  5. 使用Python操作Excel图表之 为最后一个数据点添加数据标签
  6. GraphQL的了解和简单使用
  7. 算法模版:暴力搜索之DFS【沈七】
  8. 睡眠的一场革命!-读《睡眠革命》笔记(下)
  9. Python数据可视化整理
  10. 学习日志--1.html