文档库 最新最全的文档下载
当前位置:文档库 › tiptop 软件 程序 基础 培训

tiptop 软件 程序 基础 培训

tiptop 软件 程序 基础 培训
tiptop 软件 程序 基础 培训

1.Linux基础指令Linux编辑器vi

2.Oracle 基础Oracle管理维护

3.Tiptop维护答疑测试

添加用户useradd

Useradd –g tiptop

文件管理指令

Cd 切换目录

Cd 回到家目录

Cd . 回到当前目录

Cd .. 回到上级目录

Cd ~ 回到家目录

Cd /etc 回到/etc目录

Cd $TOP

Tar cznf /u3/topprod.tgz /u1/topprod

Tar xznf topprod .tgz

Tar czvf $bakdir/topprod.tar.gz /u1/topprod/tiptop /u1/topprod/topcust

Tar czvf $bakdir/genero.tar.gz /u1/genero*

Ps –ef|grep oracle*

Tiptop/ora/scripts

Q_tbsFREE 查看表空间使用状况需要以sys用户登陆才可

Q_users 查看ERP DB

Q_userOBJ 查看ERP 数据库对象信息

当临时表空间不足时,由于临时表在使用时不能被删除,所以处理方式为:另外创建一个临时表空间temp2,并把其设置为默认表空间,再把原来的临时表temp删掉,然后创建temp,设置为默认表空间,最后删除temp2。

创建临时表空间temp2

Create temporary tablespace temp2 tempfile ?‘ size 2G

更改temp2为默认表空间

Atler database default temporary tablespace temp2;

删除temp表空间

Drop tablespace temp including contents and datafiles;

在重新创建temp2

Create temporary tablespace temp tempfile ?‘ size 2G

更改temp为默认表空间

Atler database default temporary tablespace temp2;

Createdb 1…

1 创建user ,没有表及资料

2 创建user,创建表,表里面有资料

3 创建user ,创建表,表里面有DS 的demo资料

4 创建user ,复制另一个DB ()

某张表的数据完全没有的情况:

imp ds/ds file=ds.dmp tables=ima_file log=ds_ima_file.log

某个DB的某张表只是丢失了某几条重要的数据:

(比如:ds1的ima_file )

Imp system/manager file=ds1.dmp tables=ima_file

Fromuser=ds1

Touser=ds_report

Log=imp.log;

Esac

udm7;

exit

Truncate table table_name 清空表,不可以rollback的

画面(3.7)

容器性控件

非容器性控件

Fglwrt

Buttonedit :

name, data, tablename, columnname, image type, image

设置必须拦位:Constraints :required netNull true;

Action 设置快截件controlp 必须的

设置不可录入: Constraints:noEntry=true

Combobox

noEntry =true

右键: edit item

画面中text 自动显示中文,中文是从p_zta中字段说明中获取.如果后续需要做修改的话,可以在p_perlang中修改,combobox下拉框中的中文显示也是在此设置.text控件必须跟edit 等等依附存在,不可以独立存在的.

Label 不会自动显示,把name 设置为:dunny01才可以(dunny+流水号,tiptop平台设死的),label可独立存在

tabIndex属性可设置鼠标跳动顺序

tiptop中显示静态图片,图片控件的name必须为:imgmksg

checkbox :valueChecked:Y,

valueUnchecked:N

radiogroup: 右键edit items ;orientation

tpye_file 参考字段用表

单双引号不做区分的,只要成对出现

String 类型不能用在sql中

如: define a string

Select * from table where filed=a 是错的

但是define a varchar(10)

Select * from table where filed=a 是对的

Ls .* 列出隐藏文件

3/8

INPUT :

让鼠标焦点继续在该拦位:NEXT FIELD field_name

当前拦位值被改变时触发ON CHANGE事件

MENU 和INPUT里都可以定义ON ACTION

CURSOR

1.接受查询条件CONSTRUCT

与INPUT 区别

假设画面拦位a=‘111‘,b=‘222‘

Construct g_wc on gen01,gen02 from a,b

Table字段画面拦位

=》g_wc=‖gen01 =‘111‘ and gen02=‘222‘‖

2. 根据1中得到的g_wc的值组SQL

Let l_sql=‖S elect … from table where ―,g_wc

3.将组合出的SQL字符串转换成可执行的SQL

PREPARE pre01 FROM l_sql

4.将可执行的SQL定义成CURSOR

DECLARE cursor1 CURSOR FOR pre01 (第3步省略时,第4步就用这个方法DECLARE cursor1 CURSOR FROM l_sql,但是不用PREPARE时,如果l_sql中有语法错误时,程序不会报错)

5.读取游标数据

FOREACH cursor1 INTO 变量

CONTINUE FOREACH

EXIT FOREACH

END FOREACH

结束后自动释放空间。

3/9

制作画面常见问题及注意事项:

1 画面的名字

客制目录/u1/gp515

2 制作画面中不能出现任何的中文

3.控件之间的边界不能重叠

4新建画面时是选择DS 还是FORMONL Y

画面输入的内容不需要异动到ORACLE数据库就可DS或者FORMONL Y,否则不许选择DS

5.栏位说明和栏位之间的关系:成对出现的,栏位说明TEXT控件是没有名字的,只有栏位才有名字,后续维护p_perlang 时以栏位的名字为主

6.控件属性的设置参考教材

7.制作画面的步骤:下载ds.sch—> GENERO STUDIO 本地制作—> 上传—> 编译—> 预览—> 维护p_perlang 最后的三步跳过预览的步骤直接去维护p_perlang 是看不到中文信息的,必须预览后才可以看到

画面csfr110.4fd

程序:csfr110.4gl

DA TABASE ds

GLOBALS …

DEFINE 变量

MAIN

程序初始化(OPTIONS)

判断权限(NOT cl_user())

如果遇到执行过程中的错误就记录LOG 日志(call cl_err_msg_log)

程序初始化-营运中心,参数载入,config目录文件载入(cl_setup(―‖) )

记录程式执行的开始时间cl_used

OPEN WINDOW ….

CALL r110_tm()

记录程式的离开时间

END MAIN

FUNCTION r110_tm()

Construct

End construct 接受查询条件(QBE)

Input 接受单一的值(条件选项等)

End input

Call csfr110()

END FUNCTION

FUNCTION csfr110()

L_sql=‖select …….‖

Call cl_prt_cs()

END FUNCTION

目录:gp515/topcust/csfr100

INPUT NO WRAP 输入方式不打转

DEFER INTERRUPT 截取中断值(就是界面中是否可以通过X来关闭窗口)

MAIN函数接受值的方式:let p_a=ARG V AL(1)

背景作业(或者p_zz里的UNIX运行指令)p_cron给MAIN函数传值

Cl_ui_init() 画面多语言p_perlang载入

While true (避免当交互指令发生错误时陷入死循环)

IF l_n>10 then

Exit wile

End if

Let l_n=l_n+1

Cl_qbe_init() 条件查询和条件储存按纽初始化

On action locale 语言

Call cl_dynamic_locale 切换语言函数

Cl_ghow_fld_cont() 该语言下的说明信息显示出来

Aoos010 允许闲置时间

On idle g_idle_seconds top.global,main-cl_setup

Cl_init_qry_var() 将top.global中和开窗有关的变量初始化

先编译,再维护p_zz,然后再编译,再link

3/11

报表台头1公司名称在P_zo中进行设置的,而不是在报表中进行的设置

报表台头2报表名称在p_zz---打印设置中的报表打印抬头进行设置的,如果报表打印抬头为空,则抓取程序名称。而不是在报表中进行的设置。

报表图片在P_zo中进行设置的,必须在报表中新增一个location 的公式字段,用来到替换本地报表中的图表为服务器上的图表,服务器图标在P_zo中进行设置。步骤为:在报表中插入一个图表,鼠标停在图标上点右键,选择图标格式化—图片---graphic—打开公试设置画面把location拖到下方

设置土县格式

必须建立26个参数字段,接口函数cl_prt_cs1已经设置死的,否则会报“无效索引”的错误

Function cl_prt_cs1

Call cr(参数1,参数2…,参数26)顺序也有要求的

End function

分组跳页节专家选择分组勾选reset page number after

当数据比较长,而宽度有限时,折行显示,右键设置字段格式,勾选“可以增大”

若重复抑制显示可以在同组内相同字段内容只显示一次

侦错:STATUS和SQLCA.sqlcode的区别

STA TUS 用在SQL和BDL中

SQLCA.sqlcode 只能用在SQL中,但是在SQL中侦错时,建议用这个。

IF STATUS THEN :SQL,BDL(LET a=‘tiptop‘)

IF SQLCA.sqlcode THEN :SQL-SELECT,INSERT,DELETE,UPDA TE,PREPARE

3.15

P_zm 可以把新增的程式增加的start menu

Start menu 中所有的menu都是在p_zz中新建的。

1.p_zta(sch)建表,改表,解锁,简单SQL运行

2.权限

(1)p_zy 权限群组资料录入

(2)p_zx 用户基本资料录入

(3)p_zxw

3.画面

P_perlang 画面多语言设置

P_per画面属性设置第一次r.gf 抓取GENERO STUDIO 的设置

必输拦位,是否可输入,KEY 拦位,隐藏否

主要用做后续的修改,开始可在程式中进行设置

4.P_cron

背景作业设置

5.P_zmd

新建摸组

6.P_zz 程序执行主入口

1.程序写好后维护链结档路径,ACTION,权限

2.新建菜单(模组:MENU 程序类型:“M:选单”;UNIX运行指令:¥FGLRUN ¥MENUi/n98)

3.p_query 自定义查询报表的接口

单档查询q()

1.先接收查询条件construct…cs()

2. 定义cursor cs()

3. 拨动cursor数据到变量里去fetch()

4.Display 变量的值到画面上show()

报表游标非滚动性游标cursor

LET l_sql=‖select …from …where …‖,tm.wc

Prepare pre1 from l_sql

Declare cursor1 cursor FOR pre1

Foreach end foreach

单档cursor- 滚动性游标scrolling cursor

LET l_sql=‖select …from …where …‖,tm.wc

Prepare pre2 from l_sql

Declare cursor2 scroll cursor FOR pre2

Open cursor2

Fetch (first(第一笔,next下笔,previous上笔,last末笔)cursor2 into 变量列表

Absolute 指定笔

Close cursor2

新建

G_qryparam_state=‖c‖p_qry中g_gem的construct时的WHERE条件可以进

行多选

G_qryparam_state=‖i‖或者不赋值p_qry中g_gem的construct时的WHERE条件只

能进行单选

注:INPUT录入开窗时的WHERE条件,CONSTRUCT查询开窗时的WHERE条件查询开窗可以设置9个arg1…arg9。

WHEN INFIELD(tc_ooa001)

CALL cl_init_qry_var() #变量集合初始化g_qryparam

LET g_qryparam.form = "q_tc_ooa" ###########

LET g_qryparam.state = "c" #p_qry中g_gem的CONSTRUCT

时的WHERE 条件,可以进行多选

LET g_qryparam.arg1=‖00002‖#给arg1赋值

LET g_qryparam.default1 = g_tc_ooa.tc_ooa001 #预设值

CALL cl_create_qry() RETURNING g_qryparam.multiret #根据

g_qryparam的值弹出查询视窗

g_qryparam.multiret STRING类型

DISPLAY g_qryparam.multiret TO tc_ooa001 #全写

NEXT FIELD tc_ooa001

自定义报表p_query cooi100,cooi1001

ON ACTION output1 #自定义报表

LET g_action_choice="output1"

IF cl_chk_act_auth() THEN

IF cl_null(g_wc) THEN LET g_wc= "1=1" END IF

LET l_cmd = 'p_query "cooi100" "',g_wc CLIPPED,'"'

###传入画面输入的条件做为报表的WHERE 条件然后把查询出的数据打印CALL cl_cmdrun(l_cmd) #运行另外一支程式的接口函数END IF

ON ACTION output2 #自定义报表2

LET g_action_choice="output2"

IF cl_chk_act_auth() THEN

IF cl_null(g_tc_ooa.tc_ooa001) THEN CONTINUE MENU END IF

LET l_cmd = 'p_query "cooi1001" "',g_tc_ooa.tc_ooa001,'"' #画面KEY值做为报表的WHERE 条件然后把当前画面查询出的数据打印

CALL cl_cmdrun(l_cmd) #运行另外一支程式的接口函数

END IF

复制函数

Function i009_copy()

1.先检查是否已查询出数据供复制,如果没有则报错

2.接收新的KEY 值input by name g_...

3.将原来的旧值存入临时表

4.用新录入的KEY 值去update 临时表中的KEY 值字段

5.将临时表的数据insert 到实体表中

END FUNCTION

252

Alter table 时不能直接在p_zta中改,要自己写一个atler_tc_zzz_file.sch,然后在p_zta中汇入atler的SQL

在做单档多栏程式的画面时要设置屏幕变量

单档多栏参考程序:

Aooi040

员工银行信息aooi040员工银行信息勾上

标准单档的menu()

FUNCTION i010_menu()

MENU

BEFORE MENU

数据浏览的五个按纽的初始化

ON ACTION query

……

ON ACTION insert

END FUNCTION

单档多栏的menu()+bp()《=》标准单档的menu()

FUNCTION menu()判断权限,调用功能函数

WHILE TRUE

CALL i040_bp("G") 定义按纽,给g_action_choice赋值

CASE g_action_choice

WHEN "query"

IF cl_chk_act_auth() THEN

CALL i040_q()

END IF

WHEN "detail"

IF cl_chk_act_auth() THEN

CALL i040_b()

……………………………..

END CASE

END FUNCTION

FUNCTION i040_bp()

DISPLAY ARRAY g_gen TO s_gen.* ATTRIBUTE(COUNT=g_rec_b)

#动态数组屏幕变量顺序一一对应

BEFORE DISPLAY

ON ACTION query

LET g_action_choice="query"

EXIT DISPLAY

END DISPLAY

END FUNCTION

……

标准单档修改,录入:

U() --→i() 接受用户在画面上输入的值INPUT

A()-→i()

INPUT 事件:BEFORE INPUT,AFTER INPUT,BEFORE FIELD,AFTER FIELD,ON ACTION,ON IDLE

单档多栏:

INPUT ARRAY #将屏幕变量输入的值接受到动态数组中

AFTER INPUT

BEFORE FIELD

AFTER FIELD

ON ACTION controlo #沿用上笔资料复制

ON IDLE

BEFORE ROM #鼠标焦点进入这一行之前触发的事件,TIPTOP习惯在此事件中# #检查当前行是否存在数据,如果存在则对此笔数据上锁AFTER ROW #鼠标焦点离开当前行时触发的事件,判断如果在BEFORE ROW中#对此笔数据上锁的话,则解锁

BEFORE INSERT #新增一笔数据之前触发的事件

AFTER INSERT #新增一笔数据之后触发的事件

SQL:INSERT INTO #数据表录入数据

ON ROW CHANGE #鼠标焦点离开当前行,并且当前行的数据被改变时触发的事

SQL:UPDA TE #数据表数据修改

BEFORE DELETE #删除一笔数据之前触发的事件

SQL:DELETE 数据表数据删除

END INPUT

相关文档