当前位置:广义范文网 > 专题范文 > 公文范文 > 2022年浅淡存货信息化管理

2022年浅淡存货信息化管理

发布时间:2022-08-27 21:05:02 来源:网友投稿

下面是小编为大家整理的2022年浅淡存货信息化管理,供大家参考。希望对大家写作有帮助!

2022年浅淡存货信息化管理

浅淡存货信息化管理5篇

浅淡存货信息化管理篇1

实施教育信息化管理 打造信息化教育平台

——洙湖二中教育信息化工作开展情况汇报材料

教育信息化是教育面向信息社会的要求和必然结果,是实现教育现代化的重要步骤。近年来,我校以开展“电化教学”为契机,加大教育信息化建设投入,努力推进教育信息化工程。以教育信息化推动教育现代化,不断打造信息化教育平台。经过近几年的努力,学校信息化工作取得了一定的成绩,现将我校信息化教育工作开展情况汇报如下:

一、基本情况:

1、学校基本情况

洙湖二中位于上蔡县洙湖镇洙湖集北,始建于1988年,占地50多亩。学校现有11个教学班,教职工70人,学生856人。学校在二十多年的发展历程中,先后荣获驻马店市五星级学校、驻马店市示范性初中,驻马店市综合办学水平先进学校、上蔡县管理一级学校、上蔡县安全文明校园、上蔡县中招先进学校等称号,为各级各类学校输送了众多合格人才。近年来,在上级教育行政部门的关心、支持和帮助下,学校办学条件不断改善,教育教学设施得到进一步完善。学校领导班子务实团结;
广大教师爱岗敬业;
教育教学质量逐年提高。

2、信息化基本情况

2007年,学校装配了远程教育教室,以及远教专用设备一套。2008年,学校装配了多媒体教室,各班配备了电脑和投影仪,学校教师积极运用电教设备进行教育教学。今年,教育局又为我校所有班级安装了教学一体机,现已投入使用。

二、信息化工作指导思想

以党的十八大精神为指导;
认真贯彻落实科学发展观,认真执行党的教育方针、路线、政策。努力提高教师教育教学水平,拓展学生视野,进一步推进素质教育的有效实施。通过提高教学效率,减轻学生学业负担,实施新课程、新理念,有效、合理利用网络资源,缩小城乡教育差距,实现教育优势资源共享。

三、学校信息化教育工作的开展情况

1、学校领导重视,不断加强教育信息化建设工作

自2009年以来,学校启动了信息化教育工作,成立了以校长为组长的信息化教育工作领导小组,保证信息化教育工作的正常开展、促进信息化教育的推进工作。4年来,我校紧密围绕信息化教育这个工作中心,不断开拓创新,扎实推进各项工作。为了使信息化教育能更好地为教育教学服务,我们积极探索,不断完善,落实科学发展观,给学校教育带来了深刻地变革;
教育信息化工作得到进一步的推广。

2、加强教师队伍建设,为教育信息化奠定扎实基础。

教育信息化除需要现代化教学设施,还需要具有现代教育技术技能的教师队伍。在教师培训方面,我们坚持“全员参与、培训先行、分类推进、分层提高”的策略。对教师的培训方面我们主要着眼于 “四个会”:即会操作计算机,会从网上下载有关教学资料,会运用远程教育设备辅助教学,35岁以下教师会制作多媒体课件。要求年轻教师在教学过程中,综合运用多种媒体课件和多种教学手段,实现教育理念,资源配置安排上的最优化。学校已经举办了十几次现代教育技术全员培训,培训内容主要有计算机基本技能,文字处理,电子表格,电子幻灯片制作等,学校领导带头学习,带头使用电教设备进行教学。

3、科学管理,通过电化教学设备的运用,促进教育信息化工作的有效开展。我们在保证电化教学设备正常运行的情况下,制定了相应的管理措施,促使教师运用网络资源进行教学。要求:1、45岁以上教师必须能运用电化教学模式进行教学;
45岁以下教师必须能充分运用下载的教育资源进行教学,并根据自己的要求与设计对课件作有效修改;
年轻教师能运用相应的素材自制课件;
进行网页制作,动画制作、多媒体制作等方面的学习。2、每位教师坚持经常使用电化教学设备上课,每学期至少精心准备2节汇报课,并做好相应的记录。通过强化管理,促使教师不断学习,巩固所学,互相交流,既提升了教师的知识结构、教育教学水平和业务能力;
也提高了电教设备的使用效率,达到开展电化教育的目的,有力的促进了教育信息化的开展。

4、教师认真开展信息化教育,取得显著成绩。学校教师利用远程教育和网络资源实施课堂教学,取得了良好的效果,有多位教师在多媒体教学优质课评比活动和课件制作评比活动中获奖。电化教学设备在我校还被广泛运用到开展的各项活动中,如家长会、文艺汇演等,均取得了良好的活动效果。

四、信息化教育的管理工作

(一)、加大投入,完善设备

为确保信息化教学工作的顺利开展,学校逐年增加信息化教育经费投入,及时对远教设备进行维护及维修。将资源接收硬件、软件进行及时更新,使其能够有效地接收下载教育教学资源,服务教学。

(二)、建立丰富的信息教育资源库

以远程教育和网络资源为载体,为教师提供信息化教育的资源。我校电教管理员及时下载整理远程教育资源,建立资源库供教师进行有效运用;
不断收集本校教师自己设计制作的教案、课件,与远教下载资料进行整合分类,建立校园资源库,大大地丰富了学校的教育资源,为教师进行教育信息化工作提供了极大帮助。

(三)、建立健全经费保障机制,保证信息化设备正常运行

几年来,我校高度重视信息化教育工作,为保障信息化工作的正常开展,每年均用相应经费对远程教育设备和办公电脑进行维修维护、购置电化教学所需物品。同时,为使教师更好的开展信息化教育工作,学校开通了宽带网,供教师查阅相关的教育教学资源。

(四)、引入激励机制,促进信息化工作的稳步进行

现在,我校将信息化教学纳入到教师绩效考核中,对多用设备和搞好信息化教学的教师加以奖励;
同时根据要求学校组织开展了校内优质课评比活动。学校成立优质课评比小组,确保优质课评比活动顺利开展,对成绩突出的教师采取绩效加分、推荐参加上级教育部门参加技能大赛等方面的激励机制。对学校进一步开展好信息化教育工作具有一定的推动作用。

五、我校在信息化教育开展工作中的优势

1、学校领导重视、积极搭建信息化教育教育平台

学校领导高度重视信息化推进工作,为加快信息化教育工作在我校的顺利实施,成立了以校长节新星为组长的信息化教育工作领导小组。学校积极争取上级教育部门的支持,不断增加对信息化教育的经费投入,努力推进信息化教育的各项工作。

2、上级领导对我校信息化教育工作非常重视,为我校装配电化教学设备,县教育局王勤局长、县教育台王心平台长、镇中心学校曹德领校长还多次到我校检查指导电化教学工作。

六、信息化建设目标

1、总体目标

建立班班通工程、校园网工程。逐步完善、补充学校资源库,实现学校管理、办公信息化;
实现卫星宽带、互联网宽带、学校资源结合。

2、分步目标

(1)、建成电子备课室6间,教师能运用电脑进行教学资源的查找,制作教学课件,使用电脑备课,实现办公信息化。

(2)、建立“班班通”工程。我校现有11个教学班,建立“班班通”后各科任教师均能进行信息化教学。

(3)、建立校园网。组建学校基本网络,通过校园网的建立,学校教师的备课、电子资料等学校教导处随时可以查看,教师之间可以相互学习、相互借鉴,共同学习,实现教学相长。

总之,几年来,我校信息化教育工作在上级有关部门的关心支持和全校师生的努力下取得了一定的成绩,也存在着一定的问题和不足。在今后的工作中,我们会总结经验,改进工作中发现的问题和存在的不足。相信在上级教育部门的关心、支持、帮助下,在全校师生的共同努力下,我校的信息化教育工作一定会朝着健康有序的方向发展。

- 高氯酸对阿胶进行湿法消化后, 用导数火焰原子吸收光谱技术测定阿胶中的铜、“中药三大宝, 人参、鹿茸和阿胶。”阿胶的药用已有两千多年的悠久历史, 历代宫① 马作峰.论疲劳源于肝脏[J].广西中医药,2008,31(1):31.① 史丽萍,马东明, 解丽芳等.力竭性运动对小鼠肝脏超微结构及肝糖原、肌糖元含量的影响[J]. 辽宁中医杂志,① 王辉武,吴行明,邓开蓉.《内经》“肝者罢极之本”的临床价值[J] . 成都中医药大学学报,1997,20(2):9.① 杨维益,陈家旭,王天芳等.运动性疲劳与中医肝脏的关系[J].北京中医药大学学报. 1996,19(1):8.1 运动性疲劳与肝脏① 张俊明.“高效强力饮”增强运动机能的临床[J].中国运动医学杂志,1989,8(2):10117 种水解蛋白氨基酸。总含量在56.73%~82.03%。霍光华②采用硝酸-硫酸消化法和18(4):372-374.1995,206.2② 林华,吕国枫,官德正等. 衰竭运动小鼠肝损伤的实验性[J].天津体育学院党报, 1994,9(4):9-11.② 凌家杰.肝与运动性疲劳关系浅谈[J].湖南中医学院学报.2003,2(6)31.② 凌家杰.肝与运动性疲劳关系浅谈[J].湖南中医学院学报.2003,23(6):31.② 谢敏豪等.训练结合用中药补剂强力宝对小鼠游泳耐力与肌肉和肝Gn, LDH 和MDH 的影响[J].中国运动医学杂② 杨维益,陈家旭,王天芳等.运动性疲劳与中医肝脏的关系[J].北京中医药大学学报. 1996,19(1):8.2.1 中药复方2.2 单味药33 阿胶和复方阿胶浆③ 常世和等.参宝片对机体机能影响的[J].中国运动医学杂志,1991,10(1):49.③ 聂晓莉,李晓勇等.慢性疲劳大鼠模型的建立及其对肝功能的影响[J]. 热带医学杂志,2007,7(4):323-325.3.1 概述3.2 关于阿胶和复方阿胶浆医疗保健作用的3.2.1 营养成分和评价3.2.2 阿胶的药理作用3.2.3 阿胶的临床应用4④ Xie MH, etal.Effects of "Hong jing tian she 1u" on reproductive axis function and exercise capacities in men. The5⑤ 周志宏等.补肾益元方对运动小鼠抗疲劳能力的影响[J].中国运动医学杂志,2001,20(1):83-84202-204.5`"InternationalCourseandConferenceonPhysiologicalChemistry and Natrition of exercise and training (Abstract)6⑥ 杨维益等.中药复方“体复康”对运动性疲劳大鼠血乳酸、p 一内啡肤、亮氨酸及强啡肤Al-13 影响的实验研⑥。仙灵口服液可提高机体运动能力,加速运动后血乳酸的消除。F3 口服液能调整PCO2⑧ 孙晓波等.鹿茸精强壮作用的[J].中药药理与临床,1987,3(3):11.⑨ 于庆海等.高山红景天抗不良刺激的药理[J].中药药理与临床,1995,7(7):283.⑩ 牛锐.淫羊藿炮制前后对小鼠血浆睾丸酮及附近性器官的影响[J].中国中药杂志,1989,14(9):18.P 0.05) 。肝脏是动物机体重要脏器之一,Pi,同疲),肝主筋,人之运动皆由于筋,故为罢极之本”。人体肝脏的功能活动也必阿胶, 味甘性平, 入肺、肝、肾经, 具有补血止血、滋阴润肺的功效。《神农本阿胶,又称驴皮胶,为马科动物驴的皮去毛后熬制而成的胶块,是中国医药宝库中阿胶、熟地配伍能使补而不滋腻, 共奏益气补血之功, 主要治疗各种原因导致的气血阿胶对细有促进作用;
提示阿胶能提高机体免疫功能。

另外阿胶具阿胶具有很好的止血作用,常用来治疗阴虚火旺、血脉受伤造成的出血。比如,阿胶能治疗缺铁性贫血,再生障碍性贫血等贫血症状,阿胶对血小板减少,白细阿胶是一类明胶蛋白,经水解分离得到多种氨基酸,阿胶具有很多的药理作用和阿胶又称驴皮胶, 为马科动物驴的皮去毛后熬制而成的胶块。中药界有句口头禅:阿胶中的营养成分比较多,主要有蛋白质、多肽、氨基酸、金属元素、硫酸皮肤。把阿胶应用于运动员或人群中的实践应用性,具有很大的潜力和市场前景,白血病、鼻咽癌、食道癌、肺癌、乳腺癌等。阿胶不温不燥,老少皆宜,一年四季均伴随现代竞技体育的强度越来越大,运动员在大运动量训练后出现的各种疲劳征象,胞减少等症也具有效果明显效果;
另外,经配伍,阿胶可用来治疗多种出血症。医学保健作用,阿胶具有耐缺氧、耐寒冷、抗疲劳和增强免疫功能作用;
同时,阿胶具有本文的目的意义有以下两个方面:一是通过阿胶的抗疲劳能力,来进一

本以运动性疲劳相关症状明显的篮球运动员为对象,以谷丙转氨酶、谷表明,阿胶还用于治疗妊娠期胎动不安,先兆流产,习惯性流产等。对于月经病步了解运动员服用阿胶以后,不但能够使男女运动员的谷草转氨酶含量水平、谷丙转参促进人体对糖原和三磷酸腺苷等能源物质的合理利用, 并使剧烈运动时产生的乳草经》将其列为上品。《本草纲目》载阿胶“疗吐血衄血, 血淋尿血, 肠风下痢, 女草转氨酶、谷酰转肽酶、总胆红素、白蛋白和白蛋白/球蛋白含量水平为测定指标,产生运动。从中医学的观点来看,筋就是聚集在一起的肌肉束,膜是筋的延长和扩布;
常所说的肌腱和韧带等器官,韧带和肌腱坚韧有力。通过韧带和肌腱伸缩牵拉骨骼肌充在筋”, 也就说明了筋的功能受到肝脏的调节, 所以, 医家大多从筋与肝相关的角除运动后的疲劳, 已经成为运动医学领域的热点,而中医药在改善、消除运动性促进肌肉和肝脏有氧氧化能力的作用③。

红景天圣露能促进机体运动后的恢复和消除促进血液凝固和抗贫血作用,有提高血红蛋白红细胞,白细胞和血小板的作用。到影响。的变化, 主要表现为部分肝细胞破裂, 内容物进入窦状隙, 未受损的肝细胞糖原明的核心问题之一, 也是运动训练学所要克服的核心问题之一, 疲劳是机体的一的滋补类药品;
因始产于聊城东阿,故名阿胶,距今已有两千多年的生产历史;
最早低分子肽含量分别是15%~45%、10.97%~13.18% 。霍光华③采用标准水解法和氨基低运动后血清尿素氮含量;

加速体内尿素氮及血乳酸的清除速率;
提高小鼠的游泳点、“肝之合筋”的观点、“肝者,其充在筋” 的观点、“食气入胃,散精于肝,淫气于动领域的广泛应用。动性疲劳关系最为密切者当首推肝脏。动性疲劳后机体恢复作用和机制的十分活跃。动员和贮备,以及机体对运动刺激的适应和运动后的疲劳的恢复起到重要的促进作用度阐述肝与疲劳的关系, 其实肝尚可通过脏腑气血等多个途径影响疲劳感的产生和度的DS 标准液, 加适量天青Ⅰ试液, 536nm 处测定吸收值, 建立工作曲线回归方程。对于运动产生的机理, 中医学解释比较通俗易懂, 即:韧带和肌腱的伸缩牵拉骨对运动性疲劳的多集中于中枢疲劳与外周肌肉疲劳,而较少涉及肝脏实质器而略于补立法,以健脾保肝、补中益气组方的确是防治运动性疲劳的一条新思新。故发挥和延缓运动性疲劳的产生都能起积极而有效的作用。总之,体力和脑力的产生均复的适应能力②。复方阿胶浆是由阿胶、红参、党参、熟地、山楂等药组成, 主入肝、脾两经。方肝,人动血运于经,”的论述。明确指出运动能力与肝和血密切相关。这种“动则血肝脾同处于中心位置,共同掌管着气化的职责,所以运动性疲劳的气虚神乏大多是由肝损害可导致动物运动能力下降, 也有大量实验观察了急性力竭疲劳对动物肝脏的肝糖原、肌糖元含量下降, 其程度随着衰竭运动次数增加而增加。林华等②通过对衰肝有关,由此可以推测神经递质、激素的释放等生理活动均同肝脏有密切关系。再者肝与筋的关系非常密切,在许多著作中都阐述了这一观点。如“肝主筋” 的观肝脏对内分泌具有促进作用。中医认为,胆汁的分泌、女子的排卵、男子的排精均主藏血、主筋,为“罴极之本”,有储藏营血与调节血量的作用,是提供运动所肝主疏泄,调畅气机,对气血津液的生成、输布和代谢有着重要意义。就运动生高山红景天在疲劳情况下能提高机体持续工作的时间,维持血压、心率的正常水高小鼠肝糖原的储备量;

降低运动后血清尿素氮含量;
加速体内尿素氮及血乳酸的骼肌产生运动。《素问•六节藏象论》曰:“肝者,罢极之本,魂之居也, 其华在爪, 其个特别复杂的生理生化过程。

总的说来,疲劳可分为生理疲劳和心理疲劳。

1982工作能力的作用①。强力宝能促进肌肉和肝脏有氧氧化能力的作用②。参宝片也能具有官的疲劳。肝脏作为人体重要的脏器,与运动性疲劳的关系极为密切。国际运动医学协会主席普罗科朴(Polo1Capur) 认为运动性疲劳问题是运动医学过度的训练、残酷的比赛引起的缺氧、强应激反应会导致机体的神经内分泌系统、心过去一段时间,抗运动性疲劳传统上单纯采用补的模式,现在,中医药抗疲劳出还认为“食气入胃,全赖肝木之气以疏泄之,而水谷乃化,气血方得以运生”,说明和血虚者,如服用阿胶补益,也具有良好的效果。临床上充分发挥阿胶的养血、补血、恢复正常,促进酸碱平衡的恢复,减少碱性物质的消耗⑦。机体的血量增加,以便增加通气/血流比值。肝内所贮存的血液就会更多的向机体全身肌腱和韧带等器官的力量。筋和筋膜向内连着五脏六腑,肝将脾输送来的精微之气浸、涉水等劳动或运动都称为“劳”, 而竞技体育由于其具有大运动量、高强度的加⑧。剑, 便无踪无影。阿娇日日夜夜在狮耳山、狼溪河附近狩猎。最后, 用利剑杀死了一奖牌呢?毫无疑问是靠长时间艰苦的训练,然而伴随现代竞技体育的强度越来越大,娇, 决心要找到救治此病的特效药物, 为民解忧。阿娇姑娘日以继夜地爬山涉水, 不竭性运动后小鼠肝脏超微结构的观察, 发现连续7 次的衰竭运动使肝细胞呈现明显筋”的观点、“肝主身之筋膜”的观点以及明•皇甫中《明医指掌》中的“劳伤乎肝,筋和筋膜把相邻的关节连在一起,对运动起着重要的作用;
并且,筋和筋膜向内连着进小白鼠耐力的提高。经论》有“肝藏血”的观点,另外,在《素问•五脏生成论》里,也有“人卧血归于景天圣露、补肾益元方、体复康、仙灵口服液及F3 口服液等。复方阿胶浆能显著提究[J].北京中医药大学学报,1997,20(4):37-40.具有多种代谢功能。血清谷草转氨酶、谷丙转氨酶升高在一定程度上反映了肝细胞的亢不抑,就会能协调精神、情趣和意志,使情绪稳定,思维敏捷,对运动技术水平的充分抗运动性疲劳的单味药主要有鹿茸、高山红景天、人参、淫羊藿和花粉等。实验抗运动性疲劳的中药复方主要有复方阿胶浆、高效强力饮、强力宝、参宝片、红可用,是强身健体的滋补佳品。阿胶中富含蛋白质降解成分,通过补血起到滋润皮肤劳感。” 运动性疲劳属中医“劳倦”范畴, 中医将劳力、劳役、强力举重、持重远行、劳模型组大鼠血清谷草转氨酶、谷丙转氨酶在此期间出现明显升高(P

浅淡存货信息化管理篇2

医院信息化管理 一、什么是医院信息化:
医院信息化是指医院以业务流程优化重组为基础,在一定的深度和广度上利用计算机技术、网络和通信技术及数据库技术,控制和集成化地管理医疗、护理、财务、药品、物资及研究、教学等活动中的所有信息,实现医院内、外部的信息共享和有效利用,提高医院的管理水平与综合发展实力的过程 二、我国医院信息化建设发展阶段:
医院管理信息系统在我国的应用,开始于20世纪80年代末期,大体上经历了计算机应用于收费、划价;
计算机网络技术应用于医院管理的各个环节;

数字化三个发展阶段,整个过程是与我国的整体信息化建设步伐相吻合的。2000年后随着通讯技术和光纤技术的发展,以及存储容量的提高,使影像信息的传输 和储存变得越来越方便,这就给真正意义上的电子病案的形成提供了契机。同时,指纹识别、数字签名技术的发展也给病案保存与传输的合法性提供了保证。在这一阶段,PACS(医学影像存储与传输系统)和LIS(临床试验信息系统)开始嵌人HIS,使HIS在功能上的全面提升成为可能。

三、我国医院信息化现状:
成绩:
(1) 发展的大环境已经形成(2)大型医院投巨资开发(3)医院信息化人才队伍逐步形成 (4)医院信息系统的应用基本取得成功(5)标准化工作得到重视 问题:
标准化问题、发展不平衡、法律不完善、医 院内部因素 四、医院信息化的意义:
医院信息化建设程度代表医院现代化管理水平高低和服务能力的多少。因此,各级医院把信息化建设作为医院工作重点,它是医院发展的重要标志。信息化能把医院领导从繁杂的管理中解脱出来,逐步使医院的管理现代化、科学化、规范化,从而实现医院管理向低成本、高效率的模式转变。成功的医院信息化建设会给医院带来巨大的效益。

(1) 信息化建设对医院管理的作用 1.1 提升医院的整体形象。信息化建设使老百姓切实地感受到了医院的正规化、现代化管理,增强了医院在当地的影响力。

1.2 开源节流,查漏补缺,实现人、财、物规范化管理信息建设从内部解决了管理漏洞和盲区。规范了管理流程,使医院的人、财、物处于全面受控状态,同时减少了资金占用,保证供应,增收节支效益显著。

1.3 提供辅助决策支持,降低管理成本 信息化能自动进行医院各项事务的统计和计算,大幅度提高管理数据的准确性和实时性,数据高度共享,无纸化信息传递,缩短决策周期,节约了日常办公消耗。从根本上改变管理者决策的方式和手段,让决策者能及时调整各种人员和物资的安排。

(2)信息化建设对医疗工作的作用 2.1 由于信息化建设加强了对患者挂号、病历、处方的管理,不仅可以帮助医院实现对医务人员工作的考核管理,动态了解医院的经营状况等,同时也从侧面减少了医院处方的流失,提高了医院的综合管理效益与经济效益。

2.2 在医院各部门之间进行数据通信,自动把信息送到各有关科室,易于实现全院性的各种统计、检索和分析。

2.3 医疗文书和医疗行为得到规范,在加速培养高水平医务人员上起到了极大的作用。

2.4 医院的“条码标识”技术,可以极大提高信息传递速度和减少错误。

1

浅淡存货信息化管理篇3

浅淡烟草行业内部专卖管理监督的信息化


     烟草行业的内部专卖管理监管工作是行业内部监督管理的重要组成部分,也是当前烟草专卖工作面临的重大课题。XX年以来,行业内部专卖管理监督工作在制度建设、机构设置、内部专卖管理监督检查等方面取得了明显成效。国家烟草专卖局编制了《行业内部专卖管理监督工作规范》,统一了标准,明确了省、市、县三级局专卖内管监督工作的权责和具体内容。各省、市、县级局也根据国家局要求不断完善和改进组织机构、机制设置和程序规范。然而,行业内管监督工作仍存在着许多问题和矛盾,日常监管“管什么”、“怎么管”不清楚,监管绩效难以评估,专卖内管机构落实不到位仍然是行业专卖内管工作中存在的主要问题。
  对于这些问题,根据国家局所号召的学习山西经验来看,以信息化为平台解决机制落实、量化监督、绩效评估、机构到位等重要问题,是解决行业内部专卖管理监督工作深化开展的根本途径。正如国家局对内管监督工作提出的要求:“信息化监管是加强内管工作的科学载体,也是内管工作方法创新的主要努力方向。”本文将以此为出发点,立足行业实际,结合山西经验,讨论和分析烟草行业内部专卖管理监督信息化建设的作用、困难及对策等问题。
  一、内部专卖管理监督信息化的作用
  根据山西经验,信息化为实施日常监督管理、实现有效的责任追究、加强垂直监督和同级监督提供了较好的方式,其在内部专卖管理监督方面的作用十分显著。
  有效实施日常监管,可操作性强。
  行业内部专卖管理监督长效机制的建设,其基础就在于如何实施日常监督管理,而信息化对于解决日常监督管理问题有诸多明显的优势。
  一是监督制度量化。通过信息化系统,可以将制定的机制或制度进一步量化,将具体的工作和责任的划分通过计算机系统的设置而体现出来,并将细分的工作与相对应的数据建立起联系,使工作的操作性大大增强。二是程序简捷化。通过信息化手段,在整个产销流程中的各个环节之间建立起多维的数据链接,按监管工作的具体要求设置不同类型的数据关系,非常简捷地实现违规行为的预警、处理、反馈,使整个监管过程痕迹化、过程化、简捷化。三是管理高效化。信息化使操作人员在繁杂的多部门协调中解脱出来,而专注于问题本身,通过信息系统快捷地找出问题根源,并迅速寻找最佳解决办法和责任人,从而进一步促使日常管理明确化,高效化。
  有效实施责任追究。
  由于内部专卖管理监督涉及多个部门,一旦出现违规问题,往往会造成各部门互相推诿,互不承担责任的情况。如果查出的问题得不到解决,责任人无法认清,则会造成整个内部专卖管理监督制度的失效。信息化则可以在落实制度时充当公正、公平的裁判员,只要通过计算机系统和计算机网络按责任追究制度的要求设置各参数之间的关系,问题出现后其责任源将一目了然。所有环节是否存在不规范的现象,都可以通过预警设置体现出来,并可通过整个网络对外公布,做到真正的智能预警、流程控制,实现公平、公正、公开。
  促进内管机构专业化,利于垂直监管和同级监管。
  国家局反复强调机构设置在整个内管工作中的重要性,其目的在于将各个部门的设立与运行落到实处,尤其要避免将内部专卖管理监督岗位设置为虚位。而信息化则在这方面发挥着突出的作用:首先,信息化监管使内管监督岗位拥有了实实在在的可操作的监督手段和工具;
其次,由于内管工作涉及多部门,信息化可使内管监督机构保持相对的独立性和专业性;
第三,信息化、网络化的监管进一步促进了资源和信息的共享。一方面,加强了上级部门对下级部门的监管,对下级部门的违规行为保持着强大的监管压力;
另一方面,加强了行业的同级监管。不仅可使同级部门形成相互监督的良性机制,同级部门间的违规行为也难以掩饰。
  二、内部专卖管理监督信息化建设的现状和存在的问题
  尽管内部专卖管理监督信息化已经成为落实内管监督工作的必然趋势,各地也在积极投入,但在信息化建设过程中仍然存在着一些问题或障碍。主要体现在以下几个方面:
  思想认识不足。
  从全行业来看,对于专卖内管监督工作,各省局都普遍有较高的认识,但市级局、县级局认识的差异相对较大。由于近两年的专卖内管检查以整顿规范、专项治理、专项检查等带有整顿性质的形式为主,这种形式虽然是解决突出问题的有效措施,但它仅限于事后监管,有短期性、阶段性。在这样的背景下,部分部门仅仅将内管监督工作当作一个专项行动或短期行为,没有充分认识到该项工作的长期性和实效性,导致许多制度、规定以应付考核和检查为主,流于形式、走过场,没有真正理解国家局落实内管监督工作的重要宏观意义,没有真正将落实该项工作的认识提升到“两个维护”上来。缺乏思想上的正确认识,使得内管监督信息化建设缺乏思想基础和精神动力,不能下狠心抓落实、抓实效。
  区域发展不平衡。
  由于内管监督工作刚刚起步,真正建立完善的内管监督体系的地区不多,使得区域间开展该项工作不平衡,体现在三个层面。一是基础制度建立不平衡。有些区域已经建立了完整的机制和制度,保障了内管监督工作有章可循。但有些区域还没有真正认清内管监督工作“管什么”,即使建立了制度,设置了相应的机构,也不知用于何处,如何运用,使信息化建设缺乏必要的制度和机构基础;
二是执行力不平衡。部分烟草企业习惯于原有的管理和监督模式,不愿打破旧的体制,对新推行的管理模式不善于运用,执行力不够,导致其思想和行动不会统一到着力解决如何通过创新落实新的监督管理模式这一问题上来,信息化成为空谈。三是信息化建设发展不平衡。由于内管监督信息化体系需要有一系列的相关系统的支持,如物流信息系统、预测信息系统、销售信息系统、仓储信息系统、零售户信息系统等诸多信息系统作为基础,然而,各区域这些信息系统的发展不平衡,有的没有完善各类信息系统,有的信息系统存在着系统漏洞,有的没有统一数据信息标准,有的信息系统之间缺乏兼容性。这种现状的存在,是内管监督信息化建设的主要障碍。
  人员素质有待提高。
  内部专卖管理监督是一项复合性、综合性较强的工作,要求管理者和内管监督工作人员有较强的综合能力,既掌握理论知识,又了解一线工作的实际,他们必须深入了解烟叶收购知识、订单预测知识、仓储知识、物流知识、专卖法律法规知识等多方面的知识,对计算机操作技能的要求也较高。而现阶段,专卖队伍的整体素质仍然有待提高,人员素质差次不齐,而一些地区,尤其是县级局,仍然缺乏符合这些要求的高素质管理工作人员。
  三、加强内部专卖管理监督信息化建设的对策
  针对上述问题,我们就内部专卖管理监督信息化建设提出以下三个方面的意见或建议。
  加强思想认识,提高执行力。
  从省局到基层,要不断强化全员对深入开展内管监督工作重要性的认识,转变思想,将内管监督作为工作的重点。通过加强内管监督的领导,采取一把手负总责,分管领导具体负责的领导方式,将宣传、教育、学习工作落到实处。有计划地开展员工教育和培训工作,加强法律法规教育,切实增强全员的自律意识和责任意识,营造良好的舆论氛围。
  同时,建立权责明确的岗位责任制,目标考核制,实现过程控制,加大责任追究力度,敢于碰硬,敢于问责,狠抓执行,狠抓监督,全面提高内部专卖管理监督工作的执行力。
  加强制度建设,完善信息系统。
  一是要建立并完善日常监管机制、工作规则、决策程序和违规行为处理机制,结合教育制度,形成事前、事中、事后的有效监督;
二是制度建设突出重点,要以到货确认、仓库管理、订单预测、零售户收货确认等工作为重点制定管理监督制度,密切监控销售异动、订单数据异动、库存异动等重点情况;
三是要完善配套的信息系统,确保信息系统无漏洞,并保证系统间的无缝对接。系统启用以后,根据国家局的要求,结合地方实际调适系统,使之真正实现流程驱动、源头治理、痕迹化管理。
  加强人员培训,培养复合型人才。
  内部专卖管理监督信息系统需要一批业务精、经验丰富、涉及领域广、技术强的高素质人才,因此,急需培养一批高素质复合型人才。在人才选择上,可以选用知识水平较高,基层工作经验较丰富,自学能力较强的人员作为培养对象;
在培养方式上,应当结合现场学习和专题学习,以从干中学、从问中学为主,不断增强参训人员的实践工作经验,提高员工解决实际问题的能力。有计划地开展专题培训工作,使工作人员熟悉工作流程,打造一支素质高、业务精、严于律已、执法严明的内部专卖管理监督队伍。
  从山西省局落实《烟草行业内部专卖管理监督工作规范》工作的实践来看,其创造性、创新性就在于他们将信息化建设作为整个工作落实的突破口和亮点,从而保证了内管机构和人员发挥作用,实现了机制、机构的长效可靠运转,这也是国家局反复强调学习山西内管监督工作经验的重要原因。总之,通过加强思想认识、提高执行力、完善制度建设、健全信息系统、培养综合型高素质人才等多项措施,将信息化作为解决内管监督工作落实问题的一把钥匙,必然能将内管监督工作提升到一个新的高度。

  

浅淡存货信息化管理篇4

《会计信息化—库存管理存货核算系统》

实验指导书


实验一 《 存货子系统》业务流程分析 1

实验二 《 存货子系统》数据处理流程分析 1

实验三 《存货子系统》功能分析 2

实验四 《存货子系统》数据字典及数据库设计 2

实验五 建立《存货子系统》数据库 3

实验六 《存货子系统》基本窗口设计 4

实验七 《存货子系统》软件编程——码表处理 44

实验八 《存货子系统》软件编程——单表处理 47

实验九 《存货子系统》软件编程——导入导出处理 53

实验一 《库存管理存货核算系统》业务流程分析

实验目的:

分析《库存管理存货核算系统》的业务流程,画出《存货子系统》业务流程图。

实验环境:

安装Windows操作系统、Word软件、Visio软件等。

实验方式:

分组进行。

上机机时:

2机时

实验内容:

1、《库存管理存货核算系统》业务流程描述。

为了深入了解存货核算与管理的特点,我们首先分析手工条件下存货核算与管理的业务处理流程,掌握存货出库、入库、期末结账、对账以及管理分析的过程。

存货包括原材料、包装物、低值易耗品、自制半成品、产成品等。在手工条件下,当存货到达企业并办理入库手续后,除了仓库保管员要登记存货数量账外,财会部门也要根据各种凭单(如入库单、验收报告等)登记存货明细账,反映存货增加等经济业务;
当各个部门领用存货时(如生产车间领用材料用于生产、销售部门领用产品用于销售),仓库保管员又要登记存货数量账,财会部门又要根据各种凭单(如入库单等)登记存货明细账,反映存货减少等经济业务;
定期编制记账凭证传递到总账子系统,登记总账。此外,还要及时为管理提供各种存货报告,如存货状态报告、ABC存货成本分析报告、超储积压存货分析报告等。下面我们对入库流程、出库流程以及期末结账和管理分析流程进行分析。

(1)存货核算与管理——入库流程分析

当采购部门或者供应商将存货送入仓库,生产部门或者物流部门将生产的产成品送入仓库,入库业务便开始进行了。

1仓库保管员依据采购订单和计划入库安排,检查供应商送货及时性,根据事先设定的送货接收标准,判定是否收货。

2如果可以收货,仓库保管员编制收货凭证,并将收货凭证和质检抽样存货移入质检部门,进行抽样检验。

3如果质检合格,将质检合格存货退返仓库,进行库存移库操作,并编制验收报告。

4将验收报告传递给仓库和财务部门。

5仓库保管员根据验收报告和收货凭证编制入库单。

6登记相应存货的入库数量和结存数量,即存货三级账,并将相应的单据传递到财务部门。

7财务贲门根据入库单、验收报告编制记账凭证。

8存货核算会计审核凭证,登记存货明系账,并将凭证传递到总账子系统。

9总账会计定期根据记账凭证登记总账。

(2)存货核算与管理——出库、期末处理与管理的分析流程

当生产部门提出领料申请、销售部门提出发运产品时,出库业务便开始进行;
到会计期末进行相应的处理,并提交各种管理分析报告。

1仓库保管员接到各车间、用料单位提出的领料申请,或者销售部门提出的发运请求,经审核单据后,编制出库单,并发出存货。

2仓库保管员登记相应存货出库数量和结存数据,即存货三级账,并将相应的单据传递到财会部门。

3财会部门会计人员根据出库单等单据编制记账凭证,登记存货明细账,并将凭证传递到总账子系统。由于存货种类繁多、数量大、收发业务频繁,存货成本计算比较复杂,为了满足不同企业对核算的需要,存货可以按计划成本计价,也可按实际成本计价。按实际成本计价时,存货成本可以按照加权平均、移动加权平均、先进先出、后进先出和个别计价等方法进行计算。

4期末处理。财务部门期末对存货进行实地盘点,编制盘盈盘亏表,经审批后通知仓库、财会部门修改相应的存货一级、二级以及三级账。由于存货数量账(三级账)、存货明细账(二级账)、总账(一级账)是由不同的人员编制的,因此,会出现账账不一致的问题。因此,期末还需要进行三级账的核对工作,很多企业要花费一定的人力物力每月必须进行对账。财务部门根据不同的计价方法和成本计算方法,分别计算存货成本差异、发出存货成本,并进行结账工作。

5存货分析。财务管理人员需要根据入库单、出库单、存货数量账等编制包括超储积压一览表、ABC成本分析表、仓库存货汇总表等内容的管理分析报告,并提出存货管理的改进意见和评价信息。

2、通过分析《存货子系统》的业务流程,利用Visio软件画出《存货子系统》的业务流程图。

业务流程图如图1所示:

图1 存货子系统业务流程图

实验二 《存货子系统》数据处理流程分析

实验目的:

通过《存货子系统》的业务流程图,进一步分析优化《存货子系统》的数据处理流程,画出《存货子系统》的数据处理流程图。

实验环境:

安装Windows操作系统、Word软件、Visio软件等。

实验方式:

分组进行。

实验内容:

1、通过分析《存货子系统》的业务流程图,利用Visio软件画出《存货子系统》的数据处理流程图。

根据前面对存货子系统业务流程图的分析,运用系统分析法,可以绘出存货子系统的数据流程图。依据模块结构设计的原则,通过对存货子系统的数据流程图进行模块划分,存货子系统可以划分为入库管理、出库管理、存管理、损管理和调拨管理等功能模块。数据流程图如图2所示:

图2 存货子系统数据流程图

实验三 《 存货子系统》功能分析

实验目的:

通过分析《 存货子系统》的业务流程与数据处理流程图,进一步分析《存货子系统》的功能。

实验环境:

安装Windows操作系统、Word软件、Visio软件等。

实验方式:

分组进行。

实验内容:

1、通过分析《存货子系统》的业务流程与数据处理流程图,画出《存货子系统》的功能图。

根据业务流程图和数据流程图,存货子系统基本可以划分为入库管理、出库管理、盘点管理、报损管理、调拨管理等五个功能模块。每个功能模块又可以继续划分为若干个功能模块,直到每个功能模块都能够表示相当独立的功能为止。我们的存货子系统侧重于核算模块的设计。主要的功能结构有入库管理、出库管理、盘点管理模块。功能结构图如图3所示:

图3 存货子系统功能结构图

实验四 《 存货子系统》数据字典及数据库设计

实验目的:

通过分析《存货子系统》的数据流程图,进一步写出《存货子系统》的数据字典。

利用PowerDesigner软件,建立《存货子系统》的PDM。

实验环境:

安装Windows操作系统、Word软件、Visio软件、PowerDesigner软件等。

实验方式:

分组进行。

实验内容:

1、通过分析《存货子系统》的数据流程图,写出《存货子系统》的数据字典。

数据流的描述

数据流编号

数据流名称

简述

数据流来源

数据流去向

F1

库存产品信息表

库存部门记录存货信息的表

库存模块

其他各模块

F2

库存盘点表

库存部门记录存货期末盘点情况的表

库存模块

账务模块

F3

入库单

库存部门开出的入库单

库存模块

采购模块

F4

出库单

库存部门开出的出库单

库存模块

销售模块

F5

销售退货入库单

库存部门开出的销售退货入库单

库存模块

销售模块

F6

采购申请单

库存不足时库存部门开出的采购申请单

库存模块

采购模块

F7

报损单

库存部门开出的报损单

库存模块

质管模块

F8

部门用途表

各部门领用存货类别表

库存模块

账务模块

F9

流水账单

存货出入情况的账单

库存模块

信息使用者

F10

期初余额表

库存期初余额

库存模块

信息使用者

处理逻辑的描述

处理逻辑编号

处理逻辑名称

简述

输入的数据流

输出的数据流

P1

验收货物

对采购入库的货物进行检验

采购单

验收单

P2

出库处理

对销售的货物进行出库检验

销售单

销售检验单

P3

审核调拨单

对调拨单申请进行审核

调拨单(申请)

调拨单(审核)

P4

盘点库存

对库存中的存货进行盘点

实物清单

库存盘点单

P5

审核报损单

对报损单申请进行审核

报损单

报损单(审核)

数据存储的描述

数据存储编号

数据存储名称

简述

S1

库存账目

存货入库、出库、退货、报损后修改当前库存量

p

< cla>

外部实体的描述

p

< cla>

外部实体编号

外部实体名称

简述

输入的数据流

输出的数据流

p

< cla>

E1

仓库部门

对存货保管、增减变化进行管理的部门

验收单、销售单

入库单、出库单

p

< cla>

E2

采购部门

采购存货的部门

入库单

采购单

p

< cla>

E3

销售部门

销售商品的部门

出库单

销售单

p

< cla>

E4

财务部门

进行账务处理的部门

库存盘点单、报损单

帐簿、报表

2、利用PowerDesigner软件,建立《存货子系统》的PDM。

实验五 建立《存货子系统》数据库

实验目的:

建立《存货子系统》的SQL Anywhere数据库。

删除所建数据库的transaction log file文件。

建立《存货子系统》的ODBC。

通过《存货子系统》的PDM,生成《 存货子系统》数据库中的各张表。。

实验环境:

安装Windows操作系统、PowerDesigner软件、PowerBuilder软件、SQL Anywhere数据库等。

实验方式:

分组进行。

实验内容:

1、在PowerBuilder中,建立《存货子系统》的SQL Anywhere数据库。

2、在Sybase 中心Sybase Central中,利用Utilities 工具中的Change Log File Information功能,删除所建数据库的transaction log file文件。

3、在PowerBuilder中,或在PowerBuilder中,建立《存货子系统》的ODBC。

4、在PowerDesigner AppModeler软件,连接《存货子系统》数据库。

5、通过《存货子系统》的PDM,利用PowerDesigner AppModeler软件,生成《存货子系统》数据库中的各张表。

数据库设计

1.码表设计

一 仓库表

仓库表

c_ch_ckb

字段名

类型长度

是否空

含义

ckb_code

char(6)

NOT NULL

仓库编号

ckb_name

char(20)

NULL

仓库名称

二 职员表

职员表

c_ch_zyb

字段名

类型长度

是否空

含义

zyb_code

char(6)

NOT NULL

职员编号

zyb_name

char(20)

NULL

职员名称

zyb_szbm

char(20)

NULL

所在部门

三 部门表

部门表

c_ch_bmb

字段名

类型长度

是否空

含义

bmb_code

char(6)

NOT NULL

部门编号

bmb_name

char(20)

NULL

部门名称

四 货位表

货位表

c_ch_hwb

字段名

类型长度

是否空

含义

hwb_code

char(6)

NOT NULL

货位编号

hwb_name

char(20)

NULL

货位名称

hwb_szck

char(20)

NULL

所在仓库

五 业务性质表

业务性质表

c_ch_ywxzb

字段名

类型长度

是否空

含义

ywxzb_code

char(6)

NOT NULL

业务性质编码

ywxzb_name

char(40)

NULL

业务性质名称

2.基本表设计

一 库存产品信息表

库存产品信息表

T_kcxx

字段名

类型长度

是否空

含义

*chbm

Char(10)

NOT NULL

存货编码

chmc

char(50)

NULL

存货名称

ggxh

Char (5)

NULL

规格型号

jldw

Char(10)

NULL

计量单位

chlb

Char(10)

NULL

存货类别

Chsx

Char(20)

NULL

存货属性

Jhjg

Char(10)

NULL

计划价格

ckjg

char(10)

NULL

参考价格

hw

char(10)

NULL

货位

sh

char(10)

NULL

审核标志

qyrq

Char(30)

NULL

启用日期

bz

char(100)

NULL

备注

二 存货结存表

存货结存表

T_chjcb

字段名

类型长度

是否空

含义

*chbm

Char(10)

NOT NULL

存货编码

qcsl

decimal(10,2)

NULL

本月期初数量

qcdj

decimal(10,2)

NULL

本月期初单价

qcje

decimal(10,2)

NULL

本月期初金额=本月期初单价*本月期初单价

ssl

decimal(10,2)

NULL

本月收数量

sje

decimal(10,2)

NULL

本月收金额

fsl

decimal(10,2)

NULL

本月发数量

fje

decimal(10,2)

NULL

本月发金额

jcsl

decimal(10,2)

NULL

本月结存数量

jcdj

decimal(10,2)

NULL

本月结存单价

jcje

decimal(10,2)

NULL

本月结存金额

三 入库单

入库单表

T_rkd

字段名

类型长度

是否空

含义

*rkdh

Char(10)

NOT NULL

*入库单编号(自动生成)

rkrq

Char(15)

NULL

入库单日期

ywbh

Char(15)

NULL

业务编号

ywyxm

Char(10)

NULL

业务员姓名

chbm

Char(10)

NULL

存货编码

sl

decimal(10,2)

NULL

数量

dj

decimal(10,2)

NULL

单价

je

decimal(10,2)

NULL

金额

cd

Char(10)

NULL

产地

gys

Char(10)

NULL

供应商

ck

Char(10)

NULL

仓库

hw

Char(10)

NULL

货位

shbz

Char(2)

NULL

审核标志

clbz

Char(2)

NULL

处理标志

shbz

Char(2)

NULL

收货标志

zdr

Char(10)

NULL

制单人

shr

Char(10)

NULL

审核人

四 出库单

出库单表

T_ckd

字段名

类型长度

是否空

含义

*ckdh

Char(10)

NOT NULL

*出库单编号(自动生成)

ckrq

Char(15)

NULL

出库单日期

ywbh

Char(15)

NULL

业务编号

ywyxm

Char(10)

NULL

业务员姓名

chbm

Char(10)

NULL

存货编码

sl

decimal(10,2)

NULL

数量

dj

decimal(10,2)

NULL

单价

je

decimal(10,2)

NULL

金额

yt

Char(10)

NULL

用途

bm

Char(10)

NULL

部门

ck

Char(10)

NULL

仓库

hw

Char(10)

NULL

货位

shbz

Char(2)

NULL

审核标志

clbz

Char(2)

NULL

处理标志

shbz

Char(2)

NULL

收货标志

zdr

Char(10)

NULL

制单人

shr

Char(10)

NULL

审核人

bz

char(100)

NULL

备注

五 销售退货入库单

销售退货入库单

T_xsthrkd

字段名

类型长度

是否空

含义

*ckthdh

Char(10)

NOT NULL

*销售退货单编号(自动生成)

ckthdrq

Char(15)

NULL

销售退货单日期

ywbh

Char(15)

NULL

业务编号

ywyxm

Char(10)

NULL

业务员姓名

chbm

Char(10)

NOT NULL

存货编码

sl

decimal(10,2)

NULL

数量

dj

decimal(10,2)

NULL

单价

je

decimal(10,2)

NULL

金额

bm

Char(10)

NULL

部门

ck

Char(10)

NULL

仓库

hw

Char(10)

NULL

货位

shbz

Char(2)

NULL

审核标志

clbz

Char(2)

NULL

处理标志

shbz

Char(2)

NULL

收货标志

zdr

Char(10)

NULL

制单人

shr

Char(10)

NULL

审核人

thyy

Char(100)

NULL

退货原因

六 采购申请单

采购申请单

ch_cgsqd

字段名

类型长度

是否空

含义

*sqdbh

Char(10)

NOT NULL

*申请单编号(自动生成)

rq

Char(15)

NULL

日期

chbm

Char(10)

NULL

存货编码

chmc

Char(20)

NULL

存货名称

ggxh

Char(10)

NULL

规格型号

jldw

Char(4)

NULL

计量单位

chlb

Char(10)

NULL

存货类别

chsx

Char(10)

NULL

存货属性

xqsl

decimal(10,2)

NULL

需求数量

chr

Char(10)

NULL

制单人

shr

Char(10)

NULL

审核人

七 报损单

入库退货单

T_rkth

字段名

类型长度

是否空

含义

*bsbh

Char(10)

NOT NULL

*报损单编号(自动生成)

bsrq

Char(15)

NULL

报损单日期

ywyxm

Char(10)

NULL

业务员姓名

chbm

Char(10)

NULL

存货编码

sl

decimal(10,2)

NULL

数量

dj

decimal(10,2)

NULL

单价

je

decimal(10,2)

NULL

金额

cd

Char(10)

NULL

产地

gys

Char(10)

NULL

供应商

ck

Char(10)

NULL

仓库

hw

Char(10)

NULL

货位

shbz

Char(2)

NULL

审核标志

clbz

Char(2)

NULL

处理标志

shbz

Char(2)

NULL

收货标志

zdr

Char(10)

NULL

制单人

shr

Char(10)

NULL

审核人

bsyy

Char(100)

NULL

报损原因

八 部门用途表

部门用途表

T_bmytb

字段名

类型长度

是否空

含义

*bmbm

Char(10)

NOT NULL

*部门编码

bmmc

Char(20)

NULL

部门名称

ytdm

Char(10)

NULL

用途代码

ytmc

Char(10)

NULL

用途名称

xmfy

Char(10)

NULL

项目费用

九 流水账单

流水账单

ch_lszd

字段名

类型长度

是否空

含义

*xh

char(3)

NOT NULL

序号

sj

Char(15)

NULL

时间

djh

char(2)

NULL

单据号

ywxz

char(4)

NULL

业务性质

chbm

char(10)

NULL

存货编码

chmc

char(20)

NULL

存货名称

sl

decimal(10,2)

NULL

数量

dj

decimal(10,2)

NULL

单价

je

decimal(10,2)

NULL

金额

十 期初余额表

期初余额表

T_qcyeb

字段名

类型长度

是否空

含义

chbm

Char(10)

NULL

存货编码

chmm

Char(50)

not NULL

存货名称

sl

decimal(10,2)

NULL

数量

dj

decimal(10,2)

NULL

单价

je

decimal(10,2)

NULL

金额

cd

char(50)

null

产地

gys

char(50)

null

供应商

ck

Char(10)

NULL

仓库

hw

Char(10)

NULL

货位

bz

char(100)

NULL

备注

十一 存货盘点表

存货盘点表

T_chpdb

字段名

类型长度

是否空

含义

pddbh

Char(10)

not NULL

盘点单编号

pddrq

Char(15)

NULL

盘点单日期

ywyxm

Char(10)

NULL

业务员姓名

bm

Char(10)

NULL

部门

chbm

Char(10)

not NULL

存货编码

chmc

char(20)

null

存货名称

hw

char(10)

null

货位

chdj

decimal(10,2)

NULL

存货单价

zcsl

decimal(10,2)

NULL

账存数量

pdsl

decimal(10,2)

NULL

盘点数量

yksl

decimal(10,2)

NULL

盈亏数量

zdr

char(10)

NULL

制单人

shr

char(10)

NULL

审核人

实验六 《 存货子系统》基本窗口设计

实验目的:

《存货子系统》窗口设计。

《存货子系统》全局变量设计。

《存货子系统》全局函数设计。

实验环境:

安装Windows操作系统、PowerBuilder软件、SQL Anywhere数据库、教师提供的软件原型平台等。

实验方式:

分组进行。

实验内容:

1、《存货子系统》全局变量设计。

全局变量定义

string g_oper_code,g_oper_name,g_sheet_code,g_print

string g_date,g_dept,g_dept_day,g_func_code

string g_dept_month_date="2000-01-01"

string g_orig,g_warehouse

string g_sp_info,g_menu_name

boolean gb_db_connected

string g_price_power

decimal g_dept_interval

string g_color="80",g_color_key="80"

string g_IPAddress,g_MachineName

string g_log_rec="0" //"记录日志标记 1":记录,"0":不记录

string g_sys_name="重庆工学院会计学院 实验案例"

string g_comp_name="重庆工学院 会计学院会计学院 "

string g_proj_code="",g_proj_name=""

string g_drive="d:\io" ,g_pathfilename //导入导出路径

string g_dir_sc="" //自动生成路径

integer g_sheet_code_len =10 //单据长度

integer g_len1=3,g_len2=7,g_len3=11,g_len4=19 //小区、大楼、单元、房间编码长度

integer g_len4_1=3,g_len4_2=3 //g_len4_1楼层长度 g_len4_2 房间长度

string g_zth="001" //帐套号

string g_nkjqj="2005" //年会计期间

2、《存货子系统》全局函数设计。

函数名

函数功能

f_oper_check

判断操作员输入的编码及密码是否合法

gf_dw_count

显示数据窗口的行数

f_where_exist

判断有无WHERE条件

f_string

字符变量的处理

f_sql

sqlca.sqlcode判断,0、100:false,-1:true

gf_ini_table

码表初始化

f_i_o

导入导出初始

f_dw_test_repeat

对数据窗口中的导入数据进行重复性测试

f_dw_test_repeat_del

删除导入导出中的重复数据

函数名

f_oper_check

返回值类型

integer

函数功能

判断操作员输入的编码及密码是否合法

参数定义

r_oper_code:string

r_pass:string

脚本

string r_oper_pass

SELECT pass INTO :r_oper_pass FROM c_operator WHERE oper_code= :r_oper_code;

IF sqlca.sqlcode = 100 then

messagebox(g_sys_name,"您提供的操作员号码不正确!")

return 1

ELSE

IF trim(r_oper_pass) trim(r_pass) THEN

messagebox(g_sys_name,"您提供的密码和操作员号不符!~r~r是否没有区分大小写?")

return 2

END IF

END IF

return 0

函数名

gf_dw_count

返回值类型

函数功能

显示数据窗口的行数

参数定义

r_dw_table: datawindow

r_sle_count: singlelineedit

脚本

long r_row,r_count

r_count=r_dw_table.ROWCOUNT()

r_row=r_dw_table.getrow()

IF r_row>0 and r_count>0 THEN

r_sle_count.TEXT=string(r_row)+"/"+string(r_count)

ELSEIF r_count>0 then

r_sle_count.TEXT="共"+string(r_count)+"条"

ELSE

r_sle_count.TEXT=""

END IF

return


函数名

f_where_exist

返回值类型

integer

函数功能

判断有无WHERE条件

参数定义

r_orig_sql: string

脚本

if pos(r_orig_sql,"WHERE")>0 or pos(r_orig_sql,"where")>0 then

return 1 //有WHERE条件

else

return 0 //无WHERE条件

end if

函数名

f_string

返回值类型

string

函数功能

字符变量的处理

参数定义

r:string

脚本

IF ISNULL(r) OR TRIM(r)="" THEN

r="%"

ELSE

r= r+"%"

END IF

RETURN r

函数名

f_sql

返回值类型

boolean

函数功能

sqlca.sqlcode判断,0、100:false,-1:true

参数定义

脚本

if sqlca.sqlcode=-1 then

messagebox("sql错误信息",sqlca.sqlerrtext)

rollback;

return true

else

commit;

return false

end if

函数名

gf_ini_table

返回值类型

函数功能

码表初始化

参数定义

脚本

//职位码表

DELETE FROM c_postion ;

INSERT INTO c_postion(postion_code, postion_name) VALUES ("01","董事长") ;

INSERT INTO c_postion(postion_code, postion_name) VALUES ("02","副董事长") ;

INSERT INTO c_postion(postion_code, postion_name) VALUES ("03","财务总监") ;

INSERT INTO c_postion(postion_code, postion_name) VALUES ("04","销售总监") ;

//学历码表c_edu_level

INSERT INTO c_edu_level(edu_level_code,edu_level_name ) VALUES ("01","博士") ;

INSERT INTO c_edu_level(edu_level_code,edu_level_name ) VALUES ("02","硕士") ;

INSERT INTO c_edu_level(edu_level_code,edu_level_name ) VALUES ("03","学士") ;

//凭证类型码表

DELETE FROM ZW_C_PZLX ;

INSERT INTO ZW_C_PZLX(PZLX_CODE,PZLX_NAME) VALUES ("CH","转账凭证") ;

INSERT INTO ZW_C_PZLX(PZLX_CODE,PZLX_NAME) VALUES ("SK","收款凭证") ;

INSERT INTO ZW_C_PZLX(PZLX_CODE,PZLX_NAME) VALUES ("FK","付款凭证") ;

if f_sql() then return

函数名

f_i_o

返回值类型

函数功能

导入导出初始

参数定义

脚本

SetPointer(HourGlass!)

delete from save_import ;

//导入导出码表

delete from c_save_import ;

insert into c_save_import values ("01","导入");

insert into c_save_import values ("02","导出");

delete from c_mean ;

insert into c_mean values ("01","固定");

insert into c_mean values ("02","自由");

insert into c_mean values ("03","生成");

delete from c_file_type ;

insert into c_file_type values ("01","dbf");

insert into c_file_type values ("02","txt");

insert into c_file_type values ("03","excel");

insert into c_file_type values ("04","sql");

delete from c_interval ;

insert into c_interval values ("00","无");

insert into c_interval values ("01","每日");

insert into c_interval values ("02","每周");

insert into c_interval values ("03","每月");

insert into c_interval values ("04","每季度");

insert into c_interval values ("05","每年");

delete from c_flag_code ;

insert into c_flag_code values ("01","成功");

insert into c_flag_code values ("02","失败");

if f_sql() then return

INSERT INTO save_import VALUES (

"001","c_operator","dw_c_operator_grid","01","02","D:\io\data",

"c_operator","01","人员信息","00","000","2002-01-01","2002-01-01","01","","");

INSERT INTO save_import VALUES (

"001","c_operator","dw_c_operator_grid","02","02","D:\io\data",

"c_operator","01","人员信息","00","000","2002-01-01","2002-01-01","01","","");

SetPointer(arrow!)

if f_sql() then

return

else

// messagebox("提示","导入导出表初始成功!")

end if

return

函数名

f_dw_test_repeat

返回值类型

long

函数功能

对数据窗口中的导入数据进行重复性测试

参数定义

r_type:string

r_dw: datawindow

r_sle: singlelineedit

脚本

long r_row,r_rowcount,r_count,r_select,r_return=0

string r_primary[]

r_rowcount=r_dw.rowcount()

r_type=lower(r_type)

CHOOSE CASE r_type

CASE "c_operator"

r_count=1 //关键字段数

r_primary[r_count]=""

FOR r_row=1 TO r_rowcount

r_primary[1]=r_dw.getitemstring(r_row,"oper_code") //取关键字

select count(*) into :r_select from c_operator where c_operator.oper_code = :r_primary[1] ;

if r_select>0 then

r_dw.SelectRow(r_row, TRUE)

r_return=r_return + 1

end if

NEXT

CASE ELSE

END CHOOSE

return r_return

函数名

f_dw_test_repeat_del

返回值类型

long

函数功能

删除导入导出中的重复数据

参数定义

r_type:string

r_dw: datawindow

r_sle: singlelineedit

脚本

long r_row,r_rowcount,r_count,r_select,r_return=0

string r_primary[]

r_type=lower(r_type)

r_rowcount=r_dw.rowcount()

CHOOSE CASE r_type

CASE "c_operator"

r_count=1

r_primary[r_count]=""

FOR r_row=1 TO r_rowcount

r_primary[1]=r_dw.getitemstring(r_row,"oper_code")

delete from c_operator where c_operator.oper_code = :r_primary[1] ;

NEXT

CASE "c_supp"

r_count=1 //关键字段数

r_primary[r_count]=""

FOR r_row=1 TO r_rowcount

r_primary[1]=r_dw.getitemstring(r_row,"supp_code") //取关键字

delete from c_supp where c_supp.supp_code = :r_primary[1] ;

NEXT

CASE ELSE

END CHOOSE

f_sql()

return r_return

3、通过分析,设计《存货子系统》的通用窗口。

窗口名

窗口功能

w_start

登陆窗口

W_set

系统设置窗口

W_code

码表输入、修改窗口

w_sheet_input

单表输入窗口

W_select

综合查询窗口

w_i_o_ini

数据导入导出初始窗口

w_i_o

数据导入导出窗口

窗口名

w_start

Message参数

主要功能

登陆窗口

实例变量声明

窗口函数

控件事件

脚本

w_start:

open!

//居中

Environment a

Integer w,h

GetEnvironment(a)

w=PixelsToUnits(a.screenwidth,xpixelstounits!)

h=PixelsToUnits(a.screenheight,ypixelstounits!)

move((w - width)/2,(h - height)/2)

this.title="☆" + g_sys_name + " 系统登录☆"

确定

cb_ok :

clicked!

string r_func_code,r_menu_name,r_date,r_sp_info

long r_result

r_result=f_oper_check(sle_oper_code.text,sle_pass.text)

IF r_result0 THEN

If r_result=1 Then

sle_oper_code.Text=""

sle_oper_code.SetFocus()

ElseIf r_result=2 Then

sle_pass.Text=""

sle_pass.SetFocus()

End If

return

End If

g_date=string(today())

g_oper_code=sle_oper_code.text

SELECT oper_name ,func_code ,sheet_code,DEPT_CODE,postion_code INTO :g_oper_name,:r_func_code,:g_sheet_code,:g_dept,:r_sp_info

FROM c_operator

WHERE oper_code = :g_oper_code ;

//操作人员的打印权限

SELECT print_yn,menu_name

INTO :g_print,:g_menu_name

FROM c_func

WHERE func_code = :r_func_code ;

close(parent)

open(w_set)

退出

cb_cancel:

clicked!

close(parent)

窗口名

W_set

Message参数

主要功能

系统设置窗口

实例变量声明

窗口函数

wf_change_menu(r_menu_name)

参数:string r_menu_name

返回值类型:integer

string ls_menu

select s_menu into :ls_menu

from c_menu where menu_group=:r_menu_name;

choose case ls_menu

case "m_crm"

w_genapp_frame.ChangeMenu(m_crm)

f_set_purview(r_menu_name,m_crm)

case else

Return 1

end choose

Return 0

控件事件

脚本

W_set:

Open!

dw_dept.SetTransObject ( sqlca )

dw_dept.insertrow(0)

dw_dept.setitem(1,1,g_dept)

em_date.text=string(today())

g_date=em_date.text

Environment a

Integer w,h

GetEnvironment(a)

w=PixelsToUnits(a.screenwidth,xpixelstounits!)

h=PixelsToUnits(a.screenheight,ypixelstounits!)

move((w - width)/2,(h - height)/2)

this.title=g_sys_name + " 设置"

确定

cb_set:

clicked!

string r_dept_day,r_date1

string r_date,r_dept

string r_dept_month_date

r_date=em_date.text

r_dept=dw_dept.getitemstring(1,1)

g_dept=r_dept

g_date=r_date

setpointer(hourglass!)

open(w_genapp_frame)

If wf_change_menu(g_menu_name)0 Then

messagebox(g_sys_name,"系统没有给您提供可用的菜单!~r程序将终止!")

halt

Else

End If

setpointer(arrow!)

close(parent)

退出

cb_cancel:

clicked!

close(parent)

窗口名

W_code

Message参数

Message.StringParm

主要功能

码表管理窗口

实例变量声明

string i_type,i_code

integer i_tab[30]

long i_row,i_col

string i_orig_sql

string i_str_precolumn=""

integer i_int_clicktime=0

string i_title //窗口的标题变量

窗口函数1

f_exit()

参数:无

返回值类型:无

INTEGER NET,RTN

dw_table.accepttext()

IF dw_table.ModifiedCount( ) > 0 OR dw_table.DeletedCount( ) >0 THEN

Net = MessageBox("提示", "是否需要保存所修改的信息?", Exclamation!, YESNO!, 1)

IF Net = 1 THEN

rtn = dw_table.Update( )

IF rtn = 1 THEN

COMMIT USING SQLCA;

ELSE

ROLLBACK USING SQLCA;

END IF

END IF

END IF

窗口函数2

get_tab_order()

参数:无

返回值类型:无

integer j

FOR j=1 TO i_col

i_tab[j]=dw_table.setTabOrder(j, 0)

NEXT

窗口函数3

set_tab_0()

参数:无

返回值类型:无

integer j

FOR j=1 TO i_col

dw_table.SetTabOrder(j, 0)

NEXT

cb_modi.TEXT="&X不修改"

cb_delete.enabled=false

cb_save.enabled=false

窗口函数4

set_tab_old()

参数:无

返回值类型:无

integer j

FOR j=1 TO i_col

dw_table.SetTabOrder(j, i_tab[j])

NEXT

cb_modi.TEXT="&X可修改"

cb_modi.enabled=true

cb_save.enabled=true

控件事件

脚本

W_code:

Open!

//确定数据窗口dw_table的DATAOBJECT

//确定窗口的标题

//将dw_table的数据源Select描述赋予实例变量 String i_orig_sql

i_type=Message.StringParm

CHOOSE CASE i_type

CASE "c_func"

dw_table.DATAOBJECT="dw_c_func"

i_title="系统操作功能码表"

CASE "c_postion"

dw_table.DATAOBJECT="dw_c_postion"

i_title="操作员职位码表"

CASE "c_edu_level"

dw_table.DATAOBJECT="dw_c_edu_level"

i_title="学历码表"

CASE "c_supp_attr"

dw_table.DATAOBJECT="dw_c_supp_attr"

i_title="往来单位属性"

CASE ELSE

messagebox("提示","无此参数"+i_type)

return

END CHOOSE

dw_table.SetTransObject ( sqlca )

sle_count.TEXT=""

i_orig_sql=dw_table.Describe("DataWindow.Table.Select")

i_col=integer(dw_table.object.datawindow.column.count) //数据窗口的列数

get_tab_order()

SET_TAB_0()

this.title=i_title + "维护"

//窗口居中

Environment a

Integer w,h

GetEnvironment(a)

w=PixelsToUnits(a.screenwidth,xpixelstounits!)

h=PixelsToUnits(a.screenheight,ypixelstounits!)

move((w - width)/2,(h - height)/2)

W_code:

closequery!

f_exit()

dw_table:

clicked!

this.setrow(row)

i_row=this.getrow()

IF i_row>0 THEN

dw_table.SELECTROW(0,FALSE)

dw_table.SELECTROW(i_row,TRUE)

i_code=dw_table.getitemstring(i_row, 1)

if cb_modi.TEXT="&X可修改" then

cb_delete.enabled=true

end if

END IF

gf_dw_count(this,sle_count)

dw_table:

double clicked!

//取得上次单击的列对象 string i_str_precolumn=""

//判断上次是按升还是按降来排序 integer i_int_clicktime=0

string str_column,str_format

str_column=dwo.name //取点击的对象

if right(str_column,2) "_t" then return

//对于列标题,取得的对象是列名+"_t"

str_column=left(str_column,len(str_column) - 2)

if str_column=i_str_precolumn then //已点击过

if i_int_clicktime=0 then //0表示原来按降序

i_int_clicktime=1

str_format=str_column + " A"

else

i_int_clicktime=0

str_format=str_column + " D"

end if

else

i_int_clicktime=1 //1表示原来按升序

str_format=str_column + " A"

end if

i_str_precolumn = str_column

this.SetSort(str_format)

this.Sort()

dw_table:

error!

BEEP(5)

dw_table:

itemerror!

return 1

dw_table:

itemchanged!

//用于控制对码表中的数据进行相关操作

//控制码表编码的唯一性:输入不能重复,数据库中已经存在的编码不能再次输入

INTEGER r_col

String r_code,r_code1,r

LONG r_row,r_rowcount,i,j

r_col=THIS.Getcolumn( ) //当前数据窗口列的序号

r_row=THIS.GETROW() //数据窗口当前行

r_rowcount=THIS.ROWCOUNT()

IF r_col=1 THEN

IF THIS.AcceptText( ) = 1 THEN

r_code = THIS.GetitemString(r_row, r_col)

//输入不能重复

FOR i=1 TO r_rowcount

IF ir_row THEN

r_code1 = THIS.GetitemString(i, r_col)

IF r_code=r_code1 THEN

BEEP(5)

MESSAGEBOX("提示","编码输入重复! 请重新输入!")

THIS.Setitem(r_row, r_col,"") //当前行当前列的值设为空

RETURN 1

END IF

END IF

NEXT

//数据库中已经存在的编码不能再次输入

CHOOSE CASE i_type

CASE "c_func"

SELECT func_code INTO :r FROM c_func WHERE func_code= :r_code ;

CASE "c_postion"

SELECT postion_code INTO :r FROM c_postion WHERE postion_code= :r_code ;

CASE "c_edu_level"

SELECT edu_level_code INTO :r FROM c_edu_level WHERE edu_level_code= :r_code ;

CASE "c_supp_attr"

SELECT supp_attr_code INTO :r FROM c_supp_attr WHERE supp_attr_code= :r_code ;

END CHOOSE

IF sqlca.sqlcode 100 then

MESSAGEBOX("提示","该编码已经存在! 请重新输入!")

THIS.Setitem(r_row, r_col,"")

RETURN 1

END IF

END IF

END IF

确定

cb_retr:

clicked!

//按查询条件对码表中的数据进行查询

string r_code,r_name

long r_row

string r_where_sql,r_modi_sql,r_state

r_code=trim(sle_code.text)

r_name=trim(sle_name.text)

r_code=f_string(r_code) //x=x+"%"

r_name=f_string(r_name)

//r_code=" ~""+ r_code +"~"" //SQL server

//r_name=" ~""+ r_name +"~"" //SQL server

r_code="~""+ r_code +"~"" //SQL anywhere

r_name="~""+ r_name +"~"" //SQL anywhere

CHOOSE CASE i_type

CASE "c_func"

r_where_sql= " where c_func.func_code like " + r_code &

+" and c_func.func_name like " + r_name

CASE "c_postion"

r_where_sql= " where c_postion.postion_code like " + r_code &

+" and c_postion.postion_name like " + r_name

CASE "c_edu_level"

r_where_sql= " where c_edu_level.edu_level_code like " + r_code &

+" and c_edu_level.edu_level_name like " + r_name

CASE "c_supp_attr"

r_where_sql= " where c_supp_attr.supp_attr_code like " + r_code &

+" and c_supp_attr.supp_attr_name like " + r_name

END CHOOSE

//r_modi_sql = "DataWindow.Table.Select="" + i_orig_sql + r_where_sql + """ //SQL server

r_modi_sql = "DataWindow.Table.Select=~"" + i_orig_sql + r_where_sql + "~"" //SQL anywhere

r_state = dw_table.Modify(r_modi_sql)

IF r_state = "" THEN

r_row=dw_table.Retrieve( )

dw_table.setfocus()

ELSE

MessageBox("提示", "数据窗口修改失败!" + r_state)

return

END IF

gf_dw_count(dw_table,sle_count)

SET_TAB_0()

if r_row>0 then

dw_table.scrolltorow(1)

dw_table.SELECTROW(0,FALSE)

dw_table.SELECTROW(1,TRUE)

end if

复位

cb_reset:

clicked!

dw_table.reset()

sle_count.TEXT=""

增加

cb_insert:

clicked!

long r_row

dw_table.INSERTROW(0)

r_row=dw_table.rowcount()

dw_table.SCROLLTOROW(r_row)

dw_table.setfocus()

dw_table.SetColumn(1)

dw_table.setrow(r_row)

dw_table.setfocus()

dw_table.SELECTROW(0,FALSE)

dw_table.SELECTROW(r_row,TRUE)

set_tab_old()

gf_dw_count(dw_table,sle_count)

不修改

cb_modi:

clicked!

IF THIS.TEXT="&G可修改" THEN

SET_TAB_0()

ELSE

set_tab_old()

dw_table.setrow(dw_table.rowcount())

dw_table.setcolumn(1)

dw_table.setfocus()

dw_table.selectrow(0,false)

dw_table.selectrow(dw_table.rowcount(),true)

END IF

删除

cb_delete:

clicked!

INTEGER NET

long R_ROW,r_count

if not dw_table.IsSelected(i_row) then return

Net = MessageBox("提示", "是否真的要删除所选中的行?", Exclamation!, YESNO!, 2)

IF Net = 2 THEN return

this.enabled=false

dw_table.DELETEROW(i_row)

gf_dw_count(dw_table,sle_count)

保存

cb_save:

clicked!

integer rtn, NET

Net = MessageBox("提示", "是否真的要保存?", Exclamation!, YESNO!, 1)

IF Net 1 THEN return

dw_table.accepttext()

IF dw_table.ModifiedCount( ) > 0 OR dw_table.DeletedCount( ) >0 THEN rtn = dw_table.Update( )

IF rtn = 1 THEN

COMMIT USING SQLCA;

messagebox("提示","保存成功!")

cb_reset.TriggerEvent(Clicked!)

ELSE

ROLLBACK USING SQLCA;

messagebox("提示","保存失败!")

END IF

END IF

set_tab_0()

if cb_reset.TEXT="&X可修改" then

cb_save.enabled=true

end if

打印

cb_print:

clicked!

str_printtool l_str_printtool //定义结构,存放调用参数

l_str_printtool.str_dw = dw_table//赋值:需要打印的datawindow名字

l_str_printtool.str_title_1 = " "//主标题

l_str_printtool.str_title_2 = ""//副标题,如果赋值"today" 打印时自动显示当前日期

l_str_printtool.str_title_3 = g_date//脚注,如果赋值"today" 打印时自动显示当前日期

l_str_printtool.str_underline_1=1//主标题下划线,1有下划线,其它无下划线

l_str_printtool.str_underline_2=0//副标题下划线,1有下划线,其它无下划线

l_str_printtool.str_underline_3=0//脚注下划线,1有下划线,其它无下划线

l_str_printtool.str_align_3=3//脚注对齐方式,1右对齐,2中间对齐,3左对齐,其它无效

openWithparm(w_printtool,l_str_printtool)//调用打印窗口

//long job

//INTEGER NET,NET1

//

//Net = MessageBox("提示", "是否真的要打印?", Exclamation!, YESNO!, 1)

//IF Net = 1 THEN

// Net1 = MessageBox("提示", "请准备好打印机!", Exclamation!, YESNO!, 1)

// IF NET1=1 THEN

// THIS.ENABLED=FALSE

// job = PrintOpen( )

// PrintDataWindow(job, dw_table)

// PrintClose(job)

// MessageBox("提示", "打印完毕!")

// THIS.ENABLED=TRUE

// END IF

//END IF

退出

cb_cancel:

clicked!

close(parent)


窗口名

W_sheet_input

Message参数

Message.StringParm

主要功能

单表管理窗口

实例变量声明

string i_type

integer i_col, i_col_count //数据窗口的列数

datawindowchild i_dwc,i_dwc_supp_attr_code

long i_row

string i_str_precolumn=""

integer i_int_clicktime=0

string i_form, i_where_sql,i_modi_sql,i_orig_sql,i_orig_sql_new

long i_x,i_y,i_width,i_height

string ename[],coltype[],col_width[], col_height[],col_height_t[]

double col_y[],col_y_t[],col_interval[],col_interval_t[]

integer i_col_copy_count

string i_col_copy[]

string i_title//窗口的标题变量

窗口函数

f_itemchanged(r_code)

参数:string r_code

返回值类型:integer

string r_code1

CHOOSE CASE i_type

CASE "c_operator"

select oper_code into :r_code1 from c_operator where oper_code=:r_code;

END CHOOSE

if sqlca.sqlcode=0 then

CHOOSE CASE i_type

CASE "c_operator"

messagebox("提示","该编码已经存在! ~r~n请重新输入!")

dw_free.setitem(dw_free.getrow(),"oper_code","")

return 1

END CHOOSE

END IF

return 0

控件事件

脚本

W_sheet_input:

Open!

string r_modi,r_col,r_col_name

integer i

i_type=Message.StringParm

CHOOSE CASE i_type

CASE "c_operator"

dw_table.DATAOBJECT="dw_c_operator_grid"

dw_free.DATAOBJECT="dw_c_operator_free"

dw_print.DATAOBJECT="dw_c_operator_free"

i_title="操作员情况表"

CASE "c_corp"

dw_table.DATAOBJECT="dw_c_corp_grid"

dw_free.DATAOBJECT="dw_c_corp_free"

dw_print.DATAOBJECT="dw_c_corp_free"

i_title="公司信息"

END CHOOSE

i_col=integer(dw_table.object.datawindow.column.count) //数据窗口的列数

//注意:只有dw_free中挂的下拉数据窗口是带retrieve参数的,dw_table,dw_print均未带

FOR i=1 TO i_col

r_col = "#"+string(i) + ".Name" // "#i"代表第i列, #1.Name为第一列列名.

ename[i]=dw_free.describe(r_col) //ename[i]放第i列列名.

coltype[i]=dw_free.describe(ename[i] + ".ColType")

col_width[i]=dw_free.describe(ename[i] + ".width")

col_height[i]=dw_free.describe(ename[i] + ".height")

col_y[i]=Double(dw_free.describe(ename[i] + ".y"))

col_height_t[i]=dw_free.describe(ename[i] + "_t.height")

col_y_t[i]=Double(dw_free.describe(ename[i] + "_t.y"))

if dw_free.getchild(ename[i],i_dwc)=1 then

i_dwc.settransobject(sqlca)

i_dwc.retrieve("%")

CHOOSE CASE ename[i]

CASE "supp_attr_code"

i_dwc_supp_attr_code=i_dwc

CASE ELSE

END CHOOSE

end if

NEXT

dw_table.settransobject(sqlca)

dw_free.settransobject(sqlca)

dw_print.settransobject(sqlca)

dw_free.sharedata(dw_table)

dw_free.sharedata(dw_print)

cb_increase.triggerevent(clicked!)

rb_free.triggerevent(clicked!)

rb_free.checked=true

dw_table.x=dw_free.x

dw_table.y=dw_free.y

dw_table.width=dw_free.width

dw_table.height=dw_free.height

this.title=i_title + "输入"

dw_table:

buttonclicked!

string r_object,r_type, r_code,r_col

r_object = String(dwo.name)

CHOOSE CASE i_type

CASE "c_operator"

CHOOSE CASE r_object

CASE "cb_func_code" //所有按钮以cb_开头(命名规则:cb_+列名)

r_type="c_func" //选择的码表

CASE "cb_postion_code"//所有按钮以cb_开头(命名规则:cb_+列名)

r_type="c_postion"//选择的码表

END CHOOSE

CASE ELSE

return

END CHOOSE

openwithparm(w_code_sheet_inqu,r_type)

r_code=message.stringparm

r_col=mid(r_object,4) //取按钮对应的列名

dw_free.setitem(dw_free.getrow(),r_col,r_code)

dw_table:

double clicked!

String ls,ld,r_StringParm,r_columnname

r_columnname=this.getcolumnname()

i_row=this.getrow()

if not i_row > 0 then return

if lower(right(r_columnname,2 )) "rq" then return 1

//日期选择处理

AcceptText()

str_calendar lstr_cal // create a structure (included in the calendar .pbl)

lstr_cal.active_datawindow = this

lstr_cal.active_row = i_row

lstr_cal.active_column = r_columnname //dwo.name

openwithparm(w_pb_calendar,lstr_cal)

r_StringParm=Message.StringParm

ld=this.getitemstring(i_row,lstr_cal.active_column)

ld=f_null_string(ld)

if ld r_StringParm then

this.setitem(i_row,r_columnname,r_StringParm)

end if

Return 1

dw_table:

editchanged!

if isnull(data) then return

CHOOSE CASE i_type

CASE "c_supp"

CHOOSE CASE dwo.name

CASE "supp_attr_code"

i_dwc_supp_attr_code.retrieve(data+"%")

END CHOOSE

END CHOOSE

dw_table:

itemerror!

return 1

dw_table:

losefocus!

this.accepttext()

dw_table:

itemchanged!

string r_col,r_code,r_code1,r_date,r_kh_code,r_zffs_code

long r_row,r_count,r_sql_count

INTEGER NET,i

decimal r_sum_ye,r_ye,r_jhfkje

string r_ht_id

integer r_ht_itemno

if not this.accepttext()=1 then return

//r_editstyle=dwo.edit.style

//if r_editstyle="dddw" then

// this.getchild(dwo.name,i_dwc) //dwo.name is like this.GetColumnName()

// string ls_data_column

// ls_data_column=dwo.dddw.datacolumn

// r_row=i_dwc.find(ls_data_column+"=""+data+""",1,i_dwc.rowcount())

// if r_row0 then return

r_col=this.GetColumnName( )

if not this.accepttext()=1 then return

CHOOSE CASE i_type

CASE "c_operator"

CHOOSE CASE r_col

CASE "oper_code"

r_code=data //相当于r_code=this.GetItemString( r_row, col)

// r_code1=f_sheet_len(r_code) //r_code1是规格化后的编码

// if r_coder_code1 then

// r_code = r_code1

// end if

// this.settext(r_code)

if f_itemchanged(r_code)=1 then

this.setitem(r_row,r_col,"")

return 1

end if

return 1

CASE else

RETURN

END CHOOSE

END CHOOSE

表格格式

rb_table:

clicked!

dw_table.visible=true

dw_free.visible=false

cb_del.enabled=false //需要点击后才能删除

自由格式

rb_free:

clicked!

dw_free.visible=true

dw_table.visible=false

cb_del.enabled=true //可删除当前行

cb_next:

clicked!

long r_row

r_row=dw_table.scrollnextrow()

r_row=dw_table.getrow()

dw_table.setrow(r_row)

dw_table.selectrow(0,false)

dw_table.selectrow(r_row,true)

dw_free.scrolltorow(r_row)

if dw_table.getrow()=dw_table.rowcount() then

this.enabled=false

cb_last.enabled=false

end if

cb_first.enabled=true

cb_prior.enabled=true

gf_dw_count(dw_table,sle_count)

cb_last:

clicked!

long r_count

r_count=dw_table.rowcount()

dw_table.scrolltorow(r_count)

dw_table.selectrow(0,false)

dw_table.selectrow(r_count,true)

dw_free.scrolltorow(r_count)

this.enabled=false

cb_next.enabled=false

cb_first.enabled=true

cb_prior.enabled=true

gf_dw_count(dw_table,sle_count)

增加

cb_increase:

clicked!

long r_rowcount

string r_code

if rb_free.checked=true then

dw_free.setfocus()

dw_free.SetColumn(1)

else

dw_table.setfocus()

dw_table.SetColumn(1)

end if

dw_free.insertrow(0)

cb_last.triggerevent(clicked!)

gf_dw_count(dw_table,sle_count)

r_rowcount=dw_free.rowcount()

r_code = f_sheet_code(i_type,r_code) //产生单据号

CHOOSE CASE i_type

CASE "dj_cb_project"

dw_free.SetItem ( r_rowcount,"PROJ_CODE" ,r_code )

dw_free.SetItem ( r_rowcount,"KSRQ" ,g_date )

dw_free.SetItem ( r_rowcount,"JGRQ" ,g_date)

CASE else

END CHOOSE

复制列选择

cb_copy_col:

clicked!

//复制列选择

s_one_datawindow dws

string r_string,r_string1

integer r_length,r_col_row

dws.string1="copy"

dws.dw1=dw_table

OpenWithParm(w_col_copy,dws)

r_string=Message.StringParm

if isnull(r_string) or trim(r_string)="" then

i_col_copy_count=0

return //没有数据传过来

end if

r_string1=r_string //初始化

i_col_copy_count=0

DO WHILE pos(r_string1,",")>0 // 计算","的个数r_count

r_length=len(r_string1)

r_string1 = mid(r_string1, pos(r_string1,",") + 1,r_length)

i_col_copy_count = i_col_copy_count + 1

LOOP

i_col_copy[i_col_copy_count]=""

DO WHILE pos(r_string,",")>0 //将选择的字符串存储到i_col_copy[]中

r_col_row = r_col_row + 1

r_length=len(r_string)

i_col_copy[r_col_row] = mid(r_string, 1,pos(r_string,",") - 1)

r_string = mid(r_string, pos(r_string,",") + 1,r_length)

LOOP

复制增加

cb_increase_copy:

clicked!

string r_string,r_sql,r_coltype

integer r_col_row

long r_count,r_count1

decimal r_decimal

r_count=dw_table.rowcount()

dw_table.INSERTROW(0)

r_count1=dw_table.rowcount()

dw_table.scrolltorow(r_count1)

i_row=dw_table.getrow()

dw_table.setrow(i_row)

if r_count>0 then //copy

FOR r_col_row=1 TO i_col_copy_count

r_sql = i_col_copy[r_col_row] + ".ColType"

r_coltype = dw_table.describe(r_sql)

IF r_coltype = "!" THEN

MessageBox("错误", "数据类型错误!")

return

END IF

CHOOSE CASE r_coltype

CASE "number","long" ,"int"

r_decimal=dw_table.getitemdecimal(r_count,i_col_copy[r_col_row])

dw_table.setitem(i_row,i_col_copy[r_col_row],r_decimal)

CASE "date"

CASE "datetime"

CASE ELSE

IF Left(r_coltype,4) = "char" THEN

r_string=dw_table.getitemstring(r_count,i_col_copy[r_col_row])

dw_table.setitem(i_row,i_col_copy[r_col_row],r_string)

ELSEIF Left(r_coltype,7) = "decimal" THEN // type is decimal

r_decimal=dw_table.getitemdecimal(r_count,i_col_copy[r_col_row])

dw_table.setitem(i_row,i_col_copy[r_col_row],r_decimal)

ELSE // error,"!"

END IF

END CHOOSE

NEXT

end if

cb_last.triggerevent(clicked!)

gf_dw_count(dw_table,sle_count)

删除

cb_del:

clicked!

if rb_free.checked=true then

dw_free.deleterow(0)

elseif rb_table.checked=true then

dw_table.deleterow(i_row)

this.enabled=false

end if

gf_dw_count(dw_table,sle_count)

打印

cb_print:

clicked!

//定义结构,存放调用参数

str_printtool l_str_printtool

//赋值:需要打印的datawindow名字

if rb_free.checked=true then

l_str_printtool.str_dw = dw_free

else

l_str_printtool.str_dw = dw_table

end if

//主标题

l_str_printtool.str_title_1 = " "

//副标题,如果赋值"today" 打印时自动显示当前日期

l_str_printtool.str_title_2 = ""

//脚注,如果赋值"today" 打印时自动显示当前日期

l_str_printtool.str_title_3 = g_date

//主标题下划线,1有下划线,其它无下划线

l_str_printtool.str_underline_1=1

//副标题下划线,1有下划线,其它无下划线

l_str_printtool.str_underline_2=0

//脚注下划线,1有下划线,其它无下划线

l_str_printtool.str_underline_3=0

//脚注对齐方式,1右对齐,2中间对齐,3左对齐,其它无效

l_str_printtool.str_align_3=3

//调用打印窗口

openWithparm(w_printtool,l_str_printtool)

复位

cb_reset:

clicked!

dw_free.reset()

cb_increase.enabled=true

sle_count.text=""

保存

cb_save:

clicked!

long r_row,Net

string r_sheet_type_code,r_flag_code

Net = MessageBox("提示", "是否真的保存?", Exclamation!, YESNO!, 1)

IF Net = 2 THEN return

dw_free.accepttext()

dw_table.accepttext()

if f_check_null(i_type,dw_table,"")=1 then

messagebox("提示","修改后再保存!")

return

end if

r_row=dw_free.getrow()

if not( dw_free.rowcount()>=1 ) then return

if dw_free.update()>0 then

commit;

dw_free.reset()

sle_count.text=""

messagebox("提示","保存成功!")

else

rollback;

messagebox("提示","保存失败!")

return

end if

退出

cb_cancel:

clicked!

close(parent)


窗口名

w_select

Message参数

Message.StringParm

主要功能

综合查询窗口

实例变量声明

string i_type,i_form, i_where_sql,i_modi_sql,i_orig_sql

integer i_col

string i_str_precolumn=""

integer i_int_clicktime=0

long i_x,i_y,i_width,i_height,i_row

string ename[],coltype[],col_width[], col_height[],col_height_t[]

double col_y[],col_y_t[],col_interval[],col_interval_t[]

string i_xh_xx_c

string i_tip_flag,i_click_tip

datawindowchild i_dwc

datawindow i_dw

string i_title

窗口函数

参数:

返回值类型:

控件事件

脚本

w_select:

Open!

i_type=Message.StringParm

CHOOSE CASE i_type

CASE "c_operator"

dw_table.DATAOBJECT="dw_c_operator_grid"

dw_free.DATAOBJECT="dw_c_operator_free"

i_title="操作员情况表"

CASE "c_corp"

dw_table.DATAOBJECT="dw_c_corp_grid"

dw_free.DATAOBJECT="dw_c_corp_free"

i_title="公司信息"

END CHOOSE

dw_table.settransobject(sqlca)

dw_free.settransobject(sqlca)

dw_table.sharedata(dw_free)

this.title=i_title+"查询"

dw_table.object.datawindow.readonly="yes"

dw_free.object.datawindow.readonly="yes"

i_col=integer(dw_table.object.datawindow.column.count) //dw_table数据窗口的列数

i_orig_sql=dw_table.Describe("DataWindow.Table.Select")

integer i

string r_col,r_col_name

FOR i=1 TO i_col

r_col="#"+string(i)

r_col_name = "#"+string(i) + ".Name" // "#i"代表第i列, #1.Name为第一列列名.

ename[i]=dw_table.describe(r_col_name) //ename[i]放第i列列名.

coltype[i]=dw_table.describe(ename[i] + ".ColType")

NEXT

rb_table.triggerevent(clicked!)

rb_table.checked=true

i_dw=dw_table

dw_free.x=dw_table.x

dw_free.y=dw_table.y

dw_free.width=dw_table.width

dw_free.height=dw_table.height

dw_table:

clicked!

long r_rowcount

i_row=row

IF not i_row>0 THEN return

this.SetColumn(this.GetClickedColumn( ))

this.setrow(row)

this.SELECTROW(0,FALSE)

this.SELECTROW(i_row,TRUE)

cb_first.enabled=true

cb_prior.enabled=true

cb_next.enabled=true

cb_last.enabled=true

gf_dw_count(this,sle_count)

r_rowcount=this.rowcount()

if i_row=1 and r_rowcount=1 then

cb_prior.enabled=false

cb_next.enabled=false

cb_last.enabled=false

elseif i_row=r_rowcount then

cb_next.enabled=false

cb_last.enabled=false

elseif i_row=1 and r_rowcount>1 then

cb_first.enabled=false

cb_prior.enabled=false

end if

dw_table:

double clicked!

string str_column,str_format

str_column=dwo.name //取点击的对象

if right(str_column,2) = "_t" then //按升降排序

//对于列标题,取得的对象是列名+"_t"

str_column=left(str_column,len(str_column) - 2)

if str_column=i_str_precolumn then //已点击过

if i_int_clicktime=0 then //0表示原来按降序

i_int_clicktime=1

str_format=str_column + " A"

else

i_int_clicktime=0

str_format=str_column + " D"

end if

else

i_int_clicktime=1 //1表示原来按升序

str_format=str_column + " A"

end if

i_str_precolumn = str_column

this.SetSort(str_format)

this.Sort()

end if

cb_next:

clicked!

long r_row

i_dw.scrollnextrow()

r_row=i_dw.getrow()

if i_dw.getrow()=i_dw.rowcount() then

this.enabled=false

cb_last.enabled=false

end if

cb_first.enabled=true

cb_prior.enabled=true

gf_dw_count(dw_table,sle_count)

cb_last:

clicked!

i_dw.scrolltorow(i_dw.rowcount())

this.enabled=false

cb_next.enabled=false

cb_first.enabled=true

cb_prior.enabled=true

gf_dw_count(dw_table,sle_count)

打印

cb_print:

clicked!

//定义结构,存放调用参数

str_printtool l_str_printtool

//赋值:需要打印的datawindow名字

if rb_free.checked=true then

l_str_printtool.str_dw = dw_free

else

l_str_printtool.str_dw = dw_table

end if

//主标题

l_str_printtool.str_title_1 = " "

//副标题,如果赋值"today" 打印时自动显示当前日期

l_str_printtool.str_title_2 = ""

//脚注,如果赋值"today" 打印时自动显示当前日期

l_str_printtool.str_title_3 = g_date

//主标题下划线,1有下划线,其它无下划线

l_str_printtool.str_underline_1=1

//副标题下划线,1有下划线,其它无下划线

l_str_printtool.str_underline_2=0

//脚注下划线,1有下划线,其它无下划线

l_str_printtool.str_underline_3=0

//脚注对齐方式,1右对齐,2中间对齐,3左对齐,其它无效

l_str_printtool.str_align_3=3

//调用打印窗口

openWithparm(w_printtool,l_str_printtool)

复位

cb_reset:

clicked!

dw_table.reset()

sle_count.text=""

查询

cb_select:

clicked!

gf_query(dw_table, i_orig_sql, sle_count)

dw_table.SetRedraw(True)

cb_first.triggerevent(clicked!)

全部查询

cb_retr:

clicked!

string r_proj_code,r_where_sql

string r_state

i_modi_sql = "DataWindow.Table.Select="" + i_orig_sql + r_where_sql + """

//i_modi_sql = "DataWindow.Table.Select="" + i_orig_sql + """

r_state = dw_table.Modify(i_modi_sql)

IF r_state = "" THEN

dw_table.Retrieve( )

dw_table.setfocus()

ELSE

MessageBox("提示", "数据窗口修改失败!" + r_state)

return

END IF

gf_dw_count(dw_table,sle_count)

排序

cb_sort:

clicked!

s_one_datawindow dws

string r_string,r_string1,r_col_primary[],mod_string,err

integer r_length,r_col_row,r_col_count3,r_row

dws.string1="sort"

dws.dw1=dw_table

OpenWithParm(w_col_copy,dws)

r_string=Message.StringParm

dw_table.SetSort(r_string)

dw_table.Sort( )

cb_first.triggerevent(clicked!)

过滤

cb_filter:

clicked!

openwithparm(w_filter,dw_table)

dw_table.SetRedraw(True)

cb_first.triggerevent(clicked!)

表格格式

rb_table:

clicked!

dw_table.visible=true

dw_free.visible=false

i_dw=dw_table

自由格式

rb_free:

clicked!

dw_free.visible=true

dw_table.visible=false

i_dw=dw_free

退出

cb_exit:

clicked!

close(parent)


窗口名

w_i_o_ini

Message参数

主要功能

数据导入导出表初始窗口

实例变量声明

窗口函数

参数:

返回值类型:

控件事件

脚本

w_i_o_ini:

Open!

this.title="导入导出表初始"

Environment a

Integer w,h

GetEnvironment(a)

w=PixelsToUnits(a.screenwidth,xpixelstounits!)

h=PixelsToUnits(a.screenheight,ypixelstounits!)

move((w - width)/2,(h - height)/2)

导入导出表初始

cb_ini:

clicked!

integer NET

Net = MessageBox("提示", "是否真的要对导入导出表进行初始化?", Exclamation!, YESNO!, 2)

IF Net = 2 THEN return

SetPointer(HourGlass!)

f_i_o()

SetPointer(Arrow!)

MessageBox("提示","导入导出表初始化完毕!")

退出

cb_exit:

clicked!

close(parent)


窗口名

w_i_o

Message参数

Message.StringParm

主要功能

数据导入导出窗口

实例变量声明

string i_type,i_orig_sql_1,i_dept_code

string i_orig_sql,i_table_name

string i_save_import

string i_repeat_flag="0" //无重复数据行

string i_str_precolumn,i_path

string ename[],i_title

long i_int_clicktime,i_row

string i_filename,i_tablename//用于生成导出的文件名

窗口函数1

f_date2(r_date_temp,r_interval)

参数:string r_date_temp

string r_interval

返回值类型:string

//取出提醒日期

string r_date

//导入导出期限(00无、01每日、02每周、03每月、04每季度、05每年)

choose case r_interval

case "00"

r_date=r_date_temp

case "01"

r_date=f_date_after_day(r_date_temp)

case "02"

r_date=string(RelativeDate(date(r_date_temp), 7),"yyyy-mm-dd")

case "03"

r_date=f_date_after_month(r_date_temp)

case "04"

r_date=f_date_after_quarter(r_date_temp)

case "05"

r_date=f_date_after_year(r_date_temp)

end choose

return string(date(r_date),"yyyy-mm-dd")


窗口函数2

f_copy_free(r_filename,r_row,r_date2,r_tablename)

参数:string r_filename

long r_row

string r_date2

string r_tablename

返回值类型:integer

int r_value,r_pathlen,r_rt

string r_filetype,r_filename_code,r_pathfilename,r_path

r_pathfilename=i_table_name + g_pathfilename

//1、打开文件保存对话窗口

r_value=getfilesavename("导出",r_pathfilename,&

r_filename,"dbf",&

"dbf files(*.dbf),*.dbf,"+&

"text files(*.txt),*.txt,"+&

"excel files(*.excel),*.xls,"+&

"sql files(*.sql),*.sql,")

if r_value1 then

messagebox("提示","打开文件保存对话窗口失败!")

return 0

end if

r_filetype=right(r_pathfilename,3)

r_pathlen=len(r_pathfilename) - len(r_filename) - 1

r_path=left(r_pathfilename,r_pathlen)

//2、按不同类型文件进行保存,并修改提醒日期及成功标记

choose case r_filetype

case "dbf"

r_filename_code="01" r_rt=tab_copy.tabpage_item.dw_copy_table.saveas(r_pathfilename,dbase3!,true)

case "txt"

r_filename_code="02"

// r_rt=tab_copy.tabpage_item.dw_copy_table.saveas(r_pathfilename,text!,true) //true:要title

r_rt=tab_copy.tabpage_item.dw_copy_table.saveas(r_pathfilename,text!,false) //false:不要title

case "xls"

r_filename_code="03" r_rt=tab_copy.tabpage_item.dw_copy_table.saveas(r_pathfilename,Excel!,true)

case "sql"

r_filename_code="04" r_rt=tab_copy.tabpage_item.dw_copy_table.saveas(r_pathfilename,sqlinsert!,true)

end choose

//3、修改路径、操作员、文件名、文件类型、操作日期 (flag_code标记:01成功、02失败)

if r_rt=1 then

messagebox("提示","数据导出成功!")

tab_copy.tabpage_main.dw_main.setitem(r_row,"flag_code","01")

tab_copy.tabpage_main.dw_main.setitem(r_row,"date2",r_date2)

else

messagebox("提示",r_tablename+"数据导出失败!")

tab_copy.tabpage_main.dw_main.setitem(r_row,"flag_code","02")

end if

tab_copy.tabpage_main.dw_main.setitem(r_row,"path",r_path)

// tab_copy.tabpage_main.dw_main.setitem(r_row,"oper_code",g_oper_code)

tab_copy.tabpage_main.dw_main.setitem(r_row,"file_type_code",r_filename_code)

tab_copy.tabpage_main.dw_main.setitem(r_row,"date1",g_date)

if tab_copy.tabpage_main.dw_main.update()>0 then

commit using sqlca;

else

rollback using sqlca;

end if

return r_rt

窗口函数3

f_copy_gd(r_path,r_filename,r_row,r_date2)

参数:string r_path

string r_filename

long r_row

string r_date2

返回值类型:integer

string r[20],r_pathfilename,r_filetype,r_filename_code

int i,p=1,net,r_rt

boolean r_state

//1、生成路径

do while p0

p=pos(r_path,"\",p+1)

if p0 then

i=i+1

r[i]=mid(r_path,1,p - 1)

end if

loop

r[i+1]=r_path

for p=2 to i+1

CreateDirectoryA(r[p],0)

next

r_pathfilename=r_path+"\"+r_filename

r_state=fileexists(r_pathfilename)

if r_state then net=messagebox("提示",r_pathfilename+" 文件已经存在,是否覆盖原文件?",question!,yesno!,2)

if net=2 then return 0

//覆盖

filedelete(r_pathfilename)

r_filetype=right(r_pathfilename,3)

//2、按不同类型文件进行保存、修改成功标记、提醒日期

r_pathfilename=g_pathfilename

//messagebox("r_pathfilename",r_pathfilename)

choose case r_filetype

case "dbf"

r_filename_code="01"

r_rt=tab_copy.tabpage_item.dw_copy_table.saveas(r_pathfilename,dbase3!,true)

case "txt"

r_filename_code="02"

r_rt=tab_copy.tabpage_item.dw_copy_table.saveas(r_pathfilename,text!,false) //false:不要title

case "xls"

r_filename_code="03"

r_rt=tab_copy.tabpage_item.dw_copy_table.saveas(r_pathfilename,Excel!,true)

case "sql"

r_filename_code="04"

r_rt=tab_copy.tabpage_item.dw_copy_table.saveas(r_pathfilename,sqlinsert!,true)

end choose

//3、修改路径、日期、操作员

if r_rt=1 then

messagebox("提示","数据导出成功!")

tab_copy.tabpage_main.dw_main.setitem(r_row,"flag_code","01")

tab_copy.tabpage_main.dw_main.setitem(r_row,"date2",r_date2)

else

messagebox("提示",r_tablename+"数据导出失败!")

tab_copy.tabpage_main.dw_main.setitem(r_row,"flag_code","02")

end if

tab_copy.tabpage_main.dw_main.setitem(r_row,"path",r_path)

tab_copy.tabpage_main.dw_main.setitem(r_row,"date1",g_date)

//tab_copy.tabpage_main.dw_main.setitem(r_row,"oper_code",g_oper_code)

if tab_copy.tabpage_main.dw_main.update()>0 then

commit using sqlca;

else

rollback using sqlca;

end if

return r_rt

控件事件

脚本

w_i_o:

Open!

integer r_col_count,i

string r_col,r_modi=""

s_three_strings s

s=Message.PowerObjectParm

i_type=s.string1

i_save_import = s.string2

tab_copy.tabpage_main.dw_main.dataobject="dw_save_import"

tab_copy.tabpage_main.dw_main.settransobject(sqlca)

tab_copy.tabpage_main.dw_dept.settransobject(sqlca)

tab_copy.tabpage_main.dw_interval.settransobject(sqlca)

tab_copy.tabpage_main.dw_save_import.settransobject(sqlca)

tab_copy.tabpage_main.dw_mean_code.settransobject(sqlca)

tab_copy.tabpage_main.dw_file_type.settransobject(sqlca)

tab_copy.tabpage_main.dw_dept.insertrow(0)

tab_copy.tabpage_main.dw_mean_code.insertrow(0)

tab_copy.tabpage_main.dw_interval.insertrow(0)

tab_copy.tabpage_main.dw_save_import.insertrow(0)

tab_copy.tabpage_main.dw_file_type.insertrow(0)

tab_copy.tabpage_main.dw_save_import.setitem(1,1,i_save_import)

tab_copy.tabpage_item.ddlb_drive.DirList("*.*",49152)

tab_copy.tabpage_item.ddlb_drive.text=g_drive //g_drive:"[-e-]"

tab_copy.tabpage_item.ddlb_drive.visible=false

tab_copy.tabpage_item.st_drive.visible=false

tab_copy.tabpage_main.dw_main.Object.DataWindow.ReadOnly="Yes"

tab_copy.tabpage_item.dw_copy_table.Object.DataWindow.ReadOnly="No"

tab_copy.tabpage_main.dw_save_import.Object.DataWindow.ReadOnly="Yes"

tab_copy.tabpage_item.cb_copy.enabled=false

tab_copy.tabpage_item.enabled=false

i_type=lower(i_type)

CHOOSE CASE i_type

CASE "c_operator"

tab_copy.tabpage_main.sle_table_name.text="c_operator"

tab_copy.tabpage_main.sle_chinese_name.text="人员信息"

tab_copy.tabpage_main.sle_dw_name.text="dw_c_operator_grid"

CASE "all" //用于维护

tab_copy.tabpage_main.sle_table_name.text=" "

tab_copy.tabpage_main.sle_chinese_name.text=" "

tab_copy.tabpage_main.sle_dw_name.text=" "

this.title="所有表"

CASE ELSE

this.title=""

END CHOOSE

r_col_count=integer(tab_copy.tabpage_main.dw_main.object.datawindow.column.count) //dw_table数据窗口的列数

i_orig_sql=tab_copy.tabpage_main.dw_main.Describe("DataWindow.Table.Select")

i_orig_sql_1=tab_copy.tabpage_main.dw_main.Describe("DataWindow.Table.Select")

FOR i=1 TO r_col_count

r_col = "#"+string(i) + ".Name" ename[i]=tab_copy.tabpage_main.dw_main.describe(r_col)

if not(ename[i]="save_import_code" or ename[i]="chinese_name" ) then

r_modi=r_modi + ename[i] + ".width=0"

end if

NEXT

tab_copy.tabpage_main.dw_main.modify(r_modi)

tab_copy.tabpage_item.dw_copy_table_repeat.visible=false

tab_copy.tabpage_item.dw_copy_table_repeat.x=tab_copy.tabpage_item.dw_copy_table.x

tab_copy.tabpage_item.dw_copy_table_repeat.y=tab_copy.tabpage_item.dw_copy_table.y

tab_copy.tabpage_item.dw_copy_table_repeat.width=tab_copy.tabpage_item.dw_copy_table.width

tab_copy.tabpage_item.dw_copy_table_repeat.height=tab_copy.tabpage_item.dw_copy_table.height

if i_save_import="01" then //"01"导入

this.title="导入" + this.title

elseif i_save_import="02" then //"02"导出

this.title="导出" + this.title

end if

tab_copy.tabpage_main.dw_main.modify("DataWindow.Detail.color ="0~tIF(isrownew(getrow()),RGB(238, 237, 234), IF(MOD(GETROW(),2)=0,RGB(238, 237, 234), RGB(255, 255, 255)))"")

tab_copy.tabpage_item.dw_copy_table.modify("DataWindow.Detail.color ="0~tIF(isrownew(getrow()),RGB(238, 237, 234), IF(MOD(GETROW(),2)=0,RGB(238, 237, 234), RGB(255, 255, 255)))"")

tab_copy.tabpage_main. dw_main:

clicked!

if not row>0 then return

This.SetRow(row)

This.SelectRow(0, FALSE)

This.SelectRow(row, TRUE)

i_save_import=this.getitemstring(row,"save_import_code")

if i_save_import="01" then //"01"导入

i_title="导入" + this.getitemstring(row,"chinese_name")

elseif i_save_import="02" then //"02"导出

i_title="导出" + this.getitemstring(row,"chinese_name")

end if

st_tip.text=i_title

gf_dw_count(tab_copy.tabpage_main.dw_main,tab_copy.tabpage_main.sle_count_main)

i_row=row

dw_main.TriggerEvent("ue_1")

tab_copy.tabpage_main. dw_main:

ue_1!

(自定义事件)

string r_dw_name

r_dw_name=this.getitemstring(i_row,"table_dw_name")

i_save_import=this.getitemstring(i_row,"save_import_code")

i_type=this.getitemstring(i_row,"table_name")

//01导入、02导出

if i_save_import="02" then

tab_copy.tabpage_item.cb_inqu_select.enabled=true

tab_copy.tabpage_item.cb_input.enabled=false

tab_copy.tabpage_item.cb_copy.enabled=false

tab_copy.tabpage_item.cb_save.enabled=false

tab_copy.tabpage_item.cb_test.enabled=false

tab_copy.tabpage_item.cb_del.enabled=false

tab_copy.tabpage_item.cb_repeat_data.enabled=false

tab_copy.tabpage_item.rb_append.enabled=false

tab_copy.tabpage_item.rb_override.enabled=false

else

tab_copy.tabpage_item.cb_inqu_select.enabled=false

tab_copy.tabpage_item.cb_input.enabled=true

tab_copy.tabpage_item.cb_copy.enabled=false

tab_copy.tabpage_item.cb_save.enabled=false

tab_copy.tabpage_item.cb_test.enabled=false

tab_copy.tabpage_item.cb_del.enabled=false

tab_copy.tabpage_item.cb_repeat_data.enabled=false

tab_copy.tabpage_item.rb_append.enabled=true

tab_copy.tabpage_item.rb_override.enabled=true

end if

tab_copy.tabpage_item.dw_copy_table.dataobject=r_dw_name

tab_copy.tabpage_item.dw_copy_table.settransobject(sqlca)

i_orig_sql=tab_copy.tabpage_item.dw_copy_table.Describe("DataWindow.Table.Select")

//dw_copy_table_repeat存放dw_copy_table中测试后删除的重复行

tab_copy.tabpage_item.dw_copy_table_repeat.dataobject=r_dw_name

tab_copy.tabpage_item.dw_copy_table_repeat.settransobject(sqlca)

tab_copy.tabpage_item.dw_copy_table_repeat.visible=false

tab_copy.tabpage_item.dw_copy_table_repeat.object.datawindow.readonly="yes"

tab_copy.tabpage_item.dw_copy_table.object.datawindow.readonly="yes"

查询

tab_copy.tabpage_main.

cb_retrieve:

clicked!

//按查询条件查询出需要导入导出的表

string r_dept,r_save_import,r_table_name,r_chinese_name

string r_dw_name,r_path,r_interval,r_date1,r_date2

long r_rowcount

string r_modi_sql,r_where_sql,r_state,r_mean_code,r_file_type,r_code

dw_dept.accepttext()

dw_save_import.accepttext()

dw_interval.accepttext()

dw_mean_code.accepttext()

dw_file_type.accepttext()

r_dept=dw_dept.getitemstring(1,1)

r_mean_code=dw_mean_code.getitemstring(1,1)

r_save_import=dw_save_import.getitemstring(1,1)

r_file_type=dw_file_type.getitemstring(1,1)

r_interval=dw_interval.getitemstring(1,1)

r_table_name=sle_table_name.text

r_chinese_name=sle_chinese_name.text

r_dw_name=sle_dw_name.text

r_path=sle_path.text

r_date1=sle_date1.text

r_date2=sle_date2.text

i_dept_code=r_dept

r_code="%"

r_dept="~"" + f_string(r_dept) +"~""

r_mean_code="~"" + f_string(r_mean_code) + "~""

r_save_import="~"" + f_string(r_save_import) +"~""

r_file_type="~"" + f_string(r_file_type) +"~""

r_table_name="~"" + f_string(r_table_name) +"~""

r_chinese_name=trim(r_chinese_name)

r_chinese_name="~"" + f_string2(r_chinese_name) +"~""

r_dw_name="~"" + f_string(r_dw_name) +"~""

r_path="~"" + f_string(r_path) +"~""

r_interval="~"" + f_string(r_interval) +"~""

r_date1="~"" + f_string(r_date1) +"~""

r_date2="~"" + f_string(r_date2) +"~""

r_code="~"" + r_code +"~""

r_where_sql= " dept_code like " + r_dept &

+ " and save_import_code like " + r_save_import &

+ " and mean_code like " + r_mean_code &

+ " and table_name like " + r_table_name &

+ " and chinese_name like " + r_chinese_name &

+ " and table_dw_name like " + r_dw_name &

+ " and path like " + r_path &

+ " and file_type_code like " + r_file_type &

+ " and interval_code like " + r_interval &

+ " and date1 like " + r_date1 &

+ " and date2 like " + r_date2 &

+ " and oper_code like " + r_code

if f_where_exist(i_orig_sql_1)=1 then

r_where_sql=" and " + r_where_sql

else

r_where_sql=" where " + r_where_sql

end if

r_modi_sql = "DataWindow.Table.Select=~"" + i_orig_sql_1 + r_where_sql + "~""

r_state = tab_copy.tabpage_main.dw_main.Modify(r_modi_sql)

IF r_state = "" THEN

tab_copy.tabpage_main.dw_main.Retrieve()

tab_copy.tabpage_main.dw_main.setfocus()

r_rowcount= tab_copy.tabpage_main.dw_main.rowcount()

IF r_rowcount>0 THEN

tab_copy.tabpage_item.enabled=true gf_dw_count(tab_copy.tabpage_main.dw_main,tab_copy.tabpage_main.sle_count_main)

i_row=1

dw_main.scrolltorow(i_row)

dw_main.SelectRow(0, FALSE)

dw_main.SelectRow(i_row, TRUE)

dw_main.TriggerEvent("ue_1")

ELSE

tab_copy.tabpage_item.enabled=false

sle_count_main.TEXT=""

END IF

ELSE

tab_copy.tabpage_item.enabled=false

MessageBox("提示", "数据窗口修改失败!" + r_state)

return

END IF

tab_copy.tabpage_item.dw_copy_table:

clicked!

this.setrow(row)

i_row=this.getrow()

IF i_row>0 THEN

This.SELECTROW(0,FALSE)

This.SELECTROW(i_row,TRUE)

if i_save_import="01" then cb_del.enabled=true //01导入、02导出

END IF

gf_dw_count(tab_copy.tabpage_item.dw_copy_table,tab_copy.tabpage_item.sle_count)

条件查询

tab_copy.tabpage_item.

cb_inqu_select:

clicked!

long r_rowcount,r_ret

r_ret=gf_query(tab_copy.tabpage_item.dw_copy_table, i_orig_sql, tab_copy.tabpage_item.sle_count)

if r_ret=0 then

return

end if

tab_copy.tabpage_item.dw_copy_table.SetRedraw(True)

gf_dw_count(tab_copy.tabpage_item.dw_copy_table,tab_copy.tabpage_item.sle_count)

r_rowcount=dw_copy_table.rowcount()

if r_rowcount>0 then

cb_copy.enabled=true

else

cb_copy.enabled=false

messagebox("提示","无记录!")

end if

导出

tab_copy.tabpage_item.

cb_copy:

clicked!

long r_rowcount,r_row,r_pos_date

string r_interval,r_mean_code,r_path,r_filename

string r_date2,r_tablename

int net,r_return,r_rt

stringr_dept_code,i_orig_sql_temp,r_drive,r_date

string r_file_type,r_file_type_name

r_rowcount=dw_copy_table.rowcount()

if not r_rowcount>0 then

messagebox("提示","该窗口无数据!")

return

end if

Net = MessageBox("提示", "是否真的要导出?", Exclamation!, YESNO!, 1)

if net=2 then return

r_dept_code=i_dept_code

r_row=tab_copy.tabpage_main.dw_main.getrow()

if not r_row>0 then

messagebox("提示","请选择需要导出的表!")

return

end if

i_table_name=tab_copy.tabpage_main.dw_main.getitemstring(r_row,"table_name")//用于生成导出的文件名

//取出固定变量

r_mean_code=tab_copy.tabpage_main.dw_main.getitemstring(r_row,"mean_code")

r_tablename=tab_copy.tabpage_main.dw_main.getitemstring(r_row,"table_name")

r_path=tab_copy.tabpage_main.dw_main.getitemstring(r_row,"path")

r_filename=tab_copy.tabpage_main.dw_main.getitemstring(r_row,"file_name")

r_interval=tab_copy.tabpage_main.dw_main.getitemstring(r_row,"interval_code")

r_file_type=tab_copy.tabpage_main.dw_main.getitemstring(r_row,"interval_code")

r_file_type=tab_copy.tabpage_main.dw_main.getitemstring(r_row,"file_type_code")

choose case r_file_type

case "01"

r_file_type_name="dbf"

case "02"

r_file_type_name="txt"

case "03"

r_file_type_name="xls"

case "04"

r_file_type_name="sql"

case else

r_file_type_name="dbf"

end choose

//取出提醒日期,date1:最近操作日期,date2:提醒日期

r_pos_date=pos(i_orig_sql,"DATE1 =")

if r_pos_date>0 then

r_date=mid(i_orig_sql,r_pos_date+9,10)

r_date2=f_date2(r_date,r_interval)

else

r_date2=f_date2(g_date,r_interval)

end if

choose case r_mean_code

case "01" //固定目录导出(g_dir_gd)

r_filename=r_filename+"."+r_file_type_name

f_copy_gd(r_path,r_filename,r_row,r_date2,r_tablename)

case "02" //自由导出

f_copy_free(r_filename,r_row,r_date2,r_tablename)

case "03" //生成目标文件夹导出(g_dir_sc),与路径设置r_path无关

r_drive=ddlb_drive.text

if isnull(r_drive) or trim(r_drive)="" then

messagebox("警告","盘符设置不能为空!")

return

end if

r_drive=upper(mid(r_drive,3,1)) //盘符

r_path=r_drive+g_dir_sc+"\"+r_tablename //自动生成路径

r_filename=r_filename+"."+r_file_type_name

f_copy_gd(r_path,r_filename,r_row,r_date2,r_tablename)

case else

messagebox("提示","该表无导出方式,无法导出!")

return

end choose

this.enabled=false

导入

tab_copy.tabpage_item.

cb_input:

clicked!

long r_row,r_pathlen

int r_rtn

string r_pathfilename,r_filename,r_filetype,r_path,r_tablename

string r_filename_code,r_interval,r_date2

string r_mean_code,r_drive,r_date,r_dept_code

string r_file_type,r_file_type_name

r_row=tab_copy.tabpage_main.dw_main.getrow()

if not r_row>0 then

messagebox("提示","请选择需要导入的表!")

return

end if

//取出固定变量

r_mean_code=tab_copy.tabpage_main.dw_main.getitemstring(r_row,"mean_code")

r_path=tab_copy.tabpage_main.dw_main.getitemstring(r_row,"path")

r_tablename=tab_copy.tabpage_main.dw_main.getitemstring(r_row,"table_name")

r_filename=tab_copy.tabpage_main.dw_main.getitemstring(r_row,"file_name")

i_filename=r_tablename //供接口转换用

r_interval=tab_copy.tabpage_main.dw_main.getitemstring(r_row,"interval_code")

r_file_type=tab_copy.tabpage_main.dw_main.getitemstring(r_row,"file_type_code")

choose case r_file_type

case "01"

r_file_type_name="dbf"

case "02"

r_file_type_name="txt"

case "03"

r_file_type_name="xls"

case "04"

r_file_type_name="sql"

case else

r_file_type_name="dbf"

end choose

r_dept_code=i_dept_code

r_date2=f_date2(g_date,r_interval)

i_table_name=r_tablename

r_rtn=1

choose case r_mean_code

case "01" //固定目录导入(g_dir_gd)

r_pathfilename=r_path+"\"+r_filename+"."+r_file_type_name

case "02" //自由导入

r_rtn=getfilesavename("打开文件",r_pathfilename,&

r_filename,"dbf", "Dbf Files (*.dbf),*.dbf," + &

"Text Files (*.TXT),*.TXT," + "Excel Files (*.xls),*.xls," + &

"SQL Files (*.sql),*.sql," )

case "03" //生成目标文件夹导入(g_dir_sc),与路径设置r_path无关

r_drive=ddlb_drive.text

if isnull(r_drive) or trim(r_drive)="" then

messagebox("警告","盘符设置不能为空!")

return

end if

r_drive=upper(mid(r_drive,3,1)) //盘符

r_path=r_drive+g_dir_sc+"\"+r_tablename //自动生成路径

r_pathfilename=r_path+"\"+r_filename+"."+r_file_type_name

case else

messagebox("提示","该表无导入方式,无法导入!")

return

end choose

if r_rtn1 and r_rtn0 then

messagebox("提示","操作失败!")

return

end if

if r_rtn=0 then

return

end if

r_rtn=dw_copy_table.ImportFile(r_pathfilename)if r_rtn>0 then

tab_copy.tabpage_main.dw_main.setitem(r_row,"flag_code","01") //01成功、02失败

tab_copy.tabpage_main.dw_main.setitem(r_row,"date2",r_date2) //提醒日期

cb_save.enabled=false

cb_test.enabled=true

cb_repeat_data.enabled=false

else

messagebox("提示","导入失败!")

tab_copy.tabpage_main.dw_main.setitem(r_row,"flag_code","02")

cb_save.enabled=false

cb_test.enabled=false

cb_repeat_data.enabled=false

return

end if

r_filetype=right(r_pathfilename,3)

choose case r_filetype

case "dbf"

r_filename_code="01"

case "txt"

r_filename_code="02"

case "xls"

r_filename_code="03"

case "sql"

r_filename_code="04"

case else

r_filename_code="01"

r_filetype ="dbf"

end choose

if r_mean_code="02" then

tab_copy.tabpage_main.dw_main.setitem(r_row,"path",i_path)

r_filetype="." + r_filetype

r_filename=mid(r_filename,1,pos(r_filename,r_filetype) - 1 )

tab_copy.tabpage_main.dw_main.setitem(r_row,"file_name",r_filename)

tab_copy.tabpage_main.dw_main.setitem(r_row,"file_type_code",r_filename_code) //文件类型

end if

tab_copy.tabpage_main.dw_main.setitem(r_row,"date1",g_date) //最近操作日期

r_rtn = MessageBox("提示", "导入成功,是否需要对数据窗口中的导入数据进行重复性测试?",Exclamation!, YESNO!, 1)

if r_rtn=1 then

cb_test.enabled=true

// cb_test.triggerevent(clicked!)

else

cb_test.enabled=false

i_repeat_flag="null" //未进行重复数据测试标记

//cb_repeat_data.text="&F显示重复数据"

tab_copy.tabpage_item.dw_copy_table_repeat.visible=false

cb_repeat_data.enabled=false

rb_append.enabled=false

rb_override.enabled=false

rb_override.checked=true

end if

cb_save.enabled=true

gf_dw_count(tab_copy.tabpage_item.dw_copy_table,tab_copy.tabpage_item.sle_count)

测试重复数据

tab_copy.tabpage_item.

cb_test:

clicked!

//对数据窗口中的导入数据进行重复性测试

integer NET

long r_count,r_rowcount,r_row

dw_copy_table.accepttext()

dw_copy_table.SelectRow(0, FALSE) //所有行均不选中

SetPointer(HourGlass!)

r_count=f_dw_test_repeat(i_type,dw_copy_table,tab_copy.tabpage_item.sle_count)

if r_count=0 then

MessageBox("提示", "无重复数据行!")

i_repeat_flag="0" //无重复数据行

else

MessageBox("提示", "有 " + string(r_count) +" 行重复数据!")

i_repeat_flag="1" //有重复数据行

r_rowcount=dw_copy_table.rowcount()

r_count=1

r_row=1

DO WHILE r_count0 THEN

messagebox("提示","共 "+string(r_count)+" 条重复数据行!")

ELSE

messagebox("提示","无重复数据行!")

END IF

ELSE

this.text="&F显示重复数据"

tab_copy.tabpage_item.dw_copy_table.visible=true

tab_copy.tabpage_item.dw_copy_table_repeat.visible=false

r_count=tab_copy.tabpage_item.dw_copy_table.ROWCOUNT()

IF r_count>0 THEN

messagebox("提示","共 "+string(r_count)+" 条新数据行!")

ELSE

messagebox("提示","无新的数据行!")

END IF

END IF

删除

tab_copy.tabpage_item.

cb_del:

clicked!

INTEGER NET

Net = MessageBox("提示", "是否真的要删除所选中的行?", Exclamation!, YESNO!, 1)

IF Net = 2 THEN return

this.enabled=false

dw_copy_table.DELETEROW(i_row)

gf_dw_count(tab_copy.tabpage_item.dw_copy_table,tab_copy.tabpage_item.sle_count)

复位

tab_copy.tabpage_item.

cb_reset:

clicked!

dw_copy_table.reset()

dw_copy_table_repeat.reset()

sle_count.text=""

cb_test.enabled=false

cb_repeat_data.enabled=false

cb_repeat_data.text="&F显示重复数据"

tab_copy.tabpage_item.dw_copy_table_repeat.visible=false

tab_copy.tabpage_item.dw_copy_table.visible=true

退出

tab_copy.tabpage_main.

cb_exit:

clicked!

cb_close.triggerevent(clicked!)

关闭

cb_close:

clicked!

close(parent)

保存

tab_copy.tabpage_item.

cb_save:

clicked!

int r_rtn

long r_rowcount,r_return,NET,r_rowcount_repeat

boolean r_retu

r_rowcount=dw_copy_table.rowcount()

r_rowcount_repeat=dw_copy_table_repeat.rowcount()

if r_rowcount0 then

dw_table.scrolltorow(1)

dw_table.SELECTROW(0,FALSE)

dw_table.SELECTROW(1,TRUE)

end if

2、《 存货子系统》码表查询处理。

通过继承窗口w_code_ch,产生窗口w_code_ch_inqu,来实现对《 存货子系统》码表的查询处理。

窗口w_code_ch_inqu的相关脚本修改如下:

窗口名

w_code_ch_inqu

父窗口

w_code_ch

实例变量声明

窗口函数

控件事件

脚本

w_code_ch_inqu:

open!

扩展父脚本:Extend Ancestor Script

//w_code_inqu: open

dw_table.object.datawindow.readonly="yes"

cb_inser.enabled=false

cb_del.enabled=false

cb_recov.enabled=false

cb_repair.enabled=false

cb_save.enabled=false


实验八 《 存货子系统》软件编程——单表处理

实验目的:

完成《存货子系统》单表处理模块的编程。

实验环境:

安装Windows操作系统、PowerBuilder软件、SQL Anywhere数据库、教师提供的软件原型平台等。

实验方式:

分组进行。

实验内容:

1、《存货子系统》单表输入、修改处理。

通过继承窗口w_sheet_input,产生窗口w_sheet_input_ch,来实现对《 存货子 系统》单表的输入处理。

窗口w_sheet_input_ch的相关事件及脚本修改如下:

窗口名

w_sheet_input_ch

父窗口

w_sheet_input

实例变量声明

窗口函数

控件事件

脚本

w_sheet_input_ch:

open!

覆盖父脚本:Override Ancestor Script

string r_modi,r_col,r_col_name

integer i

i_type=Message.StringParm

CHOOSE CASE i_type

CHOOSE CASE i_type

CASE "ch_kcxxb"

dw_table.DATAOBJECT="dw_ch_kcxxb_grid"

dw_free.DATAOBJECT="dw_ch_kcxxb_free"

dw_print.DATAOBJECT="dw_ch_kcxxbr_free"

this.title="库存信息输入"

CASE "ch_qcyeb"

dw_table.DATAOBJECT="dw_ch_qcyeb_grid"

dw_free.DATAOBJECT="dw_ch_qcyeb_free"

dw_print.DATAOBJECT="dw_ch_qcyeb_free"

this.title="库存期初表"

END CHOOSE

dw_table.settransobject(sqlca)

dw_free.settransobject(sqlca)

dw_print.settransobject(sqlca)

dw_free.sharedata(dw_table)

dw_free.sharedata(dw_print)

cb_increase.triggerevent(clicked!)

rb_free.triggerevent(clicked!)

rb_free.checked=true

dw_table.x=dw_free.x

dw_table.y=dw_free.y

dw_table.width=dw_free.width

dw_table.height=dw_free.height

this.title=i_title + "输入"

2、《存货子 系统》单表综合查询处理。

通过继承窗口w_select,产生窗口w_select_ch,来实现对《 存货子 系统》单表的综合查询处理。

窗口w_select_ch的相关事件及脚本修改如下:

窗口名

w_select_ch

父窗口

w_select

实例变量声明

窗口函数

控件事件

脚本

w_select_ch:

open!

覆盖父脚本:Override Ancestor Script

i_type=Message.StringParm

CHOOSE CASE i_type

CASE "ch_kcxxb"

dw_table.DATAOBJECT="dw_ch_kcxxb_grid"

dw_free.DATAOBJECT="dw_ch_kcxxb_free"

dw_print.DATAOBJECT="dw_ch_kcxxbr_free"

this.title="库存信息输入"

CASE "ch_qcyeb"

dw_table.DATAOBJECT="dw_ch_qcyeb_grid"

dw_free.DATAOBJECT="dw_ch_qcyeb_free"

dw_print.DATAOBJECT="dw_ch_qcyeb_free"

this.title="库存期初表"

END CHOOSE

dw_table.settransobject(sqlca)

dw_free.settransobject(sqlca)

dw_table.sharedata(dw_free)

this.title=i_title+"查询"

dw_table.object.datawindow.readonly="yes"

dw_free.object.datawindow.readonly="yes"

i_col=integer(dw_table.object.datawindow.column.count) //dw_table数据窗口的列数

//i_col = integer(dw_table.describe("DataWindow.Column.Count"))

i_orig_sql=dw_table.Describe("DataWindow.Table.Select")

integer i

string r_col,r_col_name

FOR i=1 TO i_col

r_col="#"+string(i)

r_col_name = "#"+string(i) + ".Name" // "#i"代表第i列, #1.Name为第一列列名.

ename[i]=dw_table.describe(r_col_name) //ename[i]放第i列列名.

coltype[i]=dw_table.describe(ename[i] + ".ColType")

NEXT

rb_table.triggerevent(clicked!)

rb_table.checked=true

i_dw=dw_table

dw_free.x=dw_table.x

dw_free.y=dw_table.y

dw_free.width=dw_table.width

dw_free.height=dw_table.height

3、《存货子系统》单表修改处理。

通过继承窗口w_select_ch,产生窗口w_select_ch_modi,来实现对《存货子系统》单表的修改处理。

窗口w_select_ch_modi的相关事件及脚本修改如下:

窗口名

w_select_ch_modi

父窗口

w_select_ch

实例变量声明

窗口函数

增加控件

增加控件:cb_del、cb_del_all、cb_increase_copy、cb_modi、cb_save、st_modi、sle_modi

控件事件

脚本

w_select_ch_modi:

open!

扩展父脚本:Extend Ancestor Script

this.title= this.title + "修改"

dw_table.object.datawindow.readonly="no"

dw_free.object.datawindow.readonly="no"

dw_table:

clicked!

扩展父脚本:Extend Ancestor Script

IF i_row>0 THEN cb_del.enabled=true

dw_table:

itemerror!

扩展父脚本:Extend Ancestor Script

return 1

删除

cb_del:

clicked!

INTEGER NET

long R_ROW,r_count

Net = MessageBox("提示", "是否真的要删除所选中的行?", Exclamation!, YESNO!, 1)

IF Net = 2 THEN return

this.enabled=false

dw_table.DELETEROW(i_row)

gf_dw_count(dw_table,sle_count)

全部删除

cb_del_all:

clicked!

INTEGER NET

long R_ROW,r_count

Net = MessageBox("提示", "是否真的要全部删除?", Exclamation!, YESNO!, 1)

IF Net = 2 THEN return

this.enabled=false

r_count=dw_table.rowcount()

FOR R_ROW=1 TO r_count

dw_table.DELETEROW(0)

gf_dw_count(dw_table,sle_count)

NEXT

cb_save:

clicked!

integer rtn, NET

Net = MessageBox("提示", "是否真的要保存?", Exclamation!, YESNO!, 1)

IF Net 1 THEN return

dw_table.accepttext()

dw_free.accepttext()

if f_check_null(i_type,dw_table,"")=1 then

messagebox("提示","修改后再保存!")

return

end if

IF dw_table.ModifiedCount( ) > 0 OR dw_table.DeletedCount( ) >0 THEN

rtn = dw_table.Update( )

IF rtn = 1 THEN

COMMIT USING SQLCA;

messagebox("提示","保存成功!")

cb_reset.TriggerEvent(Clicked!)

ELSE

ROLLBACK USING SQLCA;

messagebox("提示","保存失败!")

END IF

END IF

cb_increase_copy:

clicked!

string r_string,r_sql,r_coltype

integer r_col_row

long r_count,r_count1,r_select_count

decimal r_decimal

r_count=dw_table.rowcount()

dw_table.INSERTROW(0)

r_count1=dw_table.rowcount()

dw_table.scrolltorow(r_count1)

i_row=dw_table.getrow()

dw_table.setrow(i_row)

r_select_count=dw_table.GetSelectedRow(0)

if r_count>0 then

if not r_select_count>0 then

r_select_count=r_count

end if

FOR r_col_row=1 TO i_col

r_coltype = coltype[r_col_row]

IF r_coltype = "!" THEN

MessageBox("错误", "数据类型错误!")

return

END IF

CHOOSE CASE r_coltype

CASE "number","long" ,"int" r_decimal=dw_table.getitemdecimal(r_select_count,ename[r_col_row])

dw_table.setitem(i_row,ename[r_col_row],r_decimal)

CASE "date"

CASE "datetime"

CASE ELSE

IF Left(r_coltype,4) = "char" THEN

r_string=dw_table.getitemstring(r_select_count,ename[r_col_row])

dw_table.setitem(i_row,ename[r_col_row],r_string)

ELSEIF Left(r_coltype,7) = "decimal" THEN // type is decimal

r_decimal=dw_table.getitemdecimal(r_select_count,ename[r_col_row])

dw_table.setitem(i_row,ename[r_col_row],r_decimal)

ELSE // error,"!"

END IF

END CHOOSE

NEXT

end if

cb_last.triggerevent(clicked!)

gf_dw_count(dw_table,sle_count)

cb_modi:

clicked!

//对所选中数据所在行中的数据全部按输入的当前列修改值 进行批量修改

long r_rowcount,r_row,i

string r_colname,r_value,r_col_type,r_colname_t

decimal r_value_d

integer NET

r_rowcount=dw_table.rowcount()

if not r_rowcount>0 then return

r_colname=dw_table.GetColumnName ( )

if isnull(r_colname) or trim(r_colname)="" then return

r_colname_t=dw_table.describe(r_colname + "_t.text")

Net = MessageBox("提示", "是否真的要对 "+r_colname_t+" 列进行修改?", Exclamation!, YESNO!, 2)

IF Net 1 THEN return

r_value=sle_modi.text

r_value_d=real(r_value)

r_col_type=""

SetPointer(HourGlass!)

FOR i=1 TO i_col

if ename[i]= r_colname then

r_col_type=coltype[i]

exit

end if

NEXT

If Left(r_col_type,4)="char" Then

FOR r_row=1 TO r_rowcount

dw_table.setitem(r_row,r_colname,r_value)

NEXT

Else

If Left(r_col_type,4)="date" Then

FOR r_row=1 TO r_rowcount

dw_table.setitem(r_row,r_colname,r_value)

NEXT

Else

FOR r_row=1 TO r_rowcount

dw_table.setitem(r_row,r_colname,r_value_d)

NEXT

End If

End If

SetPointer(arrow!)

1.库存信息输入的free 的格式

库存信息输入的grid的格式

库存期初的free格式的输入

库存期初的grid格式的输入

实验九 《 存货子系统》软件编程——业务处理

实验目的:

完成《存货子系统》单表处理模块的编程。

实验环境:

安装Windows操作系统、PowerBuilder软件、SQL Anywhere数据库、教师提供的软件原型平台等。

实验方式:

分组进行。

实验内容:

1、《存货子系统》单表输入、修改处理。

通过继承窗口w_sheet_input,产生窗口w_sheet_input_ch,来实现对《 存货子 系统》单表的输入处理。

窗口w_sheet_input_ch的相关事件及脚本修改如下:

窗口名

w_sheet_input_ch

父窗口

w_sheet_input

实例变量声明

窗口函数

控件事件

脚本

w_sheet_input_ch:

open!

覆盖父脚本:Override Ancestor Script

string r_modi,r_col,r_col_name

integer i

i_type=Message.StringParm

CHOOSE CASE i_type

CASE "ch_rkd"

dw_table.DATAOBJECT="dw_ch_rkd_free"

dw_free.DATAOBJECT="dw_ch_rkd_grid1"

dw_print.DATAOBJECT="dw_c_supp_free"

this.title="存货入库单"

CASE "ch_ckd"

dw_table.DATAOBJECT="dw_ch_ckd_free"

dw_free.DATAOBJECT="dw_ch_ckd_grid"

dw_print.DATAOBJECT="dw_c_supp_free"

this.title="存货出库单"

CASE "ch_xsthd"

dw_table.DATAOBJECT="dw_ch_xsthd_free"

dw_free.DATAOBJECT="dw_ch_xsthd_grid"

dw_print.DATAOBJECT="dw_c_supp_free"

this.title="销售退货单"

CASE "ch_chjcb"

dw_table.DATAOBJECT="dw_ch_chjcb_grid"

dw_free.DATAOBJECT="dw_ch_chjcd_free"

dw_print.DATAOBJECT="dw_ch_chjcd_free"

this.title="存货结存表"

CASE "ch_chpdb"

dw_table.DATAOBJECT="dw_ch_chpdb_free"

dw_free.DATAOBJECT="dw_ch_chpdb_grid"

dw_print.DATAOBJECT="dw_ch_chpdb_free"

this.title="存货盘点单"

END CHOOSE

dw_table.settransobject(sqlca)

dw_free.settransobject(sqlca)

dw_print.settransobject(sqlca)

dw_free.sharedata(dw_table)

dw_free.sharedata(dw_print)

i_col=integer(dw_table.object.datawindow.column.count) //数据窗口的列数

//注意:只有dw_free中挂的下拉数据窗口是带retrieve参数的,dw_table,dw_print均未带

FOR i=1 TO i_col

r_col = "#"+string(i) + ".Name" // "#i"代表第i列, #1.Name为第一列列名.

ename[i]=dw_free.describe(r_col) //ename[i]放第i列列名.

coltype[i]=dw_free.describe(ename[i] + ".ColType")

col_width[i]=dw_free.describe(ename[i] + ".width")

col_height[i]=dw_free.describe(ename[i] + ".height") //dw_vh isused in tab_1.tabpage_3.dw_3_free_v

col_y[i]=Double(dw_free.describe(ename[i] + ".y"))

col_height_t[i]=dw_free.describe(ename[i] + "_t.height")

col_y_t[i]=Double(dw_free.describe(ename[i] + "_t.y"))

// if dw_free.getchild(ename[i],i_dwc)=1 then

// i_dwc.settransobject(sqlca)

// i_dwc.retrieve("%")

// end if

if dw_free.getchild(ename[i],i_dwc)=1 then

i_dwc.settransobject(sqlca)

i_dwc.retrieve("%")

CHOOSE CASE ename[i]

CASE "kh_code"

i_dwc_kh_code=i_dwc

CASE "ht_id"

i_dwc_ht_id=i_dwc

CASE ELSE

END CHOOSE

end if

NEXT

cb_increase.triggerevent(clicked!)

rb_free.triggerevent(clicked!)

rb_free.checked=true

dw_table.x=dw_free.x

dw_table.y=dw_free.y

dw_table.width=dw_free.width

dw_table.height=dw_free.height

w_sheet_input_ch_rkd.width=3488

w_sheet_input_ch_rkd.height=1848

2、《存货子 系统》单表综合查询处理。

通过继承窗口w_select,产生窗口w_select_ch,来实现对《 存货子 系统》单表的综合查询处理。

窗口w_select_ch的相关事件及脚本修改如下:

窗口名

w_sheet_ch

父窗口

w_ sheet

实例变量声明

窗口函数

控件事件

脚本

w_sheet_ch_rkd:

dw_free

clicked!

覆盖父脚本:Override Ancestor Script

int rr,r_dw1_row

ii_row = dw_table.rowcount()

for rr = 1 to ii_row

r_dw1_row=dw_1.getrow()

i_rkd_rkdh=dw_1.getitemstring(r_dw1_row,"rkd_rkdh")

i_rkd_rkrq=dw_1.getitemstring(r_dw1_row,"rkd_rkrq")

i_rkd_yebh=dw_1.getitemstring(r_dw1_row,"rkd_yebh")

i_rkd_ywyxm=dw_1.getitemstring(r_dw1_row,"rkd_ywyxm")

dw_table.setitem(rr,"rkd_rkdh",i_rkd_rkdh)

dw_table.setitem(rr,"rkd_rkrq",i_rkd_rkrq)

dw_table.setitem(rr,"rkd_yebh",i_rkd_yebh)

dw_table.setitem(rr,"rkd_ywyxm",i_rkd_ywyxm)

next

w_sheet_ch_rkd:

Cb_increase

Clicked!

dw_1.insertrow(0)

dw_2.insertrow(0)

w_sheet_ch_rkd:

cb_saved

clicked

string r_chbm

long r_row1,r_rowcount

r_rowcount=dw_free.rowcount()

if r_rowcount = 1 then

r_chbm = dw_free.getitemstring(1,"ch_xsthd")

if isnull(r_chbm)=true then

dw_free.deleterow(r_row1)

end if

end if

long r_row,Net

string r_sheet_type_code,r_flag_code

Net = MessageBox("提示", "是否真的保存?", Exclamation!, YESNO!, 1)

IF Net = 2 THEN return

dw_free.accepttext()

dw_table.accepttext()

if f_check_null(i_type,dw_table,"")=1 then

messagebox("提示","修改后再保存!")

return

end if

r_row=dw_free.getrow()

if not( dw_free.rowcount()>=1 ) then return

if dw_free.update()>0 then

commit;

dw_free.reset()

sle_count.text=""

messagebox("提示","保存成功!")

else

rollback;

messagebox("提示","保存失败!")

return

end if

1.入库单的窗口

2 出库单的窗口

3.销售退货单的窗口

4.存货的盘点表窗口

5.存货的结存表窗口


实验九 《存货子系统》软件编程——导入导出处理

实验目的:

完成《存货子系统》导入导出处理模块的编程。

实验环境:

安装Windows操作系统、PowerBuilder软件、SQL Anywhere数据库、教师提供的软件原型平台等。

实验方式:

分组进行。

实验内容:

1、《存货子系统》的导入导出初始化处理。

通过以下修改来实现对《存货子系统》导入导出的初始化处理:

创建新的全局函数f_i_o_ch()。

通过继承窗口w_i_o_ini,产生窗口w_i_o_ini_ch。

函数名

f_i_o_ch

返回值类型

函数功能

导入导出初始化

参数定义

脚本

INSERT INTO save_import VALUES (

"001","ch_rkd","dw_ch_rkd_grid","01","02","D:\dj\data","ch_rkd","01","入库单","00","000","2002-01-01","2002-01-01","01","","");

INSERT INTO save_import VALUES (

"001","ch_rkd","dw_ch_rkd_grid","02","02","D:\dj\data","ch_rkd","01","入库单","00","000","2002-01-01","2002-01-01","01","","");

INSERT INTO save_import VALUES (

"001","ch_ckd","dw_ch_ckd_grid","01","02","D:\dj\data","ch_rkd","01","出库单","00","000","2002-01-01","2002-01-01","01","","");

INSERT INTO save_import VALUES (

"001","ch_ckd","dw_ch_ckd_grid","02","02","D:\dj\data","ch_rkd","01","出库单","00","000","2002-01-01","2002-01-01","01","","");

INSERT INTO save_import VALUES (

"001","ch_xsthd","dw_ch_xsthd_grid","01","02","D:\dj\data","ch_xsthd","01","销售退货单","00","000","2002-01-01","2002-01-01","01","","");

INSERT INTO save_import VALUES (

"001","ch_xsthd","dw_ch_xsthd_grid","02","02","D:\dj\data","ch_xsthd","01","销售退货单","00","000","2002-01-01","2002-01-01","01","","");

INSERT INTO save_import VALUES (

"001","ch_chpdb","dw_ch_chpdb_grid","01","02","D:\dj\data","ch_chpdb","01","存货盘点表","00","000","2002-01-01","2002-01-01","01","","");

INSERT INTO save_import VALUES (

"001","ch_chpdb","dw_ch_chpdb_grid","02","02","D:\dj\data","ch_chpdb","01","存货盘点表","00","000","2002-01-01","2002-01-01","01","","");

INSERT INTO save_import VALUES (

"001","ch_chjcb","dw_ch_chjcb_grid","01","02","D:\dj\data","ch_chjcb","01","存货结存表","00","000","2002-01-01","2002-01-01","01","","");

INSERT INTO save_import VALUES (

"001","ch_chjcb","dw_ch_chjcb_grid","02","02","D:\dj\data","ch_chjcb","01","存货结存表","00","000","2002-01-01","2002-01-01","01","","");

窗口名

w_i_o_ini_ch

父窗口

w_i_o_ini

实例变量声明

窗口函数

控件事件

脚本

导入导出表初始按钮

cb_ok:

clicked!

覆盖父脚本:Override Ancestor Script

integer NET

Net = MessageBox("提示", "是否真的要对导入导出表进行初始化?", Exclamation!, YESNO!, 2)

IF Net = 2 THEN return

SetPointer(HourGlass!)

f_i_o_ch()

SetPointer(Arrow!)

MessageBox("提示","导入导出表初始化完毕!")

2、《 存货子系统》的导入导出处理。

通过以下修改来实现对《存货子系统》导入导出的初始化处理:

创建新的全局函数f_dw_test_repeat_ch ()、f_dw_test_repeat_del_ch()。

通过继承窗口w_i_o,产生窗口w_i_o_ch。

函数名

f_dw_test_repeat_ch

返回值类型

long

函数功能

对数据窗口中的导入数据进行重复性测试

参数定义

r_type:string

r_dw: datawindow

r_sle: singlelineedit

脚本

//删除导入导出中的重复数据用于w_i_o导入导出

long r_row,r_rowcount,r_count,r_select,r_return=0

string r_primary[]

r_type=lower(r_type)

r_rowcount=r_dw.rowcount()

CHOOSE CASE r_type

CASE "c_operator"

r_count=1

r_primary[r_count]=""

FOR r_row=1 TO r_rowcount

r_primary[1]=r_dw.getitemstring(r_row,"oper_code")

delete from c_operator where c_operator.oper_code = :r_primary[1] ;

NEXT

CASE "ch_rkd"

r_count=1

r_primary[r_count]=""

FOR r_row=1 TO r_rowcount

r_primary[1]=r_dw.getitemstring(r_row,"rkd_rkdh")

delete from ch_rkd where ch_rkd.rkd_rkdh = :r_primary[1] ;

NEXT

CASE "ch_ckd"

r_count=1

r_primary[r_count]=""

FOR r_row=1 TO r_rowcount

r_primary[1]=r_dw.getitemstring(r_row,"ckd_ckdh")

delete from ch_ckd where ch_ckd.ckd_ckdh = :r_primary[1] ;

NEXT

CASE "ch_xsthd"

r_count=1

r_primary[r_count]=""

FOR r_row=1 TO r_rowcount

r_primary[1]=r_dw.getitemstring(r_row,"xsthd_xsthdh")

delete from ch_xsthd where ch_xsthd.xsthd_xsthdh = :r_primary[1] ;

NEXT

CASE "ch_chpdb"

r_count=1

r_primary[r_count]=""

FOR r_row=1 TO r_rowcount

r_primary[1]=r_dw.getitemstring(r_row,"chpdb_pddbh")

delete from ch_chpdb where ch_chpdb.chpdb_pddbhh = :r_primary[1] ;

NEXT

CASE "ch_chjcb"

r_count=1

r_primary[r_count]=""

FOR r_row=1 TO r_rowcount

r_primary[1]=r_dw.getitemstring(r_row,"chjcb_chbm")

delete from ch_chjcb where ch_chjcb.chjcb_chbm = :r_primary[1] ;

NEXT

CASE ELSE

END CHOOSE

return r_return

r_primary[1]=r_dw.getitemstring(r_row,"supp_code") //取关键字

delete from c_supp

where c_supp.supp_code = :r_primary[1] ;

NEXT

CASE ELSE

END CHOOSE

f_sql()

return r_return

函数名

f_dw_test_repeat_del_ch

返回值类型

long

函数功能

删除导入导出中的重复数据

参数定义

r_type:string

r_dw: datawindow

r_sle: singlelineedit

脚本

//删除导入导出中的重复数据用于w_i_o导入导出

long r_row,r_rowcount,r_count,r_select,r_return=0

string r_primary[]

r_type=lower(r_type)

r_rowcount=r_dw.rowcount()

CHOOSE CASE r_type

CASE "ch_rkd"

r_count=1

r_primary[r_count]=""

FOR r_row=1 TO r_rowcount

r_primary[1]=r_dw.getitemstring(r_row,"rkd_rkdh")

delete from ch_rkd where ch_rkd.rkd_rkdh = :r_primary[1] ;

NEXT

CASE "ch_ckd"

r_count=1

r_primary[r_count]=""

FOR r_row=1 TO r_rowcount

r_primary[1]=r_dw.getitemstring(r_row,"ckd_ckdh")

delete from ch_ckd where ch_ckd.ckd_ckdh = :r_primary[1] ;

NEXT

CASE "ch_xsthd"

r_count=1

r_primary[r_count]=""

FOR r_row=1 TO r_rowcount

r_primary[1]=r_dw.getitemstring(r_row,"xsthd_xsthdh")

delete from ch_xsthd where ch_xsthd.xsthd_xsthdh = :r_primary[1] ;

NEXT

CASE "ch_chpdb"

r_count=1

r_primary[r_count]=""

FOR r_row=1 TO r_rowcount

r_primary[1]=r_dw.getitemstring(r_row,"chpdb_pddbh")

delete from ch_chpdb where ch_chpdb.chpdb_pddbhh = :r_primary[1] ;

NEXT

CASE "ch_chjcb"

r_count=1

r_primary[r_count]=""

FOR r_row=1 TO r_rowcount

r_primary[1]=r_dw.getitemstring(r_row,"chjcb_chbm")

delete from ch_chjcb where ch_chjcb.chjcb_chbm = :r_primary[1] ;

NEXT

CASE ELSE

END CHOOSE

f_sql()

return r_return

窗口名

w_i_o_ch

父窗口

w_i_o

实例变量声明

窗口函数

控件事件

脚本

测试重复数据按钮

cb_test:

clicked!

覆盖父脚本:Override Ancestor Script

//对数据窗口中的导入数据进行重复性测试

integer NET

long r_count,r_rowcount,r_row

dw_copy_table.accepttext()

dw_copy_table.SelectRow(0, FALSE) //所有行均不选中

SetPointer(HourGlass!)

r_count=f_dw_test_repeat_ch(i_type,dw_copy_table,tab_copy.tabpage_item.sle_count)

if r_count=0 then

MessageBox("提示", "无重复数据行!")

i_repeat_flag="0" //无重复数据行

else

MessageBox("提示", "有 " + string(r_count) +" 行重复数据!")

i_repeat_flag="1" //有重复数据行

//删除重复数据行

r_rowcount=dw_copy_table.rowcount()

r_count=1

r_row=1

DO WHILE r_count

浅淡存货信息化管理篇5

医院信息化管理系统

一、项目总体目标

本次项目的建设,意在医院信息化管理的创新,通过医院名医的经验记录、整理分析的全程信息化,促进临床科研有机结合,全面提升医院临床服务水平与传承创新能力,弘扬中西医药文化。

二、设计原则

本系统设计须严格执行国家有关软件工程的标准,保证系统质量,提供完整、准确、详细的开发文档资料,应用设计符合国家及医疗卫生行业的相关标准、规范和医院自身的发展规划,遵循现行的或即将发布的涉及电子病历系统的国家法律法规。

2.1设计原则

系统的先进性

从医院的实际需求出发,对此次系统工程进行全面规划,采用现代化的理念和技术,对系统的设计做到合理化、科学化,达到低投资、高效益;
建成系统先进、适应未来发展,并具有强大的发展潜力。

系统的可靠性

此次系统是一个实际使用的工程,其技术是相对成熟的。应当充分利用现代最新技术、最可靠的成果,以便该系统在尽可能长的时间内与社会发展相适应。

系统的可维护性

系统建成后满足一是易于故障的排除,二是系统人性化管理,日常管理操作简便。

系统的安全性

此次系统采用多种手段防止各种形式与途径的非法破坏,建立健全各种保障措施,使系统处于正常运行。系统需在应用层面提供对数据的保护,保护数据的完整性、保密性、抗抵赖性;
需提供所见即所得的痕迹管理功能。

系统的整体性

此次系统为综合系统。针对各子系统有着很好的兼容性,统筹各种因素,预留外接接口,构成一个有机的安全管理系统。

系统的应用性

此次系统的设计完全考虑医院的实际要求。建成后的系统会达到各种使用要求,并会为医院的管理带来便利,提高效率,带来明显的经济和社会效益。

系统的开放性

为了保证此次系统中各供应商产品的协同运行,系统必须是开放系统,并结合相关的国际标准或工业标准进行。

系统的可扩充性

此次系统建成后具有在系统产品的系列、容量与处理能力等方面的扩充与换代的可能。需以医院现有的各种应用系统为基础,进行整合的原则,尽量保护现有投资,以完善和扩展现有系统为主要任务;
需考虑业务扩充带来的使用者和数据量的剧增;

系统的规范性

此次系统是一个规范综合性系统,遵从所涉及的业务的国际标准、国家标准及规范各项技术规定,做好系统的标准化设计与管理工作。

三、系统架构

本系统采用asp.net MVC架构进行开发。采用sql Server数据库。实现医院信息化管理系统。

四、系统主要功能模块1、账户管理(1)用户管理

管理员用户管理,包括账户的添加、修改、删除、冻结等功能。

(2)角色管理

角色管理针对管理员账户,可对管理员账户进行角色设置,设置不同的访问权限。

2、名医信息

系统可维护名医的个人及诊疗学术专长信息,包括个人简介、临床与教学工作、科研成果、学习经历等。

3、项目信息

可维护名医项目的完整信息,包括项目名称、来源、所属单位、单位性质等。

4、课题信息

提供课题的信息维护,并可设置课题与传承项目的所属关系。

5、医案管理(1)医案列表

系统提供传承的医案编辑维护机制,并可设置医案所属课题。

(2)医案编辑

可编辑患者完整诊疗医案内容,包括就诊信息、临床表现、检查检验、辨证分析、诊断信息等。

(3)病历集成

医案编辑时,可查看患者在医院门诊或住院系统中的病历,并可选择引用部分内容。

(4)辅助检查集成

编辑医案中的检查检验结果时,可通过接口集成查看其他系统中的检查报告。

(5)病历文本

系统可汇总显示医案的病历文本,便于出版医案集。

(6)文件管理

可上传医案的辅助文件,保障临床数据完整性。

文件可包括病历照片、检验检查单照片等。

6、患者同步

系统可从院内现有系统同步患者诊疗数据。

系统可查找指定范围的患者,从院内现有系统同步患者诊疗数据。

7、古籍文献系统

古籍文献管理,是对医药古籍进行数字化加工,实现古籍数字化,并提供展示、传播等服务的平台,以达到向公众提供中医药博物馆的全方位信息服务、传播医药文化和保护医药非物质文化遗产的最终目标。

提供浏览阅读、全文检索、研究支持等功能,能给管理者、研究者、公众的管理、研究和阅读提供帮助。

1)古籍文献列表

系统提供名医经典古籍文献列表;

系统可按年代、使用热度等多种方式提供列表。

2)古籍分类

系统支持古籍分类,按基础典籍、养生保健等维度分类显示;

3)文献浏览

系统可选择古籍后,浏览其各章节内容;

4)古籍病证检索

可根据疾病诊断、证候诊断、症状等指标检索古籍文献中的内容;

检索结果中可列出相应关键词的主要上下文。

5)内容定位

系统可显示检索关键词在古籍原文中的定位段落;

可打开调阅其完整内容。

6)高级检索

系统提供对古籍的多维度高级检索;

通过Luncen高级检索可设置更多维度的筛选条件。

7)医案列表

系统提供常见病的医案列表;

可列出近期病案中热搜的疾病关键词。

8)医案疾病分类

提供热门疾病标签,以及各科室疾病的医案分类。

9)推荐医家

系统提供根据医案调阅率进行排名,给出推荐医家列表。

10)医案病证检索

可按疾病诊断、证候、症状名检索经典医案;

并列出相应医案的症状与证候描述。

11)方剂列表

系统提供方剂列表,并可列出方剂的精选;

同时提供方剂分类与名家经验方链接。

12)方剂分类

系统提供规范方剂分类;

方剂分类可按功效联动分类。

13)方剂检索

系统可按方名、功效主治检索方剂;

检索结果列表可显示该方剂主治、出处等。

14)名家经验方

系统可按知名医家列出其典型经验方;

选择某名家则可显示其经验方列表。

15)智慧开方

系统提供根据部位、症状表现的智慧开方辅助决策;

通过向导式选择各部位的症状与临床表现,给出推荐方案。

五、系统性能及安全防护措施

(1)系统安全说明

管理员可以通过采用定期备份功能,对数据进行定期备份。可以将员工误操作,机器掉电,病毒攻击,系统崩溃等人为或其它意外情况造成的损失减少到最低。

将两台服务器通过批处理文件将系统备份做双机热备,避免因一台服务器故障导致数据丢失。

(2)数据加密存储

针对系统中非常核心、隐私的数据,如用户密码、企业端口密码等通过我们自己定义的加密规则进行处理后,再采用MD5加密方式进行加密传输及存储,确保核心数据的安全性。

(3)业务权限与角色管理

系统具备权限控制,所有操作人员将根据系统管理员分配的角色来访问数据。而这种角色的分配与业务模块相结合,可以细化到每一条记录。

(4)登录安全及系统日志

密码强度要求至少八位,必须是数字和字母、大小写字母组合。

建立登录日志,记录用户登录系统的用户名、时间、IP地址、登录状态。

建立操作日志:记录主要业务模块的操作日志,包括增加、修改、删除等关键性操作。

(5)服务器操作系统安全

通过第三方系统安全软件对文件、目录、进程、注册表和服务的强制访问控制,有效的制约和分散了原有系统管理员的权限,综合了对文件和服务的完整性检测、Web过滤防护和防缓冲区溢出等功能,能够把普通的操作系统从体系上升级,使其符合国家信息安全等级保护服务器操作系统安全的三级标准。

六、系统部署需求

部署硬件防火墙和正版杀毒软件,禁用不用的端口。

∙部署硬件防火墙,封闭一些不用的端口;

∙部署应用防火墙,防止网页篡改、跨站脚本攻击、Ddos攻击等;

∙配置两台服务器,将平台同时部署在两台服务器上,形成双机热备。

推荐访问:浅淡 存货 信息化管理 浅淡存货信息化管理 浅淡存货信息化管理 存货的信息化管理

版权所有:广义范文网 2019-2024 未经授权禁止复制或建立镜像[广义范文网]所有资源完全免费共享

Powered by 广义范文网 © All Rights Reserved.。备案号:闽ICP备19004867号-1