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…创建user,没有表及资料创建user,创建表,表里面有资料创建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=‖Select … 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 还是FORMONLY 画面输入的内容不需要异动到ORACLE数据库就可DS或者FORMONLY,否则不许选择DS 5. 栏位说明和栏位之间的关系:成对出现的,栏位说明TEXT控件是没有名字的,只有栏位才有名字,后续维护p_perlang 时以栏位的名字为主 6. 控件属性的设置参考教材
7. 制作画面的步骤:下载ds.sch—> GENERO STUDIO 本地制作—> 上传—> 编译—>
预览—> 维护p_perlang
最后的三步跳过预览的步骤直接去维护p_perlang 是看不到中文信息的,必须预览后才可以看到
画面csfr110.4fd 程序:csfr110.4gl DATABASE 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 VAL(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的区别 STATUS 用在SQL和BDL中
SQLCA.sqlcode 只能用在SQL中,但是在SQL中侦错时,建议用这个。IF STATUS THEN :SQL,BDL(LET a=‘tiptop‘)
IF SQLCA.sqlcode THEN :SQL-SELECT,INSERT,DELETE,UPDATE,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:UPDATE #数据表数据修改
BEFORE DELETE #删除一笔数据之前触发的事件
SQL:DELETE 数据表数据删除
END INPUT