BOS开发典型代码文档
- 格式:doc
- 大小:94.50 KB
- 文档页数:13
盒子模型的内容实现方法1.引言1.1 概述盒子模型是CSS中一个非常重要的概念和基础知识。
它是用来描述网页中各个元素在页面中所占空间的一种模型。
在Web开发中,盒子模型扮演着关键的角色,它影响到页面布局、元素间的空间分配以及样式的呈现。
盒子模型由四个部分组成:内容(content)、内边距(padding)、边框(border)和外边距(margin)。
这四个部分共同构成了一个元素的尺寸和外观。
首先,内容(content)是指元素内部实际承载的内容,比如文字、图像或其他媒体内容。
它的大小可以通过设置宽度和高度来控制。
其次,内边距(padding)是指内容与边框之间的距离,它可以通过设置上、右、下和左四个方向的内边距值来控制。
内边距可以用来调整元素内容与边框的间距,实现更好的视觉效果。
边框(border)是包围元素内容和内边距的线条或样式。
它可以通过设置边框的宽度、样式和颜色来改变元素的外观。
边框的样式可以是实线、虚线、点线等,颜色则可以根据需求进行自定义。
最后,外边距(margin)是指元素与周围元素之间的间距。
它可以通过设置上、右、下和左四个方向的外边距值来控制。
外边距用于调整元素与其他元素之间的距离,实现页面布局的灵活性。
通过合理设置盒子模型的各个属性值,我们可以实现丰富多样的页面布局和样式效果。
盒子模型的概念和原理对于CSS的学习和掌握至关重要,它为我们构建美观、响应式的网页提供了基础和支持。
接下来,我们将详细探索盒子模型的内容实现方法,包括如何调整元素的大小、间距和边框样式等技巧与技术。
通过深入理解和运用这些方法,我们能够创建出更具吸引力和动态的网页设计。
文章结构部分的内容如下:1.2 文章结构本文将分为以下几个部分来介绍盒子模型的内容实现方法:1. 引言:首先,我们将简要概述本文的主题和内容。
介绍盒子模型的基本概念和原理,并阐明本文的目的。
2. 盒子模型的基本概念和原理:在本节中,我们将详细介绍盒子模型的基本概念和原理。
Box2D物理引擎Box2d是一个很出名的2d物理引擎,大家可以google之。
Box2d有C++,flash和Java等版本。
android 可以直接使用java版本的Jbox2d,但因为Jbox2d的图形渲染是使用processing库来实现的,所以,在android中使用Jbox2d的时候,图形渲染的工作就只能自己来写了。
因为网上关于box2d的资料真的非常的少,特别是关于图形绘制方面package{importflash.display.MovieClip;importBox2D.Dynamics.*;importBox2D.Collision.*;importBox2D.Collision.Shapes.*;mon.Math.*;importflash.events.Event;importflash.display.Sprite;importflash.events.MouseEvent;/***date:2009.3.18*BOX2D测试*@authorcwin5***全局的对象的构造函数作了三件事情:*1、一个在b2AABB类中的实例构建的坐标系统*2、一个定义重力的向量,这是一个b2Vec2类构建的实例。
*3、一个布尔变量来定义对象是否"沉迷"。
(设置如果你为true,对象将会沉迷)。
**执行Step()函数,每一帧都会更新所有的Body在world中的位置。
***虽然现在的world中是空的,但是你可以往里面添加任何的球体或者盒子,以及你想到的任何形状的东西,我们需要定义一个Body。
*一个body体大概需要做2-4件事情:***1、定义一个形状。
*2、一个(x,y)的位置*下面的定义可选:*3、角度*4、一个预制的Sprite对象。
**在Box2DFlash的例子中,你可能注意到所有的形状都是简单的。
这是因为所有的东西在每一帧都是被线条重绘。
*如果你想在你的游戏或者其他的什么中具有一些有特色的东西,你可以通过综合形状定义Body 来制作一个Sprite**形状的定义,我们有3种类型的形状定义,他们都是扩展的b2ShapeDef基类。
box2d项目开发实例Box2D是一个用于2D物理模拟的开源C++库,可以用于开发游戏和模拟应用程序。
本文将介绍一些使用Box2D进行项目开发的实例。
1. 弹球游戏弹球游戏是一个经典的使用物理引擎的例子。
开发者可以利用Box2D的碰撞检测功能和力的模拟,实现球体的弹跳和碰撞效果。
通过设置不同形状的刚体以及施加力的方向和大小,可以实现球体在不同环境下的运动效果,增加游戏的趣味性。
2. 平衡木游戏平衡木游戏是一种需要平衡技巧的益智游戏。
利用Box2D的刚体和关节系统,开发者可以创建一个平衡木,并在其上放置物体。
通过模拟物体的重力和关节的受力情况,可以实现平衡木上物体的平衡和倾斜效果。
玩家需要通过调整物体的位置和重心来保持平衡,挑战自己的平衡能力。
3. 弹射游戏弹射游戏是一种利用弹簧力和重力的物理模拟游戏。
开发者可以利用Box2D的关节系统和力的模拟,创建弹簧和物体之间的连接,并施加力来模拟弹射效果。
通过调整弹簧的弹性系数和施加力的大小,可以实现不同力度的弹射效果,增加游戏的挑战性。
4. 碰撞仿真碰撞仿真是一种用于模拟物体之间碰撞效果的技术。
利用Box2D的碰撞检测功能和材质属性,开发者可以模拟不同形状和材质的物体之间的碰撞效果。
通过设置物体的质量、形状和摩擦系数,可以实现不同碰撞情况下物体的运动轨迹和反弹效果,用于游戏开发和物理仿真。
5. 车辆模拟车辆模拟是一种用于模拟车辆运动和碰撞效果的技术。
利用Box2D 的车辆关节和碰撞检测功能,开发者可以创建车辆模型,并模拟车辆的运动和转向效果。
通过施加力和转向角度,可以实现车辆在不同地形和碰撞情况下的运动效果,用于游戏开发和驾驶模拟。
总结:以上是一些使用Box2D进行项目开发的实例。
通过利用Box2D的物理引擎功能,开发者可以实现丰富多样的物理效果,增加游戏的趣味性和真实感。
无论是弹球游戏、平衡木游戏还是弹射游戏,都可以通过合理设置刚体、力和关节等参数,实现各种有趣的物理效果。
Java面向对象实现推箱子的源代码目录一、首先: (1)二、以下为工程中各个类的源代码: (1)1、Box (1)2、GameMainTest (3)3、Man (4)4、Map (6)5、MovingException (7)6、Out (8)一、首先:在eclipse中新建一个工程,包名和类名(工程结构)如下:二、以下为工程中各个类的源代码:源代码按对应的类名复制粘贴进去即可。
1、Boxpackage tuixiangzi;import java.util.Random;public class Box {private static Random ran = new Random();private static int x = ran.nextInt(10); //箱子所在的位置(随机) private static int y = ran.nextInt(10); //箱子所在的位置(随机) private int [][]map = Map.getArray();private int h = map.length - 1;private int l = map[h].length - 1;/*** 箱子左移*/public void boxLMove()throws MovingException{if(y-1 < 0) {throw new MovingException("You Can't Moving Left!");}if(Man.getX() == x && Man.getY() == y) {y=(y-1);}/*** 箱子右移*/public void boxRMove()throws MovingException{if(y+1 > l) {throw new MovingException("You Can't Moving Right!");}if(Man.getX() == x && Man.getY() == y) {y=(y+1);}}/*** 箱子上移*/public void boxUMove()throws MovingException{if(x-1 < 0) {throw new MovingException("You Can't Moving Up!");}if(Man.getX() == x && Man.getY() == y) {x=(x-1);}}/*** 箱子下移*/public void boxDMove()throws MovingException{if(x+1 > h) {throw new MovingException("You Can't Moving Down!");}if(Man.getX() == x && Man.getY() == y) {x=(x+1);}}/*** 判断箱子是否能移动(死亡)或者是否通关* @return*/public String judgOver() {String msg = null;if(x == Out.getX() && y == Out.getY()) {msg = "You Win!";return msg;if(x == 0 && y == 0 || x == h && y == l || x == 0 && y == l || x == h && y == 0) { msg = "Game Over!";return msg;}else {msg = " ";return msg;}}public static int getX() {return x;}public static void setX(int x) {Box.x = x;}public static int getY() {return y;}public static void setY(int y) {Box.y = y;}}2、GameMainTestpackage tuixiangzi;import java.util.Scanner;public class GameMainTest {private static Scanner sc;public static void main(String[] args){Map map = new Map();Man man = new Man();Box box = new Box();sc = new Scanner(System.in);map.printMap();//游戏开始,打印地图System.out.println("推箱子游戏开始!");do {System.out.println("w:↑ s:↓ a:← d:→ 回车确认移动");String key = sc.next();switch (key){case"a": //左移try {man.leftMove(key);box.boxLMove();} catch (MovingException e) {System.out.println("走不下去啦!");}map.cleanManAfter(Man.getX(), Man.getY()+1);break;case"d": //右移try {man.rightMove(key);box.boxRMove();} catch (MovingException e) {System.out.println("走不下去啦!");}map.cleanManAfter(Man.getX(), Man.getY()-1);break;case"s": //下移try {man.downMove(key);box.boxDMove();} catch (MovingException e) {System.out.println("走不下去啦!");}map.cleanManAfter(Man.getX()-1, Man.getY());break;case"w": //上移try {man.upMove(key);box.boxUMove();} catch (MovingException e) {System.out.println("走不下去啦!");}map.cleanManAfter(Man.getX()+1, Man.getY());break;}System.out.println("\n\n\n\n");System.out.println(box.judgOver());map.printMap();}while(true);}}3、Manpackage tuixiangzi;public class Man {private static int x = 0; //人所在的行位置private static int y = 0; //人所在的列位置private int [][]map = Map.getArray();private int h = map.length-1;private int l = map[h].length-1;/*** 向左移动* @param key 移动按键* @throws MovingException 无法移动异常*/public void leftMove(String key)throws MovingException{if(y-1 < 0) {throw new MovingException("You Can't Moving Left!");}if(key.equals("a")) {y=(y-1);}}/*** 向右移动* @param key 移动按键* @throws MovingException 无法移动异常*/public void rightMove(String key)throws MovingException{ if(y+1 > l) {throw new MovingException("You Can't Moving Right!");}if(key.equals("d")) {y=(y+1);}}/*** 向上移动* @param key 移动按键* @throws MovingException 无法移动异常*/public void upMove(String key)throws MovingException{if(x-1 < 0) {throw new MovingException("You Can't Moving Up!");}if(key.equals("w")) {x=(x-1);}}/*** 向下移动* @param key 移动按键* @throws MovingException 无法移动异常*/public void downMove(String key)throws MovingException{ if(x+1 > h) {throw new MovingException("You Can't Moving Down!");}if(key.equals("s")) {x=(x+1);}}public static int getX() {return x;}public static void setX(int x) {Man.x = x;}public static int getY() {return y;}public static void setY(int y) {Man.y = y;}}4、Mappackage tuixiangzi;public class Map {private static int array[][] = new int[10][10];/*** 打印地图布局*/public void printMap() {array[Man.getX()][Man.getY()] = 1; //初始化人array[Box.getX()][Box.getY()] = 3; //初始化箱子array[Out.getX()][Out.getY()] = 2; //初始化出口for(int i = 0; i < array.length; i++) {for(int j = 0; j < array[i].length;j++) {if(array[i][j] == array[Man.getX()][Man.getY()]) {System.out.print("♀ ");} else if(array[i][j] == 0) {System.out.print("□ ");} else if(array[i][j] == array[Box.getX()][Box.getY()]) {System.out.print("■ ");} else if(array[i][j] == array[Out.getX()][Out.getY()]) {System.out.print("→ ");}}System.out.println();}}/*** 清除人和箱子移动后上一步的位置* @param x* @param y* @return*/public int cleanManAfter(int x,int y) {return array[x][y]=0;}public static int[][] getArray() {return array;}public static void setArray(int[][] array) {Map.array = array;}}5、MovingExceptionpackage tuixiangzi;public class MovingException extends Exception{private static final long serialVersionUID = 1L;public MovingException() {super();}public MovingException(String message) {super(message);}public MovingException(String message, Throwable cause) {super(message, cause);}public MovingException(Throwable cause) {super(cause);}}6、Outpackage tuixiangzi;public class Out {//后期可扩展为出口出现的位置随机private static int x = 9; //初始化出口的位置private static int y = 9; //初始化出口的位置public static int getX() {return x;}public static void setX(int x) {Out.x = x;}public static int getY() {return y;}public static void setY(int y) {Out.y = y;}}。
InputBox 函数是用于在VBA (Visual Basic for Applications) 中显
示一个对话框,以便用户输入数据的函数。
它的语法格式如下:InputBox(Prompt, Title, Default, XPos, YPos, HelpFile, HelpContext) 参数说明:
Prompt:必需。
显示在输入框中的消息或问题。
Title:可选。
输入框的标题。
默认值为“输入”。
Default:可选。
输入框中的默认值。
如果省略此参数,则输入框将为空。
XPos:可选。
输入框的左边与屏幕左边的水平距离(以磅为单位)。
如果省略此参数,则输入框将水平居中。
YPos:可选。
输入框的上边与屏幕上边的垂直距离(以磅为单位)。
如果省略此参数,则输入框将垂直居中。
HelpFile:可选。
帮助文件的名称。
如果提供了此参数,则当用户单击输入框的帮助按钮时,将显示指定的帮助文件。
HelpContext:可选。
帮助文件中与输入框相关的上下文编号。
如果提供了此参数,则当用户单击输入框的帮助按钮时,将显示指定的上下文编号。
使用InputBox 函数时,用户可以在输入框中输入数据,然后按下“Enter”键或单击“OK”按钮提交数据。
提交的数据将作为字符串返回,可以将其存储在变量中以供后续使用。
wearbox代码我不确定您指的是哪种类型的wearbox代码,因为wearbox是一个非常广泛的术语,可以指代许多不同的东西。
如果您能提供更多上下文或信息,我可以更好地回答您的问题。
如果您是指wearable设备的编程语言或开发环境,那么以下是一些常见的wearbox代码示例:1.Android Wear开发代码示例:如果您正在使用Android Wear开发应用程序,以下是一个简单的示例代码,用于在Wearable的通知中心中显示一个简单的文本消息:```java//在onStart()方法中获取通知中心Wearable.MessageApi.sendMessage(mGoogleApiClient,getString(R.string.id),getString(R.string.message)).setResultCallback(this);```2.iOS HealthKit API代码示例:如果您正在使用iOS HealthKit API开发健康应用程序,以下是一个简单的代码示例,用于将数据写入健康应用程序的记录中:```objective-c//创建一个新的HKQuantityType对象HKQuantityType*type=[HKQuantityType quantityTypeForIdentifier:HKQuantityTypeIdentifierActive];//创建一个HKQuantitySample对象,并将其附加到HKSampleQuery对象中HKQuantitySample*sample=[[HKQuantitySample alloc] initWithQuantity:quantity timestamp:nil type:type quantity:quantity]; HKSampleQuery*query=[[HKSampleQuery alloc] initWithSampleType:type predicate:nil limit:HKObjectQueryNoLimit sortDescriptors:nil resultsHandler:^(HKSampleQuery*query,NSArray*results,NSError*error){//处理结果}];```这些示例代码只是演示如何使用不同的wearbox技术和API来开发应用程序。
vb-listbox示例1、新建一个工程:工程12、新建一个界面Form13、如图添加两个listbox和8个commandbutton.4、输入代码:Option Explicit' 简单的列表框ListBox的例子'------名称-------------作用------------' List1、List2 列表框' LefttoRightCmd 移动所选项目到另一个列表框(左到右)' RighttoLeftCmd 移动所选项目到另一个列表框(右到左)' LefttoRightCmd 移动所选项目到另一个列表框(左到右)' RighttoLeftCmd 移动所选项目到另一个列表框(右到左)' List1.deleteString 删除列表框List1中所选项目' List2.deleteString 删除列表框List2中所选项目' List1.AddString 给列表框List1增加新项目' List2.AddString给列表框List2增加新项目' List1.ResetContent清空列表框List1' List2.ResetContent 清空列表框List2'————名称————属性设置———' List1列表框Sorted属性设为"False"' List2列表框Sorted属性设为"True"' MultiSelect属性设置为2' 即List2控件中的项目总是排序的'--------------------------------------Private Sub Form_Load()'装载窗体时,给列表中的元素赋值List1.AddItem "China"List1.AddItem "America"List1.AddItem "Japan"List2.AddItem "Soccer"List2.AddItem "Tennis"List2.AddItem "Basketball"End SubPrivate Sub LefttoRightCmd_Click()'将左边列表中所选元素移动到右边列表中If List1.ListIndex >= 0 Then'在右边列表中增加新元素List2.AddItem List1.Text'删除左边列表中的所选元素List1.RemoveItem List1.ListIndexEnd IfEnd SubPrivate Sub List1AddCmd_Click()Dim ListItem As String'ListItem = InputBox("在列表中输入新项目")'向列表中加入新项目If Trim(ListItem) <> "" Then'Trim()作用是清除ListItem字符串内的空格List1.AddItem ListItemEnd IfEnd SubPrivate Sub List1ClearCmd_Click()'清空列表List1.ClearEnd SubPrivate Sub List1MoveCmd_Click()Dim i As Integer'判断列表框是否只有一个项目被选中If List1.SelCount = 1 ThenList1.RemoveItem List1.ListIndexElseIf List1.ListCount > 1 Then'删除列表框中的所选中的多个项目For i = List1.ListCount - 1 To 0 Step -1'ListCount返回列表框中的项目总数'ListCount-1是列表框中最后一个项目的索引号'判断该项目是否被选中,Selected()返回布尔值If List1.Selected(i) Then'删除索引号为i的项目List1.RemoveItem iEnd IfNextEnd IfEnd SubPrivate Sub List2AddCmd_Click()'定义变量,以接收输入的字符串Dim ListItem As StringListItem = InputBox("在列表中输入新项目")If Trim(ListItem) <> "" Then'将字符串增加到列表中List2.AddItem ListItemEnd IfEnd SubPrivate Sub List2ClearCmd_Click()'清空列表List2.ClearEnd SubPrivate Sub List2MoveCmd_Click()Dim i As Integer'判断所选元素是否只有一个If List2.SelCount = 1 ThenList2.RemoveItem List2.ListIndex'如果所选元素大于1,则按下列操作进行ElseIf List2.ListCount > 1 ThenFor i = List2.ListCount - 1 To 0 Step -1If List2.Selected(i) ThenList2.RemoveItem iEnd IfNext iEnd IfEnd SubPrivate Sub RighttoLeftCmd_Click()Dim i As Integer'判断选中的元素有几个If List2.SelCount = 1 ThenList1.AddItem List2.TextList2.RemoveItem List2.ListIndex'当选中的元素大于一个时ElseIf List2.SelCount > 1 ThenFor i = List2.ListCount - 1 To 0 Step -1'如果该元素被选中,则将其从右边移至左边If List2.Selected(i) ThenList1.AddItem List2.List(i)List2.RemoveItem iEnd IfNext iEnd IfEnd Sub5、本代码vb6下测试通过。
HTML5游戏开发 Box2dWeb应用(一)创建各种各样的刚体html5游戏开发-box2dweb应用(一)-创建各种各样的刚体本篇开始,会介绍lufylegend-1.4.0的新功能,怎样结合box2dweb创建一个物理世界以及这个物理世界里的各种刚体准备工作工作准备三张图片,分别用以建立圆形,矩形和三角刚体。
准备结束,现在开始制作。
下面就是利用lufylegend.js中的lloadmanageDerrien加载图片[javascript]viewplaincopy1.2.3.4.5.6.7.8.init(10,\,800,400,main);varbacklayer,clayer,walllayer,bitmap,loadinglayer;varimglist={};varimgdata=new array({name:\,path:\},{name:\,path:\},{name:\,path:\});9.functionmain(){10.lglobal.setdebug(true);11.backlayer=newlsprite();12.addchild(backlayer);13.14.15.loadinglayer=newloadingsample3();16.backlayer.addchild(loadinglayer);17.llo admanage.load(18.imgdata,19.function(progress){20.loadinglayer.setprogress(progress);21.},22.function(result){23.imglist=result;24.backlayer.removechild(loadinglayer);25.loadinglayer=null;26.gameinit();27.} 28.);29.}loadingsample3类是lufylegend.js库件中的进度条显示功能,除了loadingsample3类之外,还有loadingsample1类和loadingsample2类在建立刚体之前,先建立上下左右四堵墙,去掌控之后将要建立的刚体的移动范围。
CSS入门教程——盒子(box)CSS入门教程——盒子(box)CSS盒子又称为CSS盒模式,是CSS非常重要的一部分。
尤其在网页的布局中更是必不可少的。
CSS盒子(CSS box)首先要清楚,CSS中没有box这个属性。
CSS的盒子(box)是由以下几个部分组成的:内容(content)、填充(padding)、边框(border)和边界(margin)。
盒子的内容当然是必须有的,而填充、边框和边界都是可选的。
如果把CSS的盒子看做现实生活中的盒子,那么内容就是盒子里装的货物;而填充就是怕货物损坏而添加的泡沫或者其它抗震的东西;边框就是盒子本身了;至于边界则说明盒子摆放的时候的不能与其他物体紧挨在一起,而必须有一段空隙。
当然了,CSS中的盒子是平面的。
下面我们来一个一个地介绍组成盒子的几个属性。
CSS边框(border)本节的实例均在上一节的例子基础上修改。
首先我们来为上一节的box div添加边框。
代码修改如下:.box {background-color: #EEFAFF;width: 30%;float: left;border: 1px solid #000000;}查看修改后的页面,可以看到box的外边多了一条1像素宽的黑色实线边框。
在border: 1px solid #000000;一句中,我们一起为border指定了三个属性值,其实它等效与下面的CSS语句:border-style:solid;border-color:#000000;border-width:1px;其实CSS中还有一些属性支持这样的写法,比如之前学过的font。
但是这里暂不介绍。
下面让我们来看看如何控制某一侧的边框属性。
我们为boxhead div添加一个1像素的虚线下侧边框,查看效果。
修改的代码如下:.boxhead {font-size: 14px;font-weight: bold;background-color: #AEC6FD;border-bottom:1px dashed #000000;text-align: center;width: 100%;color: #FFFFFF;}上面的例子只用到了两种边框,下面来看看其它几种样式的边框。
报告类型:实验报告□预习报告□报告成绩:__________ 指导教师审核(签名):_______________ 年月日实验五一、实验目的1、学习使用类的继承关系、定义派生类。
2、熟悉不同继承方式下对基类成员的访问控制。
3、学习派生类的构造和析构函数的调用顺序。
二、题目实现由Object类派生出的Box类三、要求1、声明一个Object类,有数据成员weight及相应的操作函数,由此派生出Box类,增加数据成员height和width及相应的操作函数。
2、声明一个Box对象,观察构造函数与析构函数的调用顺序。
3、分析程序运行结果。
4、下课前完成实验内容,提交给教师检查。
四、实验步骤1、建立一个控制台应用程序项目lab5,向其中添加一个C++头文件box.h,在该头文件中编写Object类和派生类Box的定义。
(方法参照实验二)2、向项目lab5中添加一个C++源文件box.cpp,在其中实现Object类和派生类Box。
3、向项目lab5中添加一个C++源文件exp5.cpp,在其中定义main( )函数,测试Box类,观察程序的执行情况。
一.程序代码:/*在box.h头文件中进行声明*/#include <iostream>#include <string>using namespace std;class objectprivate:float weight;public:object():weight(0){};~object();float getweight();void setweight(float newweight);};class box:public object{private:float hight;public:box():hight(0){};~box();float gethight();void sethight(float newhight);};/*在box.cpp中进行定义*/ #include "box.h"float object::weight;object() object::weight(0){cout << "构造函数调用的object!" << endl;}object::~object(){cout << "析构函数调用的object!" << endl;}float object::getweight(){return weight;}void object::setweight(float newweight){weight=newweight;}float box::hight;box() box::hight(0){cout << "构造函数调用的box!" << endl;}box::~box(){cout << "析构函数调用的box!" << endl;float box::gethight(){return hight;}void box::sethight(float newhight){hight = newhight;}/*主函数中调用*/ #include "box.h"int main(){box box1;cout << "Weight:" << box1.getweight() << endl;cout << "Hight:" << box1.gethight() << endl;cout << "重新设置后:" << endl;box1.setweight(10);box1.sethight(20);cout << "Weight:" << box1.getweight() << endl;cout << "Hight:" << box1.gethight() << endl;return 0;}二.实验结果:。
单据新增代码如:新增一行付款单//构造一条付款单信息(构造值对象)PaymentBillInfo payInfo = new PaymentBillInfo();payInfo.setNumber(“1001”);//关联用户UserInfo userInfo = new UserInfo();userInfo.setId(BOSUuid.read("867d5df6-00f8-1000-e000-0009c0a81089sysu ")); //通过BOSUuid建立实体对象userInfo.setName(“John”);userInfo.setNumber(“2000”);BigDecimal ex = new BigDecimal("343434.445");//建立属性BigDecimal ex2 = new BigDecimal(12345678901234567.8);//错误payInfo.setExchangeRate(ex);payInfo.setCreator(userInfo);payInfo.setAuditDate(new Date(System.currentTimeMillis()));//时间属性Timestamp createdate = new Timestamp(System.currentTimeMillis()); payInfo.setCreateDate(createdate);payInfo.setBizState(BillBizState.create);//枚据属性payInfo.setSave(true);//Boolean 属性PaymentBillItemInfo itemInfo = new PaymentBillItemInfo();//建立分录itemInfo.setLineNo(34);itemInfo.setAmounts(ex2);payInfo.getEntries().add(itemInfo);//添加分录payInfo.getEntries().add(new ErrandTaskItemInfo());//添加分录调用新增方法进行保存IPaymentBill iPayBill =PaymentBillFactory.getRemoteInstance();//获取实体IObjectPK pk = iPayBill.addnew(payInfo);//保存值对象,返回逻辑键,可以通过逻辑键获取值对象(如下)// PaymentBillInfo payInfo2 = iPayBill.getValue(pk);单据修改代码修改一条付款单信息IPaymentBill iPayBill = PaymentBillFactory.getRemoteInstance();String id="8b35b903-00f8-1000-e000-0008c0a81089errt";ObjectUuidPK pk = new ObjectUuidPK(BOSUuid.read(id));//建立逻辑键PaymentBillInfo payInfo = iPayBill.getValue(pk);//获取值对象;System.out.println("this:"+ payInfo.getExchangeRate());//获取属性payInfo.setExchangeRate(ex);//修改属性属性iPayBill.update(pk, payInfo);//更新数据单据删除代码iPayBill.remove(pk);//通过逻辑键删除单据内容获取集合获取集合CurrencyInfo cur = new CurrencyInfo();ICurrency c = CurrencyFactory.getRemoteInstance();//建立实体对象EntityViewInfo evi = new EntityViewInfo();//建立视图信息FilterInfo i = new FilterInfo();//建立过滤条件i.getFilterItems().add(new FilterItemInfo("number", "ddff", CompareType.EQUELS));i.getFilterItems().add(new FilterItemInfo("id", "ddff", CompareType.EQUELS));i. setMaskString(" (#0 and #1)");evi.setFilter(i);//添加过滤条件evi.getSelector().add(new SelectorItemInfo("id"));//添加获取属性evi.getSelector().add(new SelectorItemInfo("*"));evi.getSelector().add(new SelectorItemInfo("company.id"));evi.getSelector().add(new SelectorItemInfo(""));//三种获取集合方法1.获取所有数据:CurrencyCollection co = c. getCurrencyCollection ();//获取集合2.获取满足上述条件的所有数据CurrencyCollection co = c.getCurrencyCollection(evi);//获取集合3.获取满足oql所写的条件的所有数据CurrencyCollection co = c. getCurrencyCollection (evi);//获取集合获取值对象CurrencyInfo cur = new CurrencyInfo();ICurrency c = CurrencyFactory.getRemoteInstance();//建立实体对象String id="8b35b903-00f8-1000-e000-0008c0a81089errt";ObjectUuidPK pk = new ObjectUuidPK(BOSUuid.read(id));//建立逻辑键c.getValue(pk); 或 : c.getCurrencyInfo(pk);界面之间传递参数1.收集父界面要传递给子界面的参数集HashMap map = new HashMap();map.put("Owner", this); //必须。
被启动UI的父UI对象map.put("EASMode", new Integer(this.EASMode));map.put("table", this.accountTablePrompBox.getData());map.put("cu", currentCtrlUnit);map.put("auxAccount", this.asstAccountPromptBox.getData()); IUIFactory uiFactory = null;uiFactory =UIFactory.createUIFactory"com.kingdee.eas.base.uiframe.client.UIModel DialogFactory"); //以模态对话框方式启动IUIWindow uiWindow = uiFactorycreate("com.kingdee.eas.basedata.master.auxacct.client.AccountSelectU I", /* 被启动对象的类名称 */map);uiWindow.show();2.在子界面获取传递下来的数据private void loadContext(){int mode = ((Integer)this.getUIContext().get("EASMode")).intValue(); AccountTableInfo accountTableInfo = (AccountTableInfo)this.getUIContext().get("table");//cjp cuCtrlUnitInfo cuInfo = (CtrlUnitInfo) this.getUIContext().get("cu"); AsstAccountInfo asstAccountInfo = (AsstAccountInfo)this.getUIContext().get("auxAccount");AuxAccountEditUI ui = (AuxAccountEditUI)this.getUIContext().get("Owner");}给Query传过滤条件EntityViewInfo evi = new EntityViewInfo();FilterInfo filterInfo = new FilterInfo(); //建立过滤条件filterInfo.getFilterItems().add(new FilterItemInfo("typelink.id",info.getId(),CompareType.EQUALS));filterInfo.getFilterItems().add(new FilterItemInfo("currencyCompany.id", companyID,CompareType.EQUALS));filterInfo.setMaskString("#0 and #1 ");//两个过滤条件的过滤关系为and evi.setFilter(filterInfo);if (mainQuery == null) {mainQuery = new EntityViewInfo();}mainQuery.setFilter(filterInfo); //添加过滤条件this.execQuery();接口方法的访问方式1、客户端访问CurrencyInfo cur = new CurrencyInfo();ICurrency c = CurrencyFactory.getRemoteInstance();//建立实体对象c. getCurrencyCollection();2、服务端访问CurrencyInfo cur = new CurrencyInfo();ICurrency c = CurrencyFactory. getLocalInstance (ctx);//建立实体对象 c. getCurrencyCollection();特别控件的初始化1.使用枚举给ComboBox控件赋值public void setReceiveType(){this.kDComboBox2.removeAllItems();List list = new List();Iterator it = ReceiveType.iterator();//迭代遍历while (it.hasNext()){list.add(ReceiveType.getEnum(it.toString()).toString()); }}2.使用值对象集合给ComboBox控件赋值// 获取结算方式列表IAsstActTypeDefault iAsstActType = AsstActTypeDefaultFactory.getRemoteInstance();AsstActTypeDefaultCollectioni asstActTypeColl = iAsstActType .getAsstActTypeDefaultCollection(" where isAccountCussent = 1");AsstActTypeDefaultInfo defaultVal = null;int count = asstActTypeColl.size();Object[] typeValue = new Object[count];for (int i = 0; i < count; i++){AsstActTypeDefaultInfo value = (AsstActTypeDefaultInfo) asstActTypeColl.get(i);if (value.isIsDefaultAccountPayable()){defaultVal = value;}ObjectUuidPK pk = newObjectUuidPK(BOSUuid.read(value.getAsstActType().getString("id"))); AsstActTypeInfo asstInfo =AsstActTypeFactory.getRemoteInstance().getAsstActTypeInfo(pk);//cbi[i] = new ComBoxInfo(asstInfo, asstInfo.getName(), true);String typeName = asstInfo.getName();String typeId = asstInfo.getId().toString();String typeQueryName = asstInfo.getDefaultQueryName();String typeTableName = asstInfo.getRealtionDataObject(); int csType = 0; //asstActTypeInfo.getCsType().getValue(); asstActType = new AsstActTypeUtils(typeName, typeId, typeTableName, typeQueryName, csType);typeValue[i] = (Object) asstActType;}///String strQueryName = "F7SupplierQuery";this.kDComAccountCussentType.removeAllItems();this.kDComAccountCussentType.addItems(typeValue);this.kDComAccountCussentType.setSelectedIndex(0);F7赋值ObjectUuidPK pk = new ObjectUuidPK(id);IObjectValue objVal =DynamicObjectFactory.getRemoteInstance().getValue(pk.getObjectTypei(), pk);bizPrompt.setData(objVal);private void setCompanyF7(){//公司的F7的设置OrgType[] CompanyType = { pany };//首先定义需要显示那些树,这里只显示财务树//为F7控件指定PromptBoxPromptCompany.setEditFormat("$number$");PromptCompany.setDisplayFormat("$name$");PromptCompany.setEditable(true);PromptCompany.setCommitFormat("$number$");OrgUnitTreePromptBox boxCompany = new OrgUnitTreePromptBox(this, CompanyType, null,OrgSelect.OnlySelectCompanyEntity, false, false, false);bizPromptCompany.setSelector(boxCompany);bizPromptCompany.setData(currentCompany);bizPromptCompany.setEnabled(false);}//设置币别private void setCurrency() throws EASBizException, BOSException{ICurrency iCurrency = null;CurrencyCollection con = null;try{iCurrency = CurrencyFactory.getRemoteInstance();con = iCurrency.getCurrencyCollection(true);}catch (Exception e){// TODO 自动生成 catch 块MsgBox.showError(this, EASResource.getString(resClassName, "currencyFail"));SysUtil.abort();}if (con != null){Object[] typeValue = new Object[con.size()];int j = 0;for (int i = 0; i < con.size(); i++){CurrencyInfo currencyInfo = (CurrencyInfo) con.get(i); String typeName = currencyInfo.getName();String typeId = currencyInfo.getId().toString();String typeQueryName = currencyInfo.getNumber();asstActType = new AsstActTypeUtils(typeName, typeId, typeQueryName);if (asstActType != null){typeValue[i] = (Object) asstActType;if(typeId.equalsIgnoreCase(((CurrencyInfo)currentCompany.getBaseCurre ncy()).getId().toString())){j = i;}}}Promptcurrency.removeAllItems();Promptcurrency.addItems(typeValue);//默认值为当前公司的本位币Promptcurrency.setSelectedIndex(j);}else{MsgBox.showError(this, EASResource.getString(resClassName, "currencyFail"));SysUtil.abort();}}设置单据分录单元格格式// 设置单据分录格式getDetailTable().getColumn(TB_RELABILL).setWidth(100);getDetailTable().getColumn(TB_ORGUNIT).setWidth(180);getDetailTable().getColumn(TB_BIZMAN).setWidth(100); getDetailTable().getColumn(TB_PAYAMOUNT).setEditor(number_CellEditor);getDetailTable().getColumn(TB_PAYAMOUNT).getStyleAttributes().setNumb erFormat("%r-[=]{#.00}f");getDetailTable().getColumn(TB_PAYAMOUNT).getStyleAttributes().setHori zontalAlignHorizontalAlignment.RIGHT);设置单元格可编辑for (int i = 0; i < kdtEntrys.getRowCount(); i++){kdtEntrys.getRow(i).getCell("orgUnit").getStyleAttributes().setLocked (false);kdtEntrys.getRow(i).getCell("bizMan").getStyleAttributes().setLocked( false);}//如果折扣金额为null则初始化为0if (kdtEntrys.getRow(i).getCell("discountAmount").getValue() == null) {kdtEntrys.getRow(i).getCell("discountAmount").setValue(new BigDecimal("0.0"));}//汇总分录行金额BigDecimal amount = new BigDecimal("0");for (int i = 0, n = kdtEntrys.getRowCount(); i < n; i++){amount =amount.add(UIRuleUtil.getBigDecimal(UIRuleUtil.getBigDecimalValue(kdtEntrys.getCell(i,TB_PAYAMOUNT).getValue())));}this.txtTotalAmounts.setText(null);this.txtTotalAmounts.setEnable(false);this.txtTotalAmounts.setText(amount);//和零比较if (pareTo(new BigDecimal("0.00")) == 0)删除单元行public void actionDeleteLine_actionPerformed(ActionEvent e)throws Exception {IRow row = getSelectedRow();if (row != null) {kDTable1.removeRow(row.getRowIndex());}}F7专用选择界面的设置public void setF7Selector() throws Exception{KDBizPromptBox bizPromptBox = new KDBizPromptBox();// 要绑定的F7控件CoreUIObject ui = null;// 父界面对象CompanyOrgUnitInfo companyInfo = null; // 当前财务组织// 客户bizPromptBox.setSelector(new GeneralKDPromptSelectorAdaptor(bizPromptBox, newF7CustomerTreeDetailListUI(), ui));// 供应商bizPromptBox.setSelector(new GeneralKDPromptSelectorAdaptor(bizPromptBox, newF7SupplierTreeDetailListUI(), ui));// 物料bizPromptBox.setSelector(new GeneralKDPromptSelectorAdaptor(bizPromptBox, newF7MaterialTreeListUI(), ui));// 职员HashMap map = new HashMap();map.put(PersonF7UI.ALL_ADMIN, "YES");bizPromptBox.setSelector(new PersonPromptBox(ui, map));// 公司CompanyF7 org = new CompanyF7(ui);org.setRootUnitID("");bizPromptBox.setSelector(new CompanyF7(ui));// 成本中心bizPromptBox.setSelector(new CostCenterF7(ui));// 行政组织bizPromptBox.setSelector(new AdminF7(ui));// 采购组织bizPromptBox.setSelector(new PurchaseF7(ui));// 库存组织bizPromptBox.setSelector(new StorageF7(ui));// 销售组织bizPromptBox.setSelector(new SaleF7(ui));// 利润中心组织bizPromptBox.setSelector(new ProfitCenterF7(ui));// 利润中心组织bizPromptBox.setSelector(new ProfitCenterF7(ui));// 科目bizPromptBox.setSelector(new AccountPromptBox(ui, companyInfo, new FilterInfo()));}获取各模块系统状态信息public void getSystemStatue() throws EASBizException, BOSException {CompanyOrgUnitInfo companyInfo = null; // 当前财务组织// SystemStatusCtrolUtils 工具类可获取各模块系统状态信息,如当前会计期间,系统是否启用或关闭等信息SystemStatusCtrolUtils.getCurrentPeriod(null/* 上下文信息,如在客户端使用可为null */, SystemEnum.ACCOUNTSPAYABLE, companyInfo/**/);}获取当前登陆信息public void getSystemInfo(){// SysContext工具类可获取当前登陆用户的信息,可根据需要进行调用。