序号、合计,合计用页脚方式,动态形成序号,必须添加标准右键菜单,窗口必须有 caption,必须标明系统分析人员、程序编制人员,所有录入类、循环计算类不得出现 MESSAGE 框为 SQL 语句代码,所有编译后的程序设置的断点要清除。
五、所有窗口均按照 1024X768 设置,窗口显示位置为桌面居中位置设置 position 属性为poDesktopCenter,大小为占桌面屏幕的 1/4 为适,所有窗口必须设置为置前属性设置 Formstyle 属性为 fsStayOnTop,保证调用子窗口时显示在最前。
六、Dbgrideh 的菜单使用右键标准菜单,包含筛选、升序、降序、多行合计、导出 excel,基础库维护时还要有多行替换功能。
七、所有月份数据要形成月份表,如 qcsjb、mksyjlb,并同时修改查询程序,利用通用的月份查询函数,每个月底要进行结转。
八、所有连接非 SQL 数据库的表(接口程序除外),必须建立 SQL 表,维护后导出,不允许直接读写。
九、编制程序要充分考虑输入时的出错情况:判断是否输入了空格,是否输入了不合规则的内容,判断大小写,在程序中做出判断和限制。
如包装入库数据,导出
VFP 时必须为大写,可以直接将录入的内容转换在大写,再如进入结存数据,先判断录入的产品是否是存在的产品,否则造成结存表中的数据不正确。
十、所有单位引用统一、维护一致、显示顺序按照包装、加工、库……显示,考核汇报除外。
十一、对基础库维护信息都要记录,除记录字段更换信息外,还要求录入员和更新时间。
十二、实时计划、外贸业务、成本管理各类程序增加一级界面(点击主窗口按钮即显示的界面)时,均增加记录使用人、使用机器 IP、使用计数信息,具体方法:在新增 form 的 onshow 事件中增加程序类型(ssjh、unit1、cbgl)‘.jrmkself.Caption’ onclose 事件中增加程序类型(ssjh、unit1、cbgl)‘.lkmkself.Caption’语句,用于记录模块使用信息。
十三、用程序实现的数据更改,在程序试运行前必须经主任审批,主任不在时由代理人员审批。
十四、所有录入类、查询类中的必须录入项,如没有录入必须提示,否则不能执行。
十五、所有计算类程序实现,先查看数据类型,用 QY 连接实现公式计算的,参照 SQL 函数使用方法,用DELPHI 连接字段或变量计算的,参照 DELPHI 函数使用方法。
十六、代码必须采用缩进格式表示嵌套多层嵌套的也遵循此规则。
标准格式,如下:缩进快捷键:CTRLSHIFTI 为向后,CTRLSHIFTU 为向前,选中部分块后可以直接按快捷键操作。
输写各层嵌套时可先将 BEGIN……END 对应,然后再进行嵌套。
while do begin if then begin if then begin end else begin end end else begin end end十七、跳转语句语法:1、if 语句:会计算一个表达式,并根据计算结果决定程序流程。
If 保留字后跟随一个生成 boolean 值True 或 False 的表达式。
一般用“”作为关系运算符,比较产生一个布尔型值。
当表达式为 True 时,执行 Then 后的语句。
否则执行 else 后的代码,if 语句也可以不含 else 部分,表达式为 False 时自动跳到下一行程序。
If 语句可以嵌套,当使用复合语句表达时,复合语句前后需加上 begin……end。
Else 保留字前不能加 ”, “; 而且, 编译器会将 ELSE 语句视为属于最靠近的 IF 语句。
必要时,须使用 begin……end保留字来强迫 else 部分属于某一级的 if 语句。
1、单个条件: if 条件 then A、待执行语句单行时: 执行语句; B、待执行语句多行时: begin 语句 1… 语句 2… …… end2、选择条件: If 条件 1 and 条件 2 OR(条件 3)…… then3、ELSE 使用语法: If 条件 then 语句 1 Else 语句;4、以上可以多层嵌套,每个嵌套里面均遵循以上语法。
2、case 语句:Case 语句适用于被判断的变量或属性是整形、字符型、枚举型或子界型时用 case 语句进行逻辑跳转比编写复杂的 if 语句容易阅读,而且程序代码整形较快。
例:Procedure Tform1.button1clicksender:TobjectVar Number:integerBegin Number:strtointedit1.text case number of 13579:label2.caption:’奇数’; 02468:label2.caption:’偶数’; 10..100: Begin Label2.caption:’在 10 到 100 之间’ Form1.color:clblue End Else Label2.caption:’大于 100 或为负数’ END END END.十八、循环语句语法: 1、repeat 语句 i:0 repeat i:i1 writeni until i10 2、 while 条件 do begin end 3、升序:for i:0 to a do/降序: for i:a downto 0 do begin end十九、在应用程序中所有 QY 的 connection 设置为主 FORM 中的 Adoconnection,所有的连接数据库设置均 在 INI 文件中实现。
二十、多条语句不能写在一行,一条语句过长应分行写,分行尽量做到平均、层次性与语句的完整性。
例:qy2.SQL.Addupdate bm set jhdhjhdhqy1.FieldByNamelb.AsString where rqzxrq and gxListBox1.ItemsListBox1.ItemIndex and charindexxmqy1.FieldByNamesm.AsStringgt0二十一、程序流程要清晰,一条 sql 语句实现的功能要单一。
Sql 查询结果使用虚拟表保存的,使用前后清除虚拟表。
二十二、使用 else 语句时要避免语句过长,造成 if else 混乱。
二十三、多个系统调用的模块,要形成 DLL 文件,要有模块使用记录,更新时同步更新。
二十四、遇到需要与
VFP 接口的程序,要将
VFP 表维护好以后形成 SQL 表,不能直接连
VFP 表,导出
VFP表后在原程序中使用。
二十五、sql 与 delphi 常用函数对照、使用方法及注意事项:1、在 delphi 程序中用变量取数据库表中字段值时,用 DELPHI 的类型对应 SQL 表字段中的类型来声明变量的类型。
2、在程序中执行 SQL 语句时,用 SQL 语句的语法。
3、经常用到的函数列表: delphi sql 字符型 string varcharnvarcharchartext 字段 整型 integer int 类型 小数型 double floatnumeric 日期时间型 tdatetime datetime 截取 Copymaskedit1.text12 substringrq12 Pos‘101’qy1.fieldbyname Charindex‘101’bhxs 字符位置 ‘bhxs’.asstring Round4.55round3.53 函 数取值规则为四舍六入五取偶, 取小数位数 Formatfolat’0.00’1.1234 Round1.123421.12 ’1.12’ 函数 取整 Trunc4.94 Round1.123401 Inttostrqy1.fieldbyname‘d Castddqs as varchar10 dqs’.asintegerfloattostr 类型转换 convertinta.LcLastDate10-a. strtointstrtofloatdatetim sndate etostr 取长度 Length Len 大写 Uppercase() Upper() 小写 Lowercase() Lower() 去左边的空格 Ltrim() 去空格 Trim 去右边的空格 Rtrim() 举例如下: je:strtofloatformatfloat‘0.00’ qy1.fieldbyname‘dj’.asfloatqy1.fieldbyname‘ddqs’.asinteger qy1.sql.add‘select roundcasthgjs as float/castjhjs as float2… ’ 4、所有 Format类型的函数,返回的类型均为字符型,在使用时注意,类型要对应。
5、整形的字段进行数值计算时必须先转换成 float 型后再计算。
二十六、函数、过程的使用:1、函数的声明:函数头:Functionlt函数名gt(lt形式参数表gt):lt类型gt函数体:Beginlt语句gtlt语句gt……lt语句gtEND2、在函数体中必须有一个赋值语句,将函数的返回值赋给函数名。
例:Function Totalxy:integer:integerBegin Total:xyEnd3、函数的调用:例:Procedure Tform1.Button1ClickSender:TobjectVar Xyz:integerBegin X:2 Y:3 Z:totalxy//调用函数 Label1.Caption:inttostrzEndEnd.4、函数在主 FORM 中声明,其它模块调用时,在 USES 窗口位置处,加引用的单元文件名,调用方法为 FORM名“.”函数名。
按函数设置的参数赋值。
5、函数与过程的差异:过程的关键字为 Proceduce,在函数声明中,必须指明函数的返回类型,而过程不需要返回任何类型的值,无需声明返回类型,在函数体中,必须将函数的返回类型赋给函数名,而在过程中则不存在此语句。
6、函数及过程其它要求:A、函数体或过程内容的编制在 FORM 的 begin……END 范围之内进行编制,是单独的,不要含在其它的控件或事件之内。
B、函数或过程内容查看方法:按 CTRLSHIFT鼠标点击,然后按向下箭头,便可达到函数体或过程内容。
C、函数体内容的编制方法:先进行函数或过程声明,函数/过程命令FORM 名函数/过程名(参数 1:类型;参数 2: ) 返回的参数值与定义的类型一致, 类型; 注: 在 form 名要与当前的 FORM 名一致, BEGIN……end之间编制实现功能。
例:Procedure Tcbgl.sx1component:stringform:stringD、函数或过程引用:函数或过程所在的 FORM 名“.”函数或过程名参数 1 值参数 2 值……非参数定义的变量,要先赋值,再引用。
例:cbgl.sx1ActiveControl.NameZZCLMXE、对不同的数据或通过参数赋值,执行同样的程序语句,多次复用的要抽出来做成函数或过程,以实现代码优化与复用。
F、跨月查询函数语句调用方法:当月表名不带月份时,调用 fycx 函数,带月份时调用 fycx1 函数。
具体方法:函数名起始日期截止日期表名1 a: a:a select 字段 from zzbm0 条件 for i:1 to zzbm.Count-1 do begin a:a union all select 字段 from zzbmi 条件 end。
二十七、公共属性部分:序号 属性名称 属性说明1 Caption 设置窗口、控件等的显示内容。
2 name 窗口、控件的名称。
3 visible 窗口、控件是否可视。
4 enabled 窗口、控件是否获得焦点。
5 Taborder 控件获得焦点的顺序。
6 Align 控件布局。
7 font 字体各项设置。
一般设定宋体 118 readonly 设置控件是否只读。
二十八、常用事件列表:序号 事件名称 事件说明1 onshow 窗口显示时触发,在此事件中一般声明公共变量、函数过 程等,格式设置,dbgrideh、combobox 等控件的数据来 源实现,动态设置控件属性内容。
2 onclose 关闭窗口,释放内存。
Form 名.Release3 onclick 控件单击时触发。
一般情况用在命令按钮中。
4 ondbclick 双击控件时触发。
一般用在 DEGRIDEH 控件中。
5 onchange 当控件内容改变时触发。
一般用在 COMBOBOX、RZEDIT 等 此类控件。
6 onexit 当焦点离开控件时触发。
一般用在非 DBGRIDEH 控件实现 的数据录入,如统一领转录入。
7 onkeypress 通过键盘操作触发,一般用于回车键代替 TAB 键。
8 Beforepost 读取数据表中数据,有改变的记录,在更新记录之前触发 的事件,一般用于记录更新信息及自动计算项目。
一般用 于 QY 控件。
9 afterpost 更新完数据后触发,一般用于记录更新后信息。
一般用于 QY 控件。
二十九、虚拟表使用方法:1、虚拟表命名方法:表名;2、判断虚拟表是否存在,如果存在则删除: qy1.Close qy1.SQL.Clear qy1.SQL.Add‘if object_id‘’tempdb..1’’ is not null’.
上一篇:
labview_cvi扫盲技术贴
下一篇:
2018 TC汽车互联网大会 展台销售火爆,现已售罄