存档

2013年4月 的存档

NAV 2009 – Course 80042 – Development I (CSIDE introduction) 3

2013年4月25日 评论已被关闭

时间: 2013年04月24日 晚20:00 – 21:30
地点: YY频道 40215226
内容: NAV 2009 – Course 80042 – Development I (CSIDE introduction) 3

视频:

Dev – 3
Table / Form

dev-2.flf 可以开发Table/Form/Report…
DevStudy.flf 仅能作为入门应用使用,不适合代码级别的开发.

Navision 2009 SP1

一共包括有以下元素:

1. Table. 表. 二维行列数据成为表. 一行成为一条记录. 1列称为1个字段. 10行x3列, 表一共有10条记录,3个字段. 共30个数据信息

2. Form 窗体. 可以可视化定制的提供给用户的操作界面. 输入与输出业务, 可以不受太多干扰,专注业务的完成数据操作.

3. Report 报表. 提供用户打印输出操作. 页面的概念(页头/页尾). 合计与分类汇总.

4. Dataport 数据接口. 平面(float)文本形式的数据交换接口. EDI

5. XMLport 数据接口. XML格式文本的数据交换接口. 根\节点\元素\属性. 生产排程就是XMLport的典型应用

6. Codeunit 代码单元. 模块. 更多的复用. 重复使用.

7. Menusuite 菜单包. 左侧的导航菜单定制. (定制Windows的资源管理器树)

8. Page 页面. 提供给用户的操作界面. (RTC和WebService中调用实现)

Table 信息化管理系统的设计, 学生成绩管理系统.

学生成绩管理系统 (8个表, 50002-50009)

学生信息 50002 student(学号,姓名,性别,年龄,班级编号,入学年份,学年,已修学分,备注)
班级信息 50003 class (班级编号,班级名称,专业编号,班级教师,学生人数,男生人数,女生人数,备注)
专业 50004 Profession(专业编号,专业名称,系编号,专业方向)
系 50005 Department(系编号,系名称,系主任)
教职员信息50006 teacher(工号,姓名,性别,联系电话,备注)

学生成绩 50007 score(Entry No., 学号, 课程编号, 考试时间, 考试成绩, 学分)
课程 50008 Course(课程编号, 课程名称, 学分, 课程类别)
课程类别 50009 CourseType(课程类别, 课程类别说明)

创建表的过程:
Object Disigner \ Table, New, 新建表
打开Table Disginer, 进行表的字段设计.
Table的Run界面, 进行表的记录维护

数据记录的输入限定:

数据字段类型, 根据不同的数据类型, 系统将自动作出判断用户输入数据是否符合数据类型
数据长度, 限定输入的内容必须在长度之内, Navision的Text/Code类型最大长度250个字符
数据关联, 使用Table relation, 可以创建表之间的关联关系

Table的Key
主键. 主键字段列的数据不能重复. 一个表必须有一个主键. 默认表的第一个字段是主键.
外键. 除主键以外的Key, 都称为外键, 用于排序或者计算.

字段类别 FieldClass
Normal, 表示保存在SQL Server中, 物理存放的数据
FlowField, 则表示计算型数据. CalcFormula中填写计算表达式. 相当于SQL中的 字段 = (select sum(x) from kkk where nnn=zzz)
FlowFilter, 仅仅用于过滤条件. 不显示在表中. 而是通过. FlowFilter 必须通过FlowFilter 过滤来实现

使用向导, 分别创建50002-50006 表对应的窗体

Table的Lookup Form ID 可以实现对应的列表显示

分类: C/AL, Training 标签:

NAV 2009 – Course 80042 – Development I (CSIDE introduction) 2

2013年4月19日 评论已被关闭

时间: 2013年04月18日 晚20:00 – 21:30
地点: YY频道 40215226
内容: NAV 2009 – Course 80042 – Development I (CSIDE introduction) 2

视频:

Development – II

目标:

排序程序设计

循环-口诀表程序设计 – (Excel 输出)

Adv. Mgt. Tools

课程:

1. 函数应用举例:
数字相关函数:
ABS, 绝对值

练习ABS函数的环境:
建立一个Textbox, 设定源为定义变量v5. 表示输入
建立一个Textbox, 设定源为定义变量v6. 表示输出
建立一个CommandButton, ABS, 表示执行ABS函数.
在CommandButton的OnPush事件中, 编写代码 v6 := abs(v5);

练习ROUND函数的用法

练习字符函数练习
STRSUBSTNO
STRPOS

练习日期函数练习

2. 数组变量运用
1) 创建数组变量. 10个长度的数组变量
2) 数组变量逐一赋值. v[1] := 10;
3) FOR 循环, 实现快速全部赋值.
4) FOR 循环 + IF条件, 实现排序

3. 语句运用
顺序: 默认所有的程序都是顺序执行的

条件语句:
IF 条件 (如果多条件,使用括号包括, AND / OR 组合) THEN
BEGIN
按条件执行的语句.
END;

双执行条件语句
IF 条件 (如果多条件,使用括号包括, AND / OR 组合) THEN
BEGIN
按条件执行的语句.
END ELSE BEGIN
条件不成立时执行的语句.
END;

分支语句:
CASE 变量 OF
值1: 语句1;
值2: 语句2;
值3: 语句3;
ELSE 语句4;
END;

0-3000, 100
3001-5000,300
5001-8000,500

循环语句:
FOR 变量 := 开始变量 TO 结束变量 DO //从低到高
BEGIN
循环体;
END;

FOR 变量 := 结束变量 DOWNTO 开始变量 DO //从高到低
BEGIN
循环体;
END;

当条件为真时执行循环, 否则退出循环. 当条件首次不成立,则不执行循环
WHILE 条件 DO
BEGIN
循环体;
END;

当条件为真时退出循环, 程序无论条件如何, 都将执行一次.
REPEAT
Begin
END;
UNTIL 条件;

4. 函数的自定义 (了解Adv. Mgt. Tools 是如何构建的)
可以把各种熟悉的算法,语句汇集成函数库, 以备各项条件下的调用和执行

中文或者字符的换行输出. \

把其他所擅长语言的函数/算法转为用Navision来书写. 这也是一个非常不错的代码熟悉过程

程序相关Object下载: 20130419_RPT

分类: C/AL, Development, Training 标签:

数据恢复记录

2013年4月17日 评论已被关闭

最近硬盘出现损伤, 瞬间产生大量坏道. 并且从后往前蔓延. 自己尝试了数据恢复, 经验记录如下:

首先, 切忌不要再次尝试读取数据. 不要再有更多的使用操作, 这点我没有做到, 连续使用Windows下的RoboCopy / 以及PE下FastCopy进行文件复制, 造成损伤面扩大.
准备1块大于故障硬盘大小的硬盘, 再准备1块数据接收盘(只要可以用来放文件就可以)

2. 购置容量一致的新硬盘一块, 挂载并在HDClone 4的iso直接启动下进行跳过坏道按扇区(1个扇区坏掉, 就意味着512字节数据确实无法用了)复制, 分区复制效果会好于磁盘复制, 并有利于控制.

3. HDClone 4结束后会尝试进行坏扇区强制读取, 时间会非常漫长, 这次我的坏道读取时间达到530小时以上. 无奈放弃了. 这时扇区已经坏的更多了.

4. 由于HDClone 4强制结束, 数据已经写入新硬盘, 但是其文件并没有办法在Windows下访问和读取, 而是要求格式化.

5. 使用DiskGens备份分区表. 然后用WinHex打开磁盘(注意, 不能打开分区, 打开分区是无效的). 在磁盘上选择分区2, 打开. 报错, 忽略. 继续操作

6. 在WinHex上进行两种方式恢复. 方法1, 直接文件夹上点右键, 复制到再准备的1块新硬盘上. 注意查看丢失的文件夹, 里面有好多目录, 按照之前的文件夹结构记忆恢复吧. 截至此处, 已经恢复完大概70%的数据.

7. 在WinHex上的方法2, 在磁盘的分区2上选择 通过文件类型复制, 提前准备好文件类型标志, 标志可以通过16进制查看器来了解到, 如pst文件是!BDN, 可以恢复255M以下的大部分文件. 在此基础上, 也可以尝试磁盘上查找, 并自己标识文件头/尾来恢复超过255M以上的文件. (用此方法需要了解文件结束标志). 结果只实现了一小部分pst的恢复, 其他都没有恢复过来. 文件的类型信息不熟悉.

8. 文件已经全部恢复到再准备的1块新硬盘上了, 大部分文件估计都是可以直接使用了, 一部分doc/docx/rar/pst等不能使用, 就使用相应的文档修复器再次执行修复, 如pst在Outlook下不能直接加载,使用scanPst, 修复后就可以加载了. doc不能打开, 打开提示修复, 选择修复后也就可以打开了.

至此, 基于软件的修复方式完成, 各位朋友有更多的方式/方法, 请协助提供. 我将尝试.

目前阶段, 故障磁盘已经无法再用Windows访问, 连接就要求格式化. 并持续咔嗒咔嗒响.

数据恢复方面:
vhd虚拟机, 90%的VHD已经恢复, 还未验证是否可用.
pst, 95%已经恢复, 由于坏道, 部分邮件丢失. 使用scanPst修复后Outlook才能访问. 已经基本满意了.
fdb,fob 60%的已经恢复, 由于文件较大, 还没有验证恢复结果, 估计不一定能用, fdb, Navision启动后会自动做块修复, 不保证可用. fob就很危险了. 如果没有了标志位, 就只有期待看fob的分割了. 这个比较悲剧
rar/zip/doc/sln等文件, 恢复的比较多, 同时坏的也比较多. 还没有找到好的验证工具来验证文件是否损坏.
QQ聊天记录, msg2.0.db 文件太大, 无法修复和打开, 也没有修复工具, 所以看到文件也没法使用.

分类: System 标签:

NAV 2009 – Course 80042 – Development I (CSIDE introduction) 1

2013年4月16日 没有评论

时间: 2013年04月11日 晚20:00 – 21:30
地点: YY频道 40215226
内容: NAV 2009 – Course 80042 – Development I (CSIDE introduction) 1

视频:

Development I

Chapter 1 / 5 / 6 / 7 / 8

Chapter 2 / 3 / 4 / 9 / 10 / 11 / 12 / 13

4/11, Chapter 1 / 5 / 6 / 7

MDI, Multi Document Interface / SDI

通用开发环境: 工具箱,代码,属性,字体,风格,数据字段列表,变量/常量/函数定义/对象资源管理器
(Navision的IDE环境叫做C/SIDE, 类似于vs.net VB / Excel VBA的IDE环境,)

Navision的特有环境: (数据库, 相当于其他环境里面的项目)

数据库\公司\对象 (Table)
数据库\对象 (Form/Report/Dataport/xmlport/codeunit/Menusuite / 一部分Table)

环境搭建:
1. 创建数据库
2. 创建一个公司,如Cronus
3. 打开 对象资源管理器
4. 创建对象. 创建一个简单的Form 对象(a blank form). 实体, Form –> 显示, Report –> 打印机
5. 保存对象. (Object ID = 50000, Name = test1)
6. 查看其他对象. (Table / Dataport / XMLPort / Codeunit / Menusuite / Page)

如何来学习一门程序开发环境与语言?
(Basic / C / Java 谭浩强 )

1. 了解语言的特点.
(常量与变量的定义与类型. 是否强定)
(语法 — 函数, 通过接近自然语言的函数名的调用,快速实现功能)
(语法 — 语句, 逻辑执行方式. 顺序, 条件, 循环)

2. 环境的熟悉以及环境的搭建

3. 勤学苦练. 多书写,练习,测试 (调试)

对于Navision开发人员的要求, 还需要了解Navision的特有对象和环境;以及业务逻辑
对于Navision应用人员的要求,通过对开发环境的熟练掌握, 可以实现非常快速的辅助业务分析

Navision环境实践:

1. 常量与变量
变量 := 是Navision的变量定义方式, 达到右侧的常量赋值给左侧变量的功能, 如果右侧是计算式, 则计算后再赋值给左侧变量.
如何在变量管理器中定义变量?
定义好的变量如何赋值?
变量如何使用?
如何查看变量类型?
; 表示一行语句的结束

Navision的语言和语法叫做C/AL, 是类似于Pascal的执行语言.

2. 函数 (MESSAGE)
MESSAGE

STRSUBSTNO
STRPOS
STRLEN, 字符的长度
INCSTR
COPYSTR
MAXSTRLEN
PADSTR
DELCHR
STRCHECKSUM
CONVERTSTR
LOWERCASE
UPPERCASE
SELECTSTR
DELSTR
INSSTR
ROUND
ABS
ABS
RANDOMIZE
RANDOM
TODAY
TIME
WORKDATE
CALCDATE
NORMALDATE
CLOSINGDATE
DATE2DMY
DATE2DWY
DMY2DATE
DWY2DATE
DATI2VARIANT
VARIANT2DATE
VARIANT2TIME
CURRENTDATETIME
ROUNDDATETIME
CREATEDATETIME
DT2DATE
DT2TIME
COMMANDLINE
ENVIRON
OSVERSION
SHELL
HYPERLINK
SLEEP
GUIALLOWED
CONTEXTURL
APPLICATIONPATH
TEMPORARYPATH
ISSERVICETIER
ARRAYLEN
COMPRESSARRAY
COPYARRAY
CLEAR
CLEARALL
CREATE
EVALUATE
FORMAT
VARIABLEACTIVE
ISCLEAR
COPYSTREAM
CREATEGUID
ISNULLGUID
ISNULL

附, 急寻支持KVM/Xen的VPS, 请各位朋友帮忙推荐, 谢谢!

分类: C/AL, Development, Training 标签: