文档库 最新最全的文档下载
当前位置:文档库 › 4.5KDTable控件

4.5KDTable控件

4.5KDTable控件
4.5KDTable控件

KDTable控件

功能分类

增加(删除)行或列

行、列、单元的属性和值

填充数据

动态刷新Table

数据融合

选择信息

编辑

分组

输入输出

事件

格式化

打印

辅助编辑功能

其他

添加KDTable显示后待执行动作说明

表格列宽自动调整设置

Style接口

Obj可以是KDTable对象,也可以是IRow,IColumn,ICell对象,红色部分为旧的使用方法(已废除)

// 锁定

Obj.getStyleAttributes().getProtection().setLocked(true);

Obj.getStyleAttributes().setLocked(true);

Obj.getStyleAttributes().getLocked()

Obj.getStyleAttributes().isLocked()

// 隐藏

Obj.getStyleAttributes().getProtection().setHided(true);

Obj.getStyleAttributes().setHided(true);

Obj.getStyleAttributes().getHided()

Obj.getStyleAttributes().isHided()

// 对齐(水平和垂直)

Obj.getStyleAttributes().getAlignment().setHorzionAlign(Alignment.RIGHT);

Obj.getStyleAttributes().setHorizontalAlign(HorizontalAlignment.RIGHT);

Obj.getStyleAttributes().getAlignment().setVerticalAlign(Alignment.TOP);

Obj.getStyleAttributes().setVerticalAlign(VerticalAlignment.TOP);

// 是否折行

Obj.getStyleAttributes().getAlignment().setWrapText(true);

Obj.getStyleAttributes().setWrapText(true);

// 背景色

Obj.getStyleAttributes().getInterior().setBackground(Color.YELLOW);

Obj.getStyleAttributes().setBackground(Color.YELLOW);

// 边框笔形(实心线或点线等)

Obj.getStyleAttributes().getBorder(Border.RIGHT).setStyle(Border.PS_SOLID );

Obj.getStyleAttributes().setBorderPenStyle(Position.RIGHT,

PenStyle.PS_SOLID);

Obj.getStyleAttributes().getBorder(Border.RIGHT).setColor(Color.YELLOW);

Obj.getStyleAttributes().setBorderColor(Position.RIGHT, Color.YELLOW);

// 字体

Obj.getStyleAttributes().getFont().setSize(16);

Obj.getStyleAttributes().setFontSize(16);

Obj.getStyleAttributes().getFont().setBold(true);

Obj.getStyleAttributes().setBold(true);

增加(删除)行或列

?增加列

// 指定插入位置

table.addColumn(index);

// 插入到最后

table.addColumn();

// 一次性添加多行

addColumns(colCount);

?删除列

table.removeColumn(index);

?增加表头行

// 指定插入位置

table.addHeadRow(index);

// 插入到最后

table.addHeadRow();

// 一次性添加多个表头行

table.addHeadRows(headRowCount);

?删除表头行

table.removeHeadRow(index);

?删除所有表头行

table.removeHeadRows();

?增加表体行

// 指定插入位置

table.addRow(index);

// 插入到最后

table.addRow();

// 一次性添加表体行

table.addRows(rowCount);

?删除表体行

table.removeRow(index);

?删除所有表体行

table.removeRows();

行、列、单元的属性和值

?如何获取列、行、单元对象

// 获取列对象

ICol col = table.getColumn(0);

// 获取表头行对象

IRow headRow = table.getHeadRow(0);

// 获取表体行对象

IRow row = table.getRow(0);

// 获取单元对象

ICell headCell = row.getCell(0);

ICell cell = row.getCell(0);

?如何设置单元的值

// value为任意object

cell.setValue(value);

?如何修改行、列、单元的Style(字体、背景、锁定、隐藏等)

// 隐藏列或行

col.getStyleAttributes().setHided(true);

row.getStyleAttributes().setHided(true);

// 设置单元背景色

cell.getStyleAttributes().setBackground(color);

// 设置单元字体颜色、字体名称、字体大小

cell.getStyleAttributes().setFontColor(color);

cell.getStyleAttributes().setFontName(strName);

cell.getStyleAttributes().setFontSize(size);

// 锁定表格、行、列、单元

table.getStyleAttributes().setLocked(true);

row.getStyleAttributes().setLocked(true);

col.getStyleAttributes().setLocked(true);

cell.getStyleAttributes().setLocked(true);

// 设置对齐方式

table.getStyleAttributes().setHorizontalAlign(HorizontalAlignment.RIGHT);

// 设置自动折行

table.getStyleAttributes().setWrapText(true);

// 隐藏表格、行、列、单元的边框

table.getStyleAttributes().setBorderLineStyle(Position.RIGHT, LineStyle.

NULL_LINE);// 隐藏表格单元的右边框

table.getStyleAttributes().setBorderLineStyle(Position.BOTTOM, LineStyle.

NULL_LINE);// 隐藏表格单元的下边框

注意:KDTable在默认情况下左边框和上边框为空,右边框和下边框不为空。上述代码也可应用在具体某个row、column或cell上。

?如何修改行高、列宽

// 修改行高列宽

table.getRow(2).setHeight(20);

table.getColumn(1).setWidth(100);

填充数据

?实模式下添加数据

实模式下填充数据时,不用事先指定行总数,添加后KDTable会自动记录总行数。

int colCount = 13;

int headRowCount = 1;

int rowCount = 100;

int i;

int j;

// 添加列

for (i = 0; i < colCount; i++)

{

table.addColumn(j);

}

// 添加表头行

IRow row;

ICell cell;

for (i = 0; i < headRowCount; i++)

{

// 添加空表头行

row = table.addHeadRow(i);

for (j = 0; j < colCount; j++)

{

// 获取表头行的单元,并设置单元的值

cell = row.getCell(j);

cell.setValue("head " + i + " " + j);

}

}

// 添加表体行(即数据行)

for (i = 0; i < rowCount; i++)

{

// 添加空表体行

row = table.addRow(i);

for (j = 0; j < colCount; j++)

{

// 获取表头行的单元,并设置单元的值

cell = row.getCell(j);

cell.setValue("body " + i + " " + j);

}

}

?如何指定虚模式

KDTable支持三种取数模式:实模式、虚模式分页、虚模式分组,默认为实模式。

// 实模式

table.getDataRequestManager().setDataRequestMode(KDTDataRequestManager.RE

AL_MODE);

// 虚模式分页

table.getDataRequestManager().setDataRequestMode(KDTDataRequestManager.VI RTUAL_MODE_PAGE);

// 虚模式分组

table.getDataRequestManager().setDataRequestMode(KDTDataRequestManager.VI RTUAL_MODE_GROUP);

?如何指定总行数

实模式下填充数据时,不用事先指定行总数,添加后KDTable会自动记录总行数。虚模式下填充数据时,可以事先指定总行数,也可以不指定,如果不指定总行数,KDTable 将根据每次取数返回的行数进行判断,若取回的行数小于页大小,则认为取数已到达最后一页。

// 设置总行数为500

table.setRowCount(500);

?如何指定页大小

页大小即指虚模式分页模式下,每次缺页取数时的总行数,默认值为100。

// 设置页大小为200行

table.getDataRequestManager().setPageRowCount(200);

?虚模式下通过事件添加数据

要想通过事件添加数据,必须实现KDTDataRequestListener的tableDataRequest方法

// 创建列和表头

...

// 指定虚模式分页模式

table.getDataRequestManager().setDataRequestMode(KDTDataRequestManager.VI RTUAL_MODE_PAGE);

// 设置总行数为500,可以不指定总行数

table.setRowCount(500);

// 添加数据请求事件侦听者

table.getDataRequestManager().addDataRequestListener(new

KDTDataRequestListener()

{

public void tableDataRequest(KDTDataRequestEvent e)

{

// 获取请求的起始行、起始列、结束行、结束列信息

int firstRow = e.getFirstRow();

int lastRow = e.getLastRow();

int firstCol = e.getFirstCol();

int lastCol = e.getLastCol();

int colCount = lastCol - firstCol + 1;

IRow row;

ICell cell;

int i, j;

// 填充数据

for (i = firstRow; i <= lastRow; i++)

{

row = table.addRow(i);

for (j = firstCol; j <= lastCol; j++)

{

row.getCell(j).setValue("cell " + i + " " + j);

}

}

}

}

);

虚模式通过绑定填充数据

绑定即指绑定到BOS中的query对象或实体对象。要想通过事件添加数据,必须实现RequestRowSetListener的doRequestRowSet方法

// 创建列和表头

...

// 指定虚模式分页模式

table.getDataRequestManager().setDataRequestMode(KDTDataRequestManager.VI RTUAL_MODE_PAGE);

// 设置总行数为500,可以不指定总行数

table.setRowCount(500);

// 指定绑定的内容 queryName是query对象的名称,fieldNameArray是字符串数组,分别代表每一列对应的字段名称

table.putBindContents(queryName, fieldNameArray);

// 添加请求绑定数据的事件侦听者

table.addRequestRowSetListener(new RequestRowSetListener()

{

public void doRequestRowSet(RequestRowSetEvent e)

{

// 获取操作类型、取数参数和字段名数组

int oper = e.getOper();

Object param1 = e.getParam1();

Object param2 = e.getParam2();

String[] fields = e.getFields();

switch (oper)

{

// 循序读取RowSet,对应于虚模式分页模式

case RequestRowSetEvent.EVT_OPER_MOVE :

int start;

int end;

// 将参数一转化为当前请求的起始行号

if (param1 instanceof Integer)

{

start = ((Integer) param1).intValue();

}

else

{

start = 0;

}

// 将参数二转化为当前请求的结束行号

if (param2 instanceof Integer)

{

end = ((Integer) param2).intValue();

if (end < 0)

{

end = 999;

}

}

else

{

end = 999;

}

// 返回RowSet

e.setRowSet(getMoveRowSet(start, end, fields));

break;

case RequestRowSetEvent.EVT_OPER_GROUP :

break;

case RequestRowSetEvent.EVT_OPER_WHERE :

break;

default :

break;

}

}

// 模拟返回一个RowSet

private IRowSet getMoveRowSet(int start, int end, String[] fields) {

if ((fields == null) || (fields.length == 0))

{

fields = colFields;

}

else

{

}

try

{

DynamicRowSet drs = new DynamicRowSet(fields.length);

for (int i = 0; i < fields.length; i++)

{

drs.setColInfo(

i + 1,

fields[i],

fields[i],

Types.INTEGER,

null);

}

Random rand = new Random(System.currentTimeMillis());

for (int i = start; i <= end; i++)

{

drs.moveToInsertRow();

drs.updateInt(1, i);

for (int j = 2; j <= fields.length; j++)

{

drs.updateInt(j, rand.nextInt());

}

drs.insertRow();

}

drs.beforeFirst();

//drs.absolute(1);

return drs;

}

catch (SQLException sqle)

{

sqle.printStackTrace();

}

return null;

}

}

);

取数结束事件

KDTable通过取数事件取得数据并填充到table中之后,会发出此事件

// 添加数据填充结束事件侦听者

table.addKDTDataFillListener(new KDTDataFillListener()

{

public void afterDataFill(KDTDataRequestEvent e)

{

// do something

}

}

);

动态刷新Table

?如何刷新表体数据行(表头不变)

// 示例1:删除所有表体行,并重新发取数事件

// 该方法不会修改原先的绑定信息

table.removeRows();

// 示例2:删除所有表体行,修改绑定信息并重新取数

// 指定新的query和字段名

table.putBindContends(objectName, fieldNams);

// 重新取数

table.removeRows();

?如何刷新整个table(表头也发生变化)

// 示例1:删除原有表头、表体数据及所有列信息

table.removeColumns();

// 示例2:设置新的表头和数据

// 删除原有表头、表体数据及所有列信息,该方法会清空原先每一列的绑带信息table.removeColumns();

// 添加新列

for (int i = 0; i < 5; i++)

{

table.addColumn();

}

// 添加新表头

table.addHeadRow();

// 指定新的绑带信息

table.putBindContends(objectName, fieldNams);

// 重新取数

table.removeRows();

数据融合

?如何进行自由融合

自由融合无须指定区域,KDTable将根据指定的融合模式,融合相邻且值相等的单元。

// 自由行融合

table.getMergeManager().setMergeMode(KDTMergeManager.FREE_ROW_MERGE);

// 自由列融合

table.getMergeManager().setMergeMode(KDTMergeManager.FREE_COLUMN_MERGE);

// 自由融合

table.getMergeManager().setMergeMode(KDTMergeManager.FREE_MERGE);

?如何进行指定融合

指定融合必须指定区域,KDTable将不管指定区域中的单元值是否相等,强制融合指定区域的单元。

// 获取融合管理器

KDTMergeManager mm = table.getMergeManager();

// 融合指定区域

mm.mergeBlock(0, 0, 1, 1, KDTMergeManager.SPECIFY_MERGE);

?如何拆分融合块

// 拆分指定区域

table.getMergeManager().splitBlock(0, 0, 1, 1);

?如何指定行列不融合

// 指定第一列不融合

table.getColumn(1).setMergeable(false);

// 指定第0行不融合

table.getRow(0).setMergeable(false);

?如何进行表头融合

表头融合与表体的融合类似,只要把getMergeManager改为getHeadMergeManager即可// 表头自由行融合

table.getHeadMergeManager().setMergeMode(KDTMergeManager.FREE_ROW_MERGE);

// 表头指定融合

// 获取表头融合管理器

KDTMergeManager mm = table.getHeadMergeManager();

// 进行指定融合

mm.mergeBlock(0, 0, 1, 1, KDTMergeManager.SPECIFY_MERGE);

?如何设置缩排

数据融合后,可以以合并单元格的方式展现,也可通过缩排的方式实现。设置列缩排后,同一列的相邻的数据将仅显示第一个,其余的显示为空单元。

// 设置行融合

table.getMergeManager().setMergeMode(KDTMergeManager.FREE_ROW_MERGE);

// 设置缩排模式

table.getMergeManager().setViewMode(KDTMergeManager.VIEW_AS_INDENTATION); 选择信息

?如何指定选择模式

选择模式包括:NO_SELECT(不选择)、CELL_SELECT(单元选择)、ROW_SELECT(行选择)、COLUMN_SELECT(列选择)、MULTIPLE_CELL_SELECT(多单元选择)、MULTIPLE_ROW_SELECT (多行选择)、MULTIPLE_COLUMN_SELECT(多列选择)

// 设置选择模式为单元选择

table.getSelectManager().setSelectMode(KDTSelectManager.CELL_SELECT);

?如何读取选择块信息

// 获取当前选择块信息

KDTSelectBlock sb = table.getSelectManager().get();

int top = sb.getTop(); // 选择块最上边行索引

int bottom = sb.getBottom(); // 选择块最下边行索引

int left = sb.getLeft(); // 选择块最左边列索引

int right = sb.getRight(); // 选择块最右边列索引

// 获取选择块的类型,类型包括

// KDSelectManager.CELL_SELECT 单元格选择

// KDSelectManager.ROW_SELECT 行选择,这种模式下left和right没有意义

// KDSelectManager.COLUMN_SELECT 列选择,这种模式下top和bottom没有意义

// KDSelectManager.TABLE_SELECT 表选择,这种模式下top、bottom、left和right都没有意义

int mode = sb.getMode();

// 多选的情况下,获取某个选择块信息,index是选择块的序号

KDTSelectBlock sb = table.getSelectManager().get(index);

// 多选情况下,获取所有的选择块信息

KDTSelectBlock sb;

int size = table.getSelectManager().size(); // 获取选择块的总个数

for (int i = 0; i < size; i++)

{

// 获取第i个选择块

sb = table.getSelectManager().get(i);

// 遍历每个选择块的所有行

for (int j = sb.getTop(); j <= sb.getBottom(); j++)

{

// ...do something

}

}

如何新建、添加、删除和修改选择块

// 调用select(top, left, <当前模式>)

table.getSelectManager().select(top, left);

// 调用select(top, left, top, left, <当前模式>)

table.getSelectManager().select(top, left, mode);

// 调用select(top, left, top, left, <当前模式>)

table.getSelectManager().select(top, left, bottom, right);

// 根据选择模式选择指定区域

// 当mode为行选择模式,只有top、bottom起作用

// 当mode为列选择模式,只有left、right起作用

// 当mode为table选择模式,前四个参数不起作用

table.getSelectManager().select(top, left, bottom, right, mode);

// 添加选择块,与select一样有多个重载方法

table.getSelectManager().add(top, left, bottom, right);

// 删除选择块,index是选择块的序号

table.getSelectManager().remove(index);

// 修改当前选择块,与select一样有多个重载方法

table.getSelectManager().set(top, left, bottom, right);

上述几个方法(除了remove外)都有多个重载方法,具体的使用方法参见Javadoc文

档。

编辑

?如何指定表、行、列或单元不可编辑

// 锁定表格、行、列、单元

table.getStyleAttributes().getProtection().setLocked(true);

row.getStyleAttributes().getProtection().setLocked(true);

col.getStyleAttributes().getProtection().setLocked(true);

cell.getStyleAttributes().getProtection().setLocked(true);

?编辑表头

表头默认是不可编辑的,必须先把Lock关闭。

table.getHeadRow().getStyleAttributes().getProtection().setLocked(false);

其他操作就和编辑表体一样。

?如何指定或判断单元格是否允许输入空格:如果不允许,空格会自动去掉。

table.getEditManager().setAllowBlankCharacter (boolean isAllow);

table.getEditManager().isAllowBlankCharacter (boolean isAllow);

?如何指定行、列或单元的编辑器

KDTable的编辑器支持类型绑定和手动绑定两种。

类型绑定即无须指定编辑器,KDTable将根据单元格的值类型,自动绑定到相应的编辑器上。目前内置支持的绑定有(String,JTextField)、(Boolean,JCheckBox)、(Date,KDDatePicker)、(其他类型,JTextField)。数据类型到编辑器的绑定是可扩充的。

手动绑定即用户自己创建编辑器,并绑定到行、列或单元对象上。当编辑器绑定到行、列上时,将应用到行、列上的所有单元格。

手动绑定优先于类型绑定。

// 扩充类型绑定,指定表格中的整型都用指定编辑器编辑

table.putDefaultEditor(Integer.class, yourIntegerEditor);

// 下面的例子演示手动绑定JComboBox类型的编辑器到第三列上

// 创建一个JComboBox

JComboBox c = new JComboBox(new String [] {"", "hhh1", "hhh2" , "hhh3"});

// KDTable要求的编辑器必须实现KDTCellEditor接口

// KDTDefaultCellEditor是一个辅助类,可以帮助你将JComboBox转化为KDTable支持的编辑器。

KDTDefaultCellEditor cellEditor = new KDTDefaultCellEditor(c);

// 将编辑器绑定到列对象上,此处同样可绑定到行或单元对象上

table.getColumn(3).setEditor(cellEditor);

?如何启动和结束编辑

// 启动编辑,rowIndex和colIndex分别为编辑单元的行列索引。

table.getEditManager().editCellAt(rowIndex, colIndex);

// 结束编辑

table.getEditManager().stopEditing();

// 取消编辑

table.getEditManager().cancelEditing();

?如何设置树的深度(即树总共有几级)

// 设置树的深度为3,即树包括0、1、2三级结点

table.getTreeColumn().setDepth(3);

?如何设置树的方向

树的方向包括两种:自上向下(即根结点在上方)和自下向上(即根结点在下方)。

// 设置树的方向为自上向下

table.getTreeColumn().setOrientation(KDTStyleConstants.UP);

// 设置树的方向为自下向上

table.getTreeColumn().setOrientation(KDTStyleConstants.DOWN);

?如何设置各行的树级别

KDTable的每一行都有一个树级别的信息,默认为0(即根结点)

// 设置第0行的树级别为0

table.getRow(0).setTreeLevel(0);

// 设置第1行的树级别为1

table.getRow(1).setTreeLevel(1);

// 设置第2、3、4行的树级别为2

table.getRow(2).setTreeLevel(2);

table.getRow(3).setTreeLevel(2);

table.getRow(4).setTreeLevel(2);

分组

?如何指定是否要进行数据分组以及对哪些列进行分组

// 指定KDTable要进行数据分组

table.getGroupManager().setGroup(true);

// 指明要对0、1、2三列进行分组

table.getColumn(0).setGroup(true);

table.getColumn(1).setGroup(true);

table.getColumn(2).setGroup(true);

?如何指定是否根据分组进行单元融合

// 指明要对0、1、2列的分组进行单元融合

table.getColumn(0).setMergeable(true);

table.getColumn(1).setMergeable(true);

table.getColumn(2).setMergeable(true);

?如何指定是否要做统计,对哪些分组进行统计,以及是否做总计

// 指明分组后要做总计

table.getGroupManager().setTotalize(true);

// 指明要对第0列进行统计

table.getColumn(0).setStat(true);

// 指明要对第1列进行统计

table.getColumn(1).setStat(true);

// 指明要对第2列进行统计

table.getColumn(2).setStat(true);

?如何指定统计行的位置

// 统计行的位置处于数据行的下方

table.getGroupManager().setOrientation(KDTStyleConstants.DOWN);

// 统计行的位置处于数据行的上方

table.getGroupManager().setOrientation(KDTStyleConstants.UP);

如何定义统计行显示的内容和样式

// 定义两个变量

IRow row0;

KDTDataStyle ds;

// 设置统计行模板

// 获取总计行的模板(总计行的分组级别为-1)

row0 = (IRow)table.getGroupManager().getStatRowTemplate(-1);

// 修改总计行的背景色为蓝色

row0.getStyleAttributes().getInterior().setBackground(Color.blue);

// 设置总计行第0个单元的值

row0.getCell(0).setValue("总计");

// 设置总计行第3个单元的统计公式

row0.getCell(3). setExpressions(KDTGroupManager.STAT_SUM);

// 获取第0级统计的模板

row0 = (IRow)table.getGroupManager().getStatRowTemplate(0);

// 设置第0级统计行的背景色

row0.getStyleAttributes().getInterior().setBackground(Color.green);

// 设置第0级统计行的第0个单元的值

row0.getCell(0).setValue("平均值");

// 设置第0级统计行第3个单元的统计公式

row0.getCell(3).setExpressions(KDTGroupManager.STAT_AVERAGE);

// 获取第1级统计的模板

row0 = (IRow)table.getGroupManager().getStatRowTemplate(1);

// 设置第1级统计行的背景色

row0.getStyleAttributes().getInterior().setBackground(Color.cyan);

// 设置第1级统计行的第0个单元的值

row0.getCell(1).setValue("最大值");

// 设置第1级统计行第3个单元的统计公式

row0.getCell(3).setExpressions(KDTGroupManager.STAT_MAX);

// 获取第2级统计的模板

row0 = (IRow)table.getGroupManager().getStatRowTemplate(2);

// 设置第2级统计行的背景色

row0.getStyleAttributes().getInterior().setBackground(Color.darkGray);

// 设置第2级统计行的第0个单元的值

row0.getCell(2).setValue("最小值");

// 设置第2级统计行第3个单元的统计公式

row0.getCell(3).setExpressions(KDTGroupManager.STAT_MIN);

?如何根据分组统计的情况生成树

// 生成树

table.getGroupManager().toTreeColumn();

// 重新调整布局并刷新

table.reLayoutAndPaint();

导入导出

?输入KDF

// 是否仅导出有数据的区域,该方法对所有的导出生效(默认为false)

table.getIOManager().setExpandedOnly(true);

?输入KDF

如果你已经有了一个完整的KDF文件,我们推荐使用com.kingdee.bos.ctrl.kdf.file.KDF类来读取和管理其中的对象,包括KDTable。要读取其中的KDTable对象,可以使用如下所示的代码(假设你的.kdf文件存放目录为"yoururl\test.kdf"):

KDF kdf = new KDF("yoururl\\test.kdf");

KDTable table = kdf.getTableByIndex(0);

//如果要加载已保存在kdf中的打印设置;

table.getPrintManager().setFromKDF(kdf);

或者是

KDF kdf = new KDF("yoururl\\test.kdf");

KDTable table = kdf.getTableByID("table1");

//如果要加载已保存在kdf中的打印设置;

table.getPrintManager().setFromKDF(kdf);

当然你也可以直接使用KDTIOManager类读取KDF文件,但是由于KDTIOManager 不具备KDF文件管理功能,所以它只能读取文件中描述的第一个KDTable对象。

KDTable table = new KDTable();

table.load("yoururl\\test.kdf");

如果要保存打印设置到kdf:

KDTable table = new KDTable();

KDF kdf = new KDF();

table.getPrintManager().saveToKDF(kdf);

kdf.saveToFile("yoururl\\test.kdf");

对于专用于描述KDTable对象的KDF文件来说,这种方法是相当快捷方便的。

?输出KDF

KDTable对象可以直接被序列化并且保存为KDF文件。

table.getIOManager().save("yourfile.kdf");

?输出KDS

KDS结构是一种中间数据结构,通过KDS作为桥梁,可以在KDTable和Excel、PDF 等等多种数据格式之间进行交换。

一个KDTable对应于一个KDS Sheet,而一个KDS Book包含多个KDS Sheet。KDTable 和KDS之间转换的接口都是在KDTIOManager提供的,通过如下接口可以将一个KDTable 转换为KDS Sheet:

/**

* 将当前表转换成一个KDS Sheet

* @param book Sheet所属的KDS Book

* @param withHead 是否转换表头

* @param withIndex 是否转换索引列

* @param sheetName Sheet名字

* @return

*/

public KDSSheet saveToKDSSheet(KDSBook book,boolean withHead,boolean withIndex,String sheetName)

此外,作为一种比较方便的选择,也可以通过KDTIOManager提供的接口来实现将KDTable转换为一个KDS Book的功能,比如:

KDSBook book = table.getIOManager().saveToKDS();

通过如下重载的方法,用户可以指定转换时选项。

/**

* 将当前的KDTable转换成KDSBook。

* 默认不带索引列,但是带表头。

* @param bookName

* @return

*/

public KDSBook saveToKDS(String bookName)

/**

* 将当前的KDTable转换成KDSBook

* @param bookName

* @param withHead 是否转换表头

* @param withIndex 是否转换索引列

* @return

*/

public KDSBook saveToKDS(String bookName,boolean withHead,boolean withIndex)

?输入KDS

在KDTIOManager中提供如下两个接口从一个KDSSheet中导入数据到KDTable对象中:

/**

* 从KDS解析KDTable对象,默认将第一行导入到表头

* @param sheet

*/

public void parseFromKDS(KDSSheet sheet)

/**

* 从KDS解析KDTable对象

* @param sheet

* @param headRowCount 表头行数

*/

public void parseFromKDS(KDSSheet sheet,int headRowCount)

?KDS数据与其它形式数据的交换

KDS数据是一种网格状的数据结构,如下类中封装了从KDS中导出数据到其它数据形式的接口:

com.kingdee.bos.ctrl.kdf.export.ExportManager

目前支持导出到Excel、PDF、CSV、RTF格式的文件。接口详情请参阅Java Doc。

同时,如下类提供了从Excel文件中导入数据到KDS的接口:

com.kingdee.bos.ctrl.kdf.read.POIXlsReader

目前只支持从Excel文件的导入。接口详情请参阅Java Doc。

打印控件安装指南

打印控件安装指南 如何取消窗口拦截? 1.当点击“导出”或“打印”按钮后,系统会弹出一个窗口进行下一步的导出或打印操作,如果IE 浏览器设置了窗口拦击功能,需要将拦截功能取消: 关闭IE的弹出窗口拦截功能。打开IE,在“工具”下拉菜单中,选择“弹出窗口阻止程序”,关闭弹出窗口阻止程序;如果您还安装了其他带有窗口拦截功能的插件(如百度Toolbar、Google 工具栏等),请暂时关闭这些插件的拦截功能,具体关闭方法请查看插件的操作说明书。 如何自动安装控件? 1.如果您使用的是windows xp系统(sp2),IE浏览器会屏蔽上面的弹出窗口,这时候您只要按照下 面的步骤安装就可以了: 2.第一步:登录交易系统时,IE窗口会出现下图所示的提示,此时点击“单击此处” 提醒:请不要关闭此提示框,否则,您就不能正常安装我们的插件了! 3.第二步:选择“安装ActiveX控件”: 提醒:选择并点击“安装ActiveX控件”,我们保证选择此控件对您的计算机没有任何风险! 4.第三步:弹出如下图所示安全警告窗口,选择“安装”

为什么我按上面的操作还是无法安装,或是安装后也无法正常使用? 1.请检查您的电脑是否安装了3721或其他拦截广告的插件,如果是,请将其设置为不要拦截ActivX 控件! 2.请检查您的IE设置,并按以下步骤修改您的IE设置:

1.第一步:打开IE浏览器,选择“工具”-〉“Internet选项”,出现如下窗口: 2.第二步:按一下“设置”按钮,出现如下画面,将“检查所存网页的较新版本”设置为 “每次访问此页时检查(E)”,然后按“确定”按钮。

安装个人网上银行的控件教程

你未能成功安装“网银控件”。请参考:个人网上银行控件安装指南(一)请您先登录工商银行网站(https://www.wendangku.net/doc/a4348814.html,),点击页面左侧“个人网银登录”下方“安装”按照“方法二:第一步”下载安装个人网上银行控件。您可以单击鼠标右键选择“目标另存为”的功能,将个人网上银行控件下载到本地计算机后,用鼠标左键双击个人网上银行安全控件程序: icbc_netbank_client_controls.exe,进入到安装页面,根据安装提示完成安装。友情提示:1、请您使用IE浏览器访问我行网站和安装我行网银控件,并建议您安装我行网银控件时,关闭所有IE窗口后运行安装或安装完毕后重启IE窗口。2、建议您在下载我行网银控件程序时不要使用辅助下载工具软件,以免出现网银控件程序下载不成功问题。(二)如果您已经运行安装我行个人网上银行控件,但仍无法正常使用我行网银,则请您按照如下三个步骤进行设置后,重新登录我行个人网银安装个人网上银行控件程序:1、设置受信任站点请您在IE浏览器菜单栏依次选择“工具”→“Internet选项”→“安全”→“受信任的站点”→“站点”,在“站点”窗口打开后,将工行门户网站“ https://www.wendangku.net/doc/a4348814.html,”、个人网银 https://https://www.wendangku.net/doc/a4348814.html,、贵宾网银 https://https://www.wendangku.net/doc/a4348814.html,,添加到[受信任的站点]窗口中。2、设置ActiveX控件启用选项:(1)IE6.0版本的设置方法 请您在IE浏览器菜单栏依次选择“工具”→“Internet选项”→“安

全”→“internet”→“自定义级别”,然后将“ActiveX控件自动提示”、“标记为可安全执行脚本的ActiveX控件执行脚本”、“二进制脚本和行为”、“下载已签名控件”“运行ActiveX控件和插件”这五个选项选择为“启用”;将“对没有标记为安全的ActiveX控件进行初始化和脚本运行”、“下载未签名控件”选择为“提示”。(2)IE7.0版本的设置方法请您在IE浏览器菜单栏依次选择“工具”→“Internet选项”→“安全”→“internet”→“自定义级别”,将“ActiveX”控件和插件相关设置进行如下调整:A、ActiveX 控件自动提示:设置为“启用”;B、对标记为可安全执行脚本的ActiveX控件执行脚本:设置为“启用”;C、对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本:设置为“提示”;D、二进制和脚本行为:设置为“启用”;E、下载未签名的ActiveX控件:设置为“提示”;F、下载已签名的ActiveX控件:设置为“提示”;G、允许scriptlet:默认原设置不做更改;H、允许运行以前未使用的ActiveX控件而不提示:设置为“禁用”;I、运行ActiveX控件和插件:设置为“启用”;J、在没有使用外部媒体播放机的网页上显示视频和动画:默认原设置不做更改;以上设置完成后点击“安全设置”窗口下方的“确定”键,返回到“Internet选项”中“安全”标签的页面,再次点击该页面下方的“确定”键,使更改完成。(3)IE8.0版本的设置方法请您在IE浏览器菜单栏依次选择“工具”→“Internet选项”→“安全”→“internet”→“自定义级别”,将

ActiveX控件安装指南

ActiveX控件安装指南 一、什么是ActiveX控件? 根据微软权威的软件开发指南MSDN(Microsoft Developer Network)的定义,ActiveX插件以前也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB网页或其它应用程序中。 在因特网上,ActiveX插件软件的特点是:一般软件需要用户单独下载然后执行安装,而ActiveX插件是当用户浏览到特定的网页时,IE浏览器即可自动下载并提示用户安装。ActiveX插件安装的一个前提是必须经过用户的同意及确认。 ActiveX插件技术是国际上通用的基于Windows平台的软件技术,除了网络实名插件之外,许多软件均采用此种方式开发,例如Flash动画播放插件、Microsoft MediaPlayer插件、CNNIC通用网址插件等。 二、如果我没有安装控件会有什么现象? 1.为了保障您账户的安全,如果您使用的是IE浏览器,我们会自动提示您安装。如果没有正确安装, 会出现如下图所示的情况: 2.这时候您只要按照我们的提示,下载安装我们的安全控件并刷新,就可以正常使用了。 三、如何自动安装控件? 1.如果您使用的是windows xp系统(sp2),IE浏览器会屏蔽上面的弹出窗口,这时候您只要按照下 面的步骤安装就可以了: 2.第一步:登录交易系统时,IE窗口会出现下图所示的提示,此时点击“单击此处” 提醒:请不要关闭此提示框,否则,您就不能正常安装我们的插件了! 3.第二步:选择“安装ActiveX控件”:

提醒:选择并点击“安装ActiveX控件”,我们保证选择此控件对您的计算机没有任何风险! 4.第三步:弹出如下图所示安全警告窗口,选择“安装” 如果您的网络忙,安装可能会花几分钟时间,请稍等片刻!完成后您就可以登录交易系统了。 四、如何手动安装控件? 1.您也可以点下载软件包进行控件安装:(注:点此下载WINRAR) 2.第一步:鼠标右键点击软件包进行解压。

网络连接数据库

package day01; import java.sql.Connection; import java.sql.DriverManager; public class JDBCConnection { public static void main(String[] args) throws Exception { //注册驱动 Class.forName("oracle.jdbc.driver.OracleDriver"); //连接 Connection conn=DriverManager.getConnection( "jdbc:oracle:thin:@192.168.7.134:1521:orcl", "system","tarena"); System.out.println(conn); } } NetCTOSS 电信运营支撑系统 资费管理模块资费: cost/fee 主要功能: 针对资费信息的CURD(增删改查)操作. 常见的企业级应用 OSS : 运营支撑系统 CRM: 客户关系管理 ERP: 企业资源规划 技术: JavaEE开发、JavaWeb开发 JavaSE JavaEE Web技术数据库 常见的软件架构体系: (1) C/S client/server客户端/服务架构 client 需要单独安装客户端软件QQ serve 服务器端软件 优点: 客户端可以单独开发,功能和界面可以非常丰富 缺点: 软件的升级成本高 (2)B/S browser/server浏览器/服务架构 是一种特殊的c/s结构 client: 浏览器Browser IE/Firefox/chrome server: 服务器Web服务器 http协议超文本传输协议简单、无状态的协议请求request和应答response

数据库系统的访问

第7章数据库系统的访问 对于那些相对独立的软件供应商而言,经常要为每一个DBMS编写一个版本的应用程序,或者为每个要访问的DBMS编写针对DBMS的代码。这就意味着,大量的资源都耗在了编写和维护DB的访问上,更不用说应用程序了。此时应用程序的评价标准不再是质量,而是它能否在给定的DBMS中访问数据库。 这就需要开放的数据库连接,就是人们需要用一种新的方法来访问不同的数据库。为此,在C/S,B/S系统中必须广泛使用访问接口技术,以隐藏各种复杂性,屏蔽各种系统之间的差异。常见的数据库访问接口的技术有固有调用、ODBC、JDBC、OLE DB、DAO、ADO、https://www.wendangku.net/doc/a4348814.html, 以及基于XML的数据库访问等几种流行的方式。这其中以ODBC技术和JDBC技术应用最广泛,也是目前最为优秀的访问接口方式。 本章主要对几种常见的数据库访问技术(如固有调用、ODBC、JDBC、OLE DB、DAO、ADO、https://www.wendangku.net/doc/a4348814.html,以及基于XML的数据库访问等)进行介绍。 7.1 数据库的访问接口 所谓访问接口是指分布式环境中保证操作系统、通信协议、数据库等之间进行对话、互操作的软件系统。 访问接口的作用是保证网络中各部件(软件和硬件)之间透明地连接,即隐藏网络部件的异构性,尤其保证不同网络、不同DBMS和某些访问语言的透明性,即下面三个透明性。 ⑴网络透明性:能支持所有类型的网络。 ⑵服务器透明性:不管服务器上的DBMS是何种型号(ORACLE、SYBASE、DB2等),一个好的访问接口都能通过标准的SQL语言与不同DBMS上的SQL语言连接起来。 ⑶语言透明性:客户机可用任何开发语言进行发送请求和接受回答,被调用的功能应该像语言那样也是独立的。 应用系统访问数据库的接口方式有多种,本节介绍固有调用、ODBC和JDBC。 7.1.1 固有调用 每个数据库引擎都带有自己的包含用于访问数据库的APl函数的动态链接库DLL,应用程序可利用它存取和操纵数据库中的数据。如果应用程序直接调用这些动态链接库,就说它执行的是“固有调用”,因为该调用对于特定的数据库产品来说是“固有” (专用)的。 固有调用接口的优点是执行效率高,由于是“固有”,编程实现较简单。但它的缺点也是很严重的:不具通用性。对于不同的数据库引擎,应用程序必须连接和调用不同的专用的动态链接库,这对于网络数据库系统的应用是极不方便的。 7.1.2 ODBC ODBC是“开放数据库互连”(Open Database Connectivity)的简称。ODBC是Microsoft 公司提出的、当前被业界广泛接受的应用程序通用编程接口(API)标准,它以X/Open和ISO/IEC的调用级接口(CLI)规范为基础,用于对数据库的访问。我们可以用如下图示来说明ODBC概念。

IE浏览器控件安装与设置(ActiveX插件)

电子商务WEB接入浏览器控件安装与设置 浏览器设置 1. Windows 7 操作系统中IE8的设置 Windoews 7 操作系统本身自带的浏览器为IE8,下面介绍Windows7系统中的IE8在安装控件前的设置。 (1)取消弹出窗口阻止程序 关闭弹出窗口阻止程序,工具→弹出窗口阻止程序→关闭弹出窗口阻止程序,如图0-1所示。 图0-1 弹出窗口阻止程序设置 (2)可信任站点设置 打开综合项目管理信息系统登陆地址(本说明中使用的是http://10.14.2.51:7001/pcpost ,具体请根据实现情况而定),将其设置为可信任站点,(工具>>Internet选项>>安全>>可信任站点站点按钮),如图0-2所示

图0-2 IE可信任站点设置 可信任站点安全级别设置,点击图0-3所示的“自定义级别”按钮,;在弹出的窗口中把ActiveX各选项设置为“提示”或是“启动”即可,如图0-4所示(在图中应该有九项需要设置,视实际情况而定)。 图0-3 可信任站点安全级别设置

图0-4 ActiveX控件设置

(3)在高级选项中设置(Iternet 选项 高级)把“启动内存保护减少联机攻击”的勾去掉,如所示。 图0-5 启动内存保护减少联机攻击操作界面 注意:如果该选项前面的勾不允许取消,是灰色不可编辑状态时,请关闭浏览器,在桌面找到浏览器图标(C:\Program Files\Internet Explorer\iexplore.exe)右击浏览器选择“以管理员身份运行”,然后再去修改该选项即可。 图0-6 以管理员身份运行操作界面

(4)兼容视图设置 通过以上三步基本可以正常安装登陆控件了,如果还是显示不正常,请把登陆地址加入到兼容视图地址中(IE菜单下的工具选项),然后单击“兼容性视图(V)”,分别如图0-7、图0-8所示和图1-9 所示。 图0-7 兼容性视图设置菜单选项 图0-8 兼容性视图地址设置

金税基础驱动及安全控件安装手册

增值税发票查询平台基础驱动及安全控件 安装手册 国家税务总局电子税务管理中心 2016年2月

目录 1根证书安装 (3) 1.1根证书安装 (3) 2基础驱动及安全控件安装 (10) 2.1安全控件 (11) 2.2使用航天信息金报税盘 (11) 3系统登录 (12) 3.1常见问题 (13) 3.1.1金税盘或税控盘未连接 (13) 3.1.2金税盘或税控盘证书口令输入错误 (14) 3.1.3纳税人档案信息不存在 (14)

1根证书安装 国家税务总局税务数字证书的根证书,是由国家税务总局核准的税务行业证书,为了确保纳税人发票信息的数据安全,建议在进行相关业务操作前先根据本教程完成根证书的初始化安装。安装本证书及相关操作不会对用户的计算机构成危害,如不安装本证书,则在访问本网站时,会出现如下图所示的警告信息(本系统只支持微软IE内核浏览器,建议版本为8(含)以上体验更佳),影响系统的正常使用。 1.1根证书安装 以微软Windows 7 操作系统及IE9.0浏览器下的操作为例: 1、未安装根证书首次访问本应用系统网站时,会出现下图所示警告,选择点击“继续浏览此网站”,即可正常打开系统的页面

2、点击请下载驱动程序和安全控件的链接,将driver_jsp_02.rar压缩包保存至本地: 3.使用winrar等解压缩软件解压driver_jsp_02.rar ,解压后可得到01.taxca.p7b证书文件。 4、先断开金税盘与税控盘与电脑的连接,然后鼠标右键选择解压后得到的根证书文件文件(01.taxca.p7b),然后选择“安装证书”,如下图所示:

各种插件软件安装方法

各种插件软件安装方法 Thinkinetic Pulldownit Pro v2.1 For Maya (PDI破碎) 1.解压压缩包,双击打开Pulldownit_Pro_v 2.1_For_Maya_2010-2013_Win64bit.rar 里面提供了Maya2010-2013,四种安装版本,在这我选择了2012版本安装。 2.Ctrl+C复制Pdi_Pro_2.1_Maya2012x64文件夹,找到hxsd-我的文档-maya-2012x64 这个文件夹。把Pdi_Pro_2.1_Maya2012x64文件夹Ctrl+V粘贴在这里。 3.双击打开Pdi_Pro_2.1_Maya2012x64文件夹,找到pdiMaya文本,双击打开, 修改路径+ Thinkinetic 2.0 C:\Users\hxsd\Documents\maya\2012-x64\Pdi_Pro_2.1_Maya2012x64 并保存关闭。 4.此时在复制一份刚刚保存好的pdiMaya,并在maya根目录(C:\Users\hxsd\Documents\maya)下 新建文件夹modules,打开modules把pdiMaya放在里面。 5.重新打开Maya加载插件 blastcode1.7_for_maya2009_2011_64bit (只能在11以前版本使用的NURBS破碎) 1.找到插件所在文件夹,双击BlastCodeInstall_Trial17x64 2.一路欢脱的点击next,agree等,就能完成安装 3.重新打开Maya2009,就能在菜单栏里找到“Blast Code”菜单. 4.enjoy it! 3delight-10.0.4-setup-x64 1.双击3delight-10.0.4-setup-x64,选择English语言,并点击OK,进行下一步。 2.点击next,并选择I accept the agreement。

新版OA的控件安装说明

目录 1、卸载原有控件(OA控件和NTKO控件) (2) 第一步:打开“控制面板” (2) 第二步:选择“添加或删除程序” (2) 第三步:点击删除控件 (3) 第四步:确认卸载,点击“是”,完成卸载 (3) 2、安装新控件 (4) 第一步:进入首页界面后,点击“控件下载” (4) 第二步:下载OA控件 (4) 第三步:安装OA控件 (5) 3、设置手机VPN连接.................................................................................. 错误!未定义书签。 3.1安卓手机的VPN连接...................................................................... 错误!未定义书签。 第一步:下载VPN客户端............................................................ 错误!未定义书签。 第二步:安装VPN客户端............................................................ 错误!未定义书签。 第三步:设置VPN客户端............................................................ 错误!未定义书签。 3.2苹果手机和ipad的VPN连接......................................................... 错误!未定义书签。 第一步:点击“设置”................................................................. 错误!未定义书签。 第二步:点击“通用”,选择“VPN” .......................................... 错误!未定义书签。 第三步:点击“添加VPN配置”................................................ 错误!未定义书签。 第四步:在IPSec 中配置具体参数 ............................................. 错误!未定义书签。 第五步:使用VPN时,将其开关打开即可。 ............................ 错误!未定义书签。 4.邮件编辑器的操作...................................................................................... 错误!未定义书签。 5.文件分发的操作.......................................................................................... 错误!未定义书签。 6.收发文时选择流程的操作.......................................................................... 错误!未定义书签。 7.文件查询...................................................................................................... 错误!未定义书签。 8.收发文中,不填意见时的系统默认操作.................................................. 错误!未定义书签。 9.“具体承办部门处理或阅知”环节的特殊操作......................................... 错误!未定义书签。 9.1公司领导的批示操作....................................................................... 错误!未定义书签。 9.2承办部门的填写意见....................................................................... 错误!未定义书签。 10.移动办公系统中,选择下一步处理人.................................................... 错误!未定义书签。 10.1人员分类规则................................................................................. 错误!未定义书签。 10.2选择人员的操作............................................................................. 错误!未定义书签。

网银安全控件安装说明

中国民生银行个人网银安全控件安装说明 1、在证书链完整的情况下,登录页面出现如下的提示信息: 2、无论点击页面上方“民生安全控件已更新,请点此安装最新安全控件”的黄色提示信息还是点击页面登录区上部的“请点此安装安全控件”的链接(二者任选其一即可),都会弹出一个专用的控件下载页面,如下图所示:

3、点击页面上的“立即安装”按钮,系统弹出文件下载提示,选择“保存”,将控件保存到客户本地电脑上。

4、关闭所有浏览器,运行安装程序(Win7或Vista操作系统用户请使用管理员身份运行安装程序)。程序自动运行结束后,会弹出“安装完成,请重启所有IE”的提示信息,点击“确认”按钮,完成安装。 5、重新打开浏览器,登录网银即可。

链接,系统会自动弹出各种操作系统的常见问题处理方法文档。

7、贵宾版支付页面和商户版网银页面控件的升级方式也与上述方式一致。 安装过程常见问题及解决办法 1、360防火墙是否会阻止控件下载 答:由于此次控件是经过微软授权的证书进行签名的,所以不会被360等防火墙拦截。

2、在控件安装的过程中出现如下提示怎么处理 答:此问题是控件安装时没有关闭浏览器窗口导致的,建议客户点击“确定”按钮后关闭所有的浏览器窗口,再次运行控件安装程序即可 3、在控件安装过程中出现“CAPICOM更新失败,请关闭IE或重启电脑后尝试”的提示信息怎么处理? 答:点击“确认”按钮后,然后删除c:/windows/system32/capicom.dll文件后,再次运行控件安装程序即可 4、在个人网银贵宾版登录页面安装过新控件后,访问支付页面或者商户版网银登录页面时是否还要重新安装? 答:新控件只需成功安装一次即可 5、新控件安装完成后,如果出现如下提示怎么处理?

插件安装方法

PS滤镜安装方法: 滤镜插件下载后请释放到Photoshop滤镜文件夹里 1、如果是英文CS版本或7.0版本以下的,释放到Photoshop文件 \Plug-Ins\Filters文件夹里 2、如果是CS中文绿色版本的,释放到Photoshop文件\Required\增效工具\ 滤镜文件夹里 3、如果是CS8.0中文版本的,释放到Photoshop文件\增效工具\滤镜文件夹 里 文字安装方法: 字体下载后先释放到一个固定的文件里 然后打开电脑里的“控制面板”—“字体” 接着点菜单“文件”—“安装新字体”点击进入安装 找到刚才释放后的字体,等到“字体列表”处出现字体文件后 按右边的“全选”,然后按上面的“确定”就OK了 最后打开PS软件就有你新安装的字体了 PS笔刷安装方法: PS笔刷下载后请释放到Photoshop画笔文件夹里 1、如果是英文CS版本或7.0版本以下的,释放到Photoshop文件 \Presets\brushes文件夹里 2、如果是CS中文绿色版本的,释放到Photoshop文件\Required\预置\画笔 文件夹里 3、如果是CS8.0中文版本的,释放到Photoshop文件\预置\画笔文件夹里 GIF格式的自制笔刷导入到PS里的方法: 1、先打开PS,接着打开GIF格式的自制笔刷图片 2、然后选择软件最上面的菜单:编辑—定义画笔预设,会出来个菜单,在上面 打上画笔的名称,按“好”就可以了。 3、想看下那个笔刷,可以新建一个白背景的文档,点“画笔工具”,然后在画笔 选取器那里可以看到刚才保存的笔刷了。 4、如果想把保存好的笔刷存储到PS里,点击画笔选取器右上角的小三角,选 择“存储画笔”,把笔刷存储到PS的画笔文件里。 PS: 关于其他的PS插件安装方法基本与上面的PS笔刷安装方法一样,下载后都必须要释放到相应的 Photoshop文件夹里就可以了。 比如说:PS渐变插件下载后要释放到Photoshop文件/预置/渐变文件里。

数据库访问方式

数据库访问的三种方式 访问数据库的方式有三种:直接访问,如访问Paradox和DBase 数据库: 通过ODBC 访问,如访问 Access、Foxpro等数据库: 通过内嵌(Native) 方式访问数据库,如访问SQLServer、 Oracle、DB2等。在Delphi中,可以使用Table控件或/和Query控件来访问数据库,二者的设置和用法部差不多,因此下面仅 Table控件为例说明这三种方式的特点和用法。 1.直接访问Delphi可以直接访问Paradox 和IDBase这两个桌面型的数据库系统。访问这两种类型的数据库时不需要特别的设置,只需要把文件路径赋给Table 控件的属性DatabaseName就可以访问该路径下的数据库了。当然,也可以事先建立映射数据库路径的数据库别名,然后把Table控件的DatabaseName属性设置为相应的数据库别名。 2. 通过ODBC访问访问Paradox和DBase以外的数据库,通常是通过ODBC来实现的Delphi 可以访问支持ODBC的数据库系统,如Access、SQLServer 和Oracle 等。 ODBC 访问数据当然,通过库时,首先要使用Windows的控制面板或Delphi的数据库引擎(BDE) 建立ODBC数据源的名称赋给Table控件的属性DatabaseName而达到访问该数据库的目的。这种方式的弊端是在程序运行时由Delphi系统自动弹出登录到数据库的英文界面的窗口,既不美观又不便于控制。因此,笔者建议在数据库应用程序中使用Database 控件来登录到数据库系统。把Table控件与Database控件关联的方法是把其DatabaseName 属性值指定为Database控件的DatabaseName属性值。个Database控件可以管理若干个Table 控件。和Database控件建立关联以后,只要该Database控件已经和数据库建立了连接,Table控件就可以直接访问数据库而无须再次登录。 3. 通过内嵌方式访问Delphi 中可以不通过ODBC,而以内嵌方式访问SQLServer、Oracle、DB2 等数据库系统。这需要使用数据库别名来指定数据库,数据库别名可以事先建立,也可以在程序运行时动态创建。前者称为静态别名,后者称为动态别名。使用数据库别名来访问数据库的方法和使用。DBC数据源的情形相同,这里不再累述。通过内嵌方式访问数据库的静态别名必须在BDE中建立。以访问SQL Server 数据库为例,在建立别名时必须指定数据库服务器的名称 (SERVER NAME) 、主机名(HOSTNAME) 以及要访问的数据库名称(DATABASE NAME) ,可以指定登录用户名(USERNAME) 和口令(PASSWORD) 等。通过动态创建的别名来访问数据库必须使用Database控件。如何设置Database控件中访问数据库的参数呢?用鼠标双击Database控件,出现参数设置窗口,在"Drivername" 栏选择要访问的数据库系统,如"MSSQL",然后选择按钮"Defaults",就会把BDE 中该数据库系统所需的参数名称和缺省值加入到"Parameteroverrides"列表中。根据实际情况更改参数中的"SERVERNAME仁"DATABASE NAME" 等工页。然后选择按钮"OK"就可以了。需要说明的两点是,以内嵌方式访问数据库需要在安装Delphi13.0时指定安装SQLLit山Query 控件的SQL语句不能以分号结尾。结论通过内嵌方式访问数据库与通过ODBC访问数据库相比,前者的速度要快些。而且,内嵌方式可以在程序中动态地设置连接数据库所需的参数,用户不必设置。DBC数据源,这就降低了对用户技术水平的要求,并且减少了用户的工作量。从系统配置的难易和复杂程度来看,使用内嵌方式开发出的数据库应用系统更便于普通用户使用。因此,笔者建议在开发较大型的应用系统时,最好通过内嵌方式来访问数据库。

安全控件无法安装的解决办法

安全控件无法安装的解决办法 典型问题请尝试以下处理方法: 1、安装控件中如果报错或安装后登录框仍然显示红叉 解决方法:请确认安装控件后电脑是否重启,如未重启请先重启电脑,再点击这里重装控件,按照提示重启电脑。 2、密码登录框已出现,光标可以插入,但无法输入密码 解决方法:点击“开始”-“控制面板”-“添加删除程序”,找到“支付宝安全控件”,点击“删除”进行卸载。如果没有找到支付宝安全控件,请重新安装安全控件再进行卸载,卸载后如果提示重启电脑,请重新启动。然后登录支付宝网站安装新控件,按提示再次尝试安装。 如果排除以上情况,请再尝试下以下处理方法: 1、安全控件完全支持IE5.5以上版本 2、您在升级安全控件时,请关闭您正在运行的其他程序,例如旺 旺/贸易通等,如果运行下载的安装包,包括您正在使用的浏览器都要关闭,这样可以尽量避免安装程序提示您重启操作系统。 3、IE浏览器设置恢复为默认值: a)点击浏览器菜单栏上的工具->Internet选项->安全,选 择internet区域,如〔默认级别〕按钮不是灰的,就直接点 击,如果是灰的,不用做任何操作。 b)依次选择4个区域(Internet/本地Intranet/受信任的站 点/受限制的站点),并且点击<默认级别>按钮 c)点击〔高级〕标签,点击〔还原默认设置〕 4、确认使用Administator用户登录操作系统,或者是 Administrators组中的用户,需要保证自己登录的用户对NTFS分区格式的硬盘系统目录(Windows)具有写权限。

5、在安装使用支付宝的过程中,请留意浏览器页面区域上方有没 出现一个黄色的确认提示条。IE7等高版本浏览器增加的安全特性,会在这个区域要求用户的确认,才能使支付宝的程序正常运行。 6、出现安装问题后,建议下载EXE安装包来安装,这个安装包会 尽量帮您解决所遇到的问题。 7、如果以上步骤都无法解决您的问题,通常是您机器上的第三方 软件造成的。支付宝页面使用了微软的ActiveX控件技术,您可以自行检查是否有第三方软件阻止您的浏览器使用控件。具体的操作可参考第三方软件的帮助。下方有一些第三方软件的列表和参考操作,包括但不限于这些软件,可能会对支付宝的正常使用造成影响。 请正确设置,或者临时禁用/卸载这些软件,如瑞星系列、卡巴斯基、3721、安全卫士360、kv系列杀毒软件、股票软件、eBay易趣、dudu下载加速器、中文上网、青娱乐聊天软件、很棒小秘书、百度搜霸、百度超级搜霸、一搜工具条、网络猪、划词搜索。 如果您是使用Maxthon浏览器,那么该浏览器不会提示您安装安全控件,所以这时需要您在选项-广告猎手-启用ActiveX过滤前面打勾

adobe audition 3.0 插件安装图文教程

Adobe Audition 3.0插件安装教程 首先在这里感谢大家对Smoke支持,有很多网友看了我写的Adobe Audition 3.0教程,但在网友们提出的一些问题以后,我才发现在教程里写的不够详细,以后我会慢慢补充,在次感谢大家对Smoke支持. 今天要先写什么呢?感觉Adobe Audition 3.0自带的效果不能满足大家,今天给初学者讲解第三方插件的安装。 首页我们把插件安装文件准备好。这些第三方插件你可去网上下载,也可以找我索取,如图所示: 这是我电脑里存储的一些插件,我们选择一个插件做示范。我们选择“混响”,点击安装文件,弹出如下对话框,如图所示:

我们点击Browse,选择此插件安装哪里,这一步是最关键的,我们要把此插件安装到Adobe Audition 3.0根目路,Plug-ins文件夹下。如图所示:

我们找到Plug-ins文件夹,直接点两次OK就可以了,然后点击“下一步”继续安装就可以了。安装完毕以后我们打开Adobe Audition 3.0 ,进入编辑模式,如图所示: 点击编辑模式,然后在点击菜单栏中的“效果”菜单,如图所示: 我们继续点击“启用DirectX"效果”稍等片刻,启用完成以后。我们继续点击“涮新效果列表”在此稍等,系统正在涮新我们刚才安装的“混响”效果器。涮新完毕以后,我们点击“VST插件管理器”来启用我们的插件,如图所示:

选择我们想要启用插件,给它打上“勾“,点击确定就可以了,当然我们也可以点击全部启用,我们把安装的所有插件全部启用。点击确定以后,在次稍等,启用完毕以后,我们选择的第三方插件就可以用了。如图所示:

OA相关控件安装说明

OA相关控件安装说明 平时我们用360安全卫士和金山卫士等杀毒类软件进行系统查杀时,有可能会把OA控件误删除,又或者我们用IE修复类软件进行IE修复时,修复后的浏览器会禁止运行ActiveX控件和插件,这2种情况都会造成使用OA系统走流程的时候开不了流程,又或者不能上传附件和打开OA首页的文档等情况。如果遇到这些情况我们往往可以通过重新安装OA控件来解决问题,以下是重新安装OA控件的步骤:1,打开IE浏览器(或者是360浏览器和搜狗浏览器都可以),在浏览器的菜单栏的工具选项中选择Internet选项,如图: 点击进去后我们可以看到界面如下图所示:

我们所需要的就是在上述4个红圈中做修改。 2,首先先选中Internet图标,点击自定义级别按钮后进入图示界面: 找到ActiveX controls and plug-ins设置,我们需要做以下改动:1,Allow previously unused ActiveX controls to run without prompt 修改成Enable 2,Allow Scriptlets 修改成Enable 3,Automatic prompting for ActiveX controls 修改成Enable 4,Dowmload signed AcitiveX controls 修改成Prompt 5,Dowmload unsigned AcitiveX controls 修改成Prompt 6,Initialize and script ActiveX controls not marked as safe for scripting修改成prompt 7,Only allow approved domains to use ActiveX without prompt 修改成Enable 8,Run ActiveX controls and plug-ins 修改成Enable 9,Script ActiveX contorls marked safe for scripting* 修改成Enable 修改完后点击确定按钮保存修改,然后选中Local Intranet图标和Trusted sites 图标,点击自定义级别进入界面后做同样的修改。 3,最后我们选中步骤1中可信站点的图标,然后点击站点按钮,如图所示

互联网数据库网上作业客观题答案优选稿

互联网数据库网上作业 客观题答案 集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)

一、单选题: 1.数据模型是()。 A.现实世界数据内容的抽象 B.现实世界数据特征的抽象 C.现实世界数据库结构的抽象 D.现实世界数据库物理存储的抽象 2.实际的数据库管理系统产品在体系结构上通常具有的相同的特征是()。 A.树型结构和网状结构的并用 B.有多种接口,提供树型结构到网状结构的映射功能 C.采用三级模式结构并提供两级印象功能 D.采用关系模型 3.范式是指()。 A.规范化的等式 B.规范化的关系 C.规范化的数学表达式 D.规范化的抽象表达式 4.SQL语言中,模式对应于()。 A.视图和部分基本表 B.基本表

C.存储文件 D.物理磁盘 5.SQL语言中,内模式对应于()。 A.视图和部分基本表 B.基本表 C.存储文件 D.物理磁盘 6.所谓2NF,就是()。 A.不允许关系模式的属性之间有函数依赖Y→X,X是码的真子集,Y是非主属性 B.不允许关系模式的属性之间有函数依赖X→Y,X是码的真子集,Y是非主属性 C.允许关系模式的属性之间有函数依赖Y→X,X是码的真子集,Y是非主属性 D.允许关系模式的属性之间有函数依赖X→Y,X是码的真子集,Y是非主属性 7.所谓静态元组约束,就是()。 A.规定组成一个行的各个元组之间的约束关系 B.规定组成一个元组的各个之间的约束关系 C.规定组成一个列的各个元组之间的约束关系 D.规定组成一个元组的各个行之间的约束关系

8.在数据字典中,反映了数据之间的组合关系的是()。 A.数据结构 B.数据逻辑 C.数据存储方式 D.数据记录 9.在传输表单数据时,跟在httpheader后有一专门的数据段,这个数据段包含在表单中输入的查询参数,它一起被发送给Web服务器,这种传递方法是()。 A.GET方法 B.POST方法 C.PUT方法 D.REP方法 10.构成Web超链网状结构的数据文件主要是()。 A.以INDEX编码的二进制程序文档 B.以INDEX编码的HTML文本文档 C.以HTML编码的ASCIⅡ文本文档 D.以HTML编码的二进制程序文档 二、多选题: 1.数据库管理系统是为了进行什么操作而配置的 A.数据库的建立

Delphi组件安装方法 控件安装方法全解

不是由BORLAND提供的组件叫第三方组件: 安装方法: 1、只有一个DCU文件的组件。DCU文件是编译好的单元文件,这样的组件是作者不想把源码公布。一般来说,作者必须说明此组件适合Delphi的哪种版本,如果版本不对,在安装时就会出现错误。也正是因为没有源码,给使用者带来了不便,那就是一旦Delphi版本升级,此组件就不能再使用了,当然有的作者给出了几种版本的DCU文件,用户根据需要选择使用。这样的组件的安装方法是: 在Component菜单中,选择install component,在对话框"into existing package"页中,单击“Unit file name”后的“Browse”按扭,在打开的文件对话框中,将“文件类型”设定为*.dcu,找到要安装的DCU文件,按OK按钮返回"into existing package"页后再按OK按钮就可以安装了。注意,此时Delphi会提示dclusr40.dpk将被重建,是否继续,OK就可以了。这里是将组件安装到dclusr40.dpk包中,此包从文件名上可以看出是用户自定义组件包,先安装到这个包中吧,下面再讲有关注意事项。安装完毕会有已经将组件注册完的提示信息以及安装到哪个组件页中的信息等,到组件面板上看看,一般会出现一个新的组件页,其中有刚安装的组件。 2、只有PAS文件或既有PAS又有DCU文件的组件。这种组件因为有PAS文件,也就是说作者提供了源码,这就好办多了。安装的方法和上面是一样的,在文件类型中可以设定为DCU也可以设定为PAS,建议设定为PAS,这样可用你的Delphi重新编译一下,看是否会出现问题。Delphi升级后只能选择PAS文件安装,这样才能重新编译,使得组件能适应新Delphi版本。这样的组件是很值得使用的,根据心铃的经验,没有源码的组件最好不要使用,一是存在Delphi版本升级后无法使用的问题,再者当程序出现问题后用户无法调试组件来判断是否是组件中存在BUG。 3、有dpk文件的组件包。带有dpk文件的组件包一般是有多个组件构成的,也就是说安装后会有多个组件供使用,如果只有一个组件作者一般不会制成DPK文件,使用上面的方式发布就可以了。对于这样的组件包,一般来说会有详细的安装说明文件,如上面提到的RXLIB,由于组件复杂且安装时有先后顺序,作者不提供安装说明用户根本无法正确安装。如果没有安装说明文件,那么用下面的方法安装:在File菜单下,选择”OPEN…”打开dpk 文件(文件类型列表框中选*.dpk),在出现的Package窗口中,工具栏上有Install按钮,按此按钮即可进行安装。如果Install按钮处于无效状态,那么先按Compile按钮编译,一般来说编译之后Install按钮就会处于有效状态,此时再按Install按钮就可以了。 4、带有Bpl文件的组件包。一般来说这也是由多种组件构成的组件包,它其实是一个动态连接库文件(DLL)。对于这种组件包的安装方法是:在component菜单下选择“install packages”,然后单击Add按钮,在打开的文件对话框中找到相应的bpl文件打开返回后,再单击Ok按钮就可以了。 5、ActiveX控件的安装。要安装这类控件,需要先用regsvr32.exe注册,然后选择Component 菜单中Import ActiveX Control项。在Import ActiveX Control打开的窗口中,只有已经注册的ActiveX控件才出现在列表中,选中一个然后按Install按钮就可以安装了。如果事先没有用regsvr32.exe注册也可以按ADD按钮找到OCX文件即时注册,注册后再进行安装。

相关文档