当前位置:首页 > 其他书籍
Visual Basic编程实用大全 精华版
Visual Basic编程实用大全 精华版

Visual Basic编程实用大全 精华版PDF电子书下载

其他书籍

  • 电子书积分:17 积分如何计算积分?
  • 作 者:(美)Ted Coombs,(美)Jon Campbell著;邓少鵾,邓云佳等译
  • 出 版 社:北京市:中国水利水电出版社
  • 出版年份:2005
  • ISBN:7508428900
  • 页数:573 页
图书介绍:本书对Visual Basic做了全方位的介绍,深入浅出地讲述Visual Basic各种编程诀窍,以高屋建瓴的眼光看待VB编程的诀窍和思想,力图将最全面最实用的技术展现给读者。本书以其翔实知识面的覆盖、大量实用的示例和作者自身丰富的编程经验,详细介绍了Visual Basic语言的基本概念、输入与输出、流程控制、控件、数据库应用、报表、ActiveX及其在Web和网络方面的应用开发等等。全书面向实例进行阐述,讲解透彻独到。本书既可作为初学者和大专院校师生的自学参考书,也可作为计算机软件开发人员的技术参考书。
《Visual Basic编程实用大全 精华版》目录

2 编写第一个Visual Basic程序 1

87 使用Exit Do结束循环 5 1

目录 1

精华版序 1

译者序 1

1 Visual Basic工程文件说明 1

4 使用Visual Basic常量 2

3 换行显示输出 2

6 开始理解作用域 3

5 捕获程序中的错误 3

7 使用DIM语句 4

9 声明过程变量 5

8 声明模块和窗体级的变量 5

11 使用Public关键字定义变量 6

10 协调变量名冲突 6

13 理解变量类型 7

12 为变量赋值 7

15 理解VisualBasic的关键字 8

14 声明同样类型的多个变量 8

18 理解Integer类型变量 9

16 理解Option Explict语句 9

17 理解OptionBase语句 9

19 理解Long类型变量 10

21 理解Single类型变量 11

20 理解String类型变量 11

24 理解Currency类型变量 12

22 理解Boolean类型变量 12

23 理解Byte变量类型 12

26 理解Double类型变量 13

25 理解Date类型变量 13

29 理解控件类型 14

27 理解Object类型变量 14

28 理解Variant类型变量 14

31 给Integer和Long类型的变量赋值 15

30 给浮点变量赋值 15

35 给Byte类型变量赋值 16

32 给String类型变量赋值 16

33 给Single和Double类型变量赋值 16

34 给Boolean类型变量赋值 16

37 理解Object类型的变量 17

36 给Currency类型的变量赋值 17

39 理解溢出 18

38 给Date类型的变量赋值 18

40 理解精度 19

41 引号和其他字符的赋值 20

43 使用Debug.Print来输出信息 21

42 使用Chr函数 21

45 使用Format函数将数字转换成字符串 22

44 使用Str函数将数字转换成字符串 22

46 使用Format函数将日期转换成字符串 24

47 Visual Basic的基本数学操作 25

49 理解运算符的优先级 26

48 理解按模运算 26

50 强行改变运算符的运算顺序 27

52 理解Xor运算 28

51 理解按位操作的Or运算 28

53 理解按位操作的And运算 29

54 理解按位操作的Eqv运算 30

55 理解按位操作的Imp运算 31

57 测试If-Then的条件 32

56 理解VisualBasic如何表示True和False 32

59 执行相关判断 33

58 理解圆括号在条件语句中的用途 33

61 执行逻辑Or运算来两个条件进行判断 34

60 执行逻辑And运算对两个条件进行判断 34

63 执行逻辑Xor运算 35

62 执行逻辑Not运算 35

64 执行逻辑Eqv运算 36

65 执行逻辑Imp运算 37

67 测试浮点值 38

66 将判断条件的结果赋值给变量 38

69 定义常量 39

68 不间断循环 39

70 谨慎使用If-If-Else 40

71 在限定次数内执行语句 41

72 For语句的可选部分 42

75 For-Next循环不仅仅适用于Integer变量 43

73 在For-Next语句中使变量递减 43

74 控制For-Next循环的步长 43

77 无限(Infinite)循环的危险 44

76 理解DoEvents循环 44

79 改变控制变量的值 45

78 使用For-Next的嵌套循环 45

80 在条件语句中使用Next 46

82 使用Do循环重复执行一条或者多条语句 47

81 使用Exit For语句终止循环 47

83 理解Do循环的组成部分 49

85 总是使用Do循环执行一条或多条语句 50

84 使用While-Wend创建循环 50

86 使用Do Until Loop重复执行一条或者多条语句 51

89 测试多个条件 53

88 GOTO分支 53

90 理解Case Else语句 56

93 Visual Basic如何保存可变长度的字符串 57

92 Visual Basic如何保存字符串 57

91 可视化Visual Basic字符串 57

94 理解零结尾字符串 58

96 使用Option Compare Text开关 59

95 如何区分A和a 59

98 将String变量的字符复制到另外一个String变量中 60

97 确定字符串的长度 60

99 将String变量的内容添加到另一个String变量中 61

101 处理超长字符 62

100 在String变量中添加N个字符 62

103 捕获String变量中的第一个出现的字符 63

102 在确定字符串是否相等时忽略大小写 63

104 理解Simple语句和Compound语句 64

106 计算String变量中出现同一字符的次数 65

105 寻找字符串中最后一个出现的字符 65

107 逆向显示String变量的内容 66

108 两个字符串的比较 67

109 两个字符串前N个字符的比较 69

110 将字符串转换为数字表示 70

111 在字符串中定位子字符串 71

112 从字符串的一个位置返回n个字符 72

114 使用TextBox控件 73

113 计算子字符串出现的次数 73

116 使用RichTextBox控件的Find方法 75

115 使用RichTextBox控件 75

117 获得最右边子字符串的位置 76

118 在字符串中删除某个子字符串 77

119 用另一个子字符串替换某个子字符串 78

120 在RichTextBox控件里删除文本 79

121 在RichTextBox控件里使用其他文本替换控件里的文本 80

123 判断一个字符是否是数字 81

122 判断一个字符是否是字母表中的字符 81

126 将一个字符转换为大写或小写字母 82

125 判断字符串是否是Date 82

124 判断一个字符是否是大写或者小写 82

127 对ASCII字符进行操作 83

129 对字符串使用Select Case 84

128 格式化字符串变量 84

131 使用函数返回值 85

130 使用换行变量 85

133 理解局部变量 86

132 指定参数类型 86

134 理解函数的系统开销 87

136 声明全局变量 88

135 通过声明参数类型来减少系统开销 88

137 解决全局变量和局部变量名的冲突 89

139 理解传值调用 90

138 更好地定义变量的作用域 90

140 为什么传值调用可以防止参数值的改变 91

141 改变参数值 92

142 只改变指定参数 93

143 可记忆的函数变量 94

144 可记忆的过程 95

146 使用关键字Static可能引起的错误 96

145 Visual Basic如何初始化静态变量 96

148 理解作用域 97

147 理解形参和实参 97

150 使用具有Variant参数的VarType成员函数 98

149 使用Variant函数来返回未知类型的值 98

151 使用TypeName成员函数 99

152 在返回值中使用VarType或者TypeName 100

153 在函数中更新全局变量 101

154 使用函数更改算术表达式中的变量 102

155 在窗体上创建Private过程 103

157 理解递归 105

156 从过程中调用过程 105

158 理解递归Factorial函数 106

159 通过显示值来更好地理解递归 107

160 是否使用递归 108

161 对Date进行处理 109

162 如何消除递归 110

164 理解标识符的可见性 111

163 理解名称空间和标识符 111

166 支持可变数目的参数 113

165 支持参数数目可变的函数 113

167 创建一个支持多类型、多参数的函数 114

168 使用关键字Optional 115

170 使用缓冲输入 116

169 理解IsMissing成员函数 116

171 使用输入框来接收输入 117

172 使用TextBox控件来执行缓冲输入 118

173 使用直接I/O读取字符 119

174 清除屏幕上的所有域 120

175 控制屏幕的色彩 121

176 分配背景颜色 122

178 使用余弦/正切 123

177 使用Abs函数 123

180 使用反正切 124

179 使用正弦/余切 124

182 对指数进行处理 125

181 对浮点值进位 125

184 计算以10为底数的对数 126

183 计算自然数的对数 126

186 将浮点值分割成小数部分和整数部分 127

185 确定最大和最小值 127

187 计算一个数的N次方 128

189 将随机值映射到指定范围 129

188 生成随机数 129

192 计算角的正切 130

191 计算一个值的平方根 130

190 启动随机数生成器 130

194 执行Rate计算 131

193 执行现存净价值计算 131

195 创建一个自定义的数学错误处理程序 133

197 数组的可视化 135

196 声明一个数组 135

198 数组的初始化 136

200 通过数组元素进行循环 137

199 数组元素的访问 137

202 向函数中传递数组 138

201 使用常量来定义数组 138

203 再次阐述数组和函数 139

204 向过程传递数组 140

205 数组的动态分配 141

207 理解多维数组 142

206 从分隔字符串中创建一个数组 142

209 在二维数组中初始化元素 143

208 在二维数组中访问元素 143

211 二维数组的遍历 144

210 判断多位数组消耗的内存数量 144

212 遍历一个三维数组 145

214 结构数组的数组 146

213 向函数传递二维数组 146

216 理解二元查找 147

215 在一个数组中寻找一个指定的值 147

217 使用二元查找 148

218 理解冒泡排序 149

220 使用选择排序 150

219 使用冒泡排序 150

221 理解Shell排序 151

222 使用Shell排序 152

223 使用快速排序 153

224 排序字符串数组 154

225 通过Quick_Sort函数排序数组 155

226 用Seq_One_Find搜索数组 157

227 使用TypeName成员函数 159

228 用Bin_Search搜索一个已排序数组 160

229 确定数组元素的个数 161

231 理解结构 162

230 循环遍历字符串数组 162

233 在结构中使用Public和Private关键字 163

232 声明一个结构变量 163

235 使用结构 164

234 形象化一个结构 164

236 向函数传递结构 165

237 改变函数内部的结构 166

239 使用嵌套的结构 167

238 初始化结构 167

241 创建一个结构数组 168

240 包含数组的结构 168

242 使用DriveListBox控件 169

243 使用DriveListBox控件改变驱动器 172

244 DirectoryListBox控件 173

245 使用FileListBox控件 177

246 只显示清单中的部分文件 181

247 理解CommonDialog控件 182

248 使用CommonDialog控件模式 183

249 为CommonDialog控件设置默认路径 184

250 返回选中的文件和路径 185

252 通过Cancel选项取消Open或Save As 187

251 保存文本文件 187

254 使用GetCurrentDirectory API函数 188

253 使用API浏览器 188

256 使用SetCurrentDirectory API函数 190

255 编写Wrapper函数 190

257 使用GetDiskFreeSpace API函数 191

258 使用GetVolumeInformation API函数 192

259 使用GetDriveType API函数 193

260 捕捉未准备好的驱动器 195

261 在程序中更改文件名 196

264 设置文件访问模式 197

263 在程序中删除目录 197

262 在程序中删除文件 197

266 使用Open语句 198

265 获取文件大小 198

268 使用文件的读连续访问 200

267 使用Close语句 200

270 使用文件的写连续访问 201

269 读文件时使用EOF函数 201

271 使用LOF和Loc来读Binary文件 202

272 用Input和Input#来读取文件 203

273 使用Write#对连续文件输出 204

274 使用Put对一个随机访问文件写入数据 205

275 使用Get从随机访问文件中检索记录 207

276 使用Seek语句遍历随机访问文件 208

277 建立临时文件 209

279 获取系统路径 210

278 获取Windows路径 210

280 将文件的I/O操作最小化 211

283 删除目录 212

282 创建目录 212

281 使用ChDrive和ChDir语句 212

285 解析PathName 213

284 用递归删除目录树 213

287 使用Dir定位目录和文件 214

286 获取文件的日期和时间标签 214

288 将Dir返回的文件和目录值进行排序 216

289 使用Dir定位文件 217

290 在程序中移动文件 218

291 搜索文件 219

292 使用FindFirstFile函数 221

293 使用FindNextFile在剩下部分查找 222

295 使用由Find操作返回的文件建立用户界面 224

294 搜索整个目录树 224

296 使用Findxxx函数定位目录 229

297 使用递归删除目录树 230

299 检测程序的处理时间 232

298 延迟特定毫秒数 232

300 将两个时间作比较 233

302 利用整型值设置日期和时间 235

301 使用DoEvents来延迟具体的秒数 235

303 向日期中添加时间 236

304 理解SDI窗体 237

305 理解Show方法 238

306 理解控件数组 239

307 创建控件数组 240

309 建立一个窗体数组 242

308 理解MDI界面的创建 242

310 用布尔型数组来处理窗体数组 244

311 用控件数组在运行时建立对象 245

312 在运行时删除控件数组内的对象 247

313 使用菜单编辑器 248

314 创建菜单 250

316 使用菜单的Enabled属性 251

315 向菜单添加功能 251

318 建立Windowlist 252

317 使用菜单的Checked属性 252

319 使用Tile和Cascade命令 254

320 创建菜单数组 255

321 创建弹出式菜单 257

322 向弹出式菜单的选项中加入代码 259

323 使用弹出式菜单 260

324 创建智能化上下文相关菜单 262

326 在菜单内使用Negotiation 264

325 使用Boldcommand属性 264

327 理解QueryUnload事件和Unload事件 266

328 控制窗体的Height和Width 267

329 理解Frame 268

330 使用容器管理窗体 269

331 使用GetSystemMetrics API函数 273

332 结合使用GetSystemMetrics和Resize 275

333 理解MouseMove事件 277

334 MousePointer属性 279

336 使用窗体的Icon属性 280

335 使用MouseIcon属性 280

338 使用Button集合和Button对象 282

337 理解对象和集合 282

339 创建文本型按钮的工具条 283

340 理解ImageList控件 284

341 结合使用ImageList和Toolbar控件 285

342 子窗体和父窗体的工具条 287

343 仅在父窗体上放置工具条 288

344 工具条和ActiveForm 290

345 同时使用工具条和菜单 291

346 理解StatusBar控件 292

347 理解Panel对象和Panels集合 293

348 建立StatusBar控件 294

350 重新考虑公共与私有函数 296

349 编写UpdateStatusBar子程序 296

351 在TextBox中使用KeyPress接受用户口令 297

352 理解KeyDown事件和KeyUp事件 298

353 设置窗体的WindowState属性 302

355 重新考虑CommonDialog控件 303

354 控制窗体的标题 303

356 使用CommonDialog控件进行打印 305

357 打印文档至默认打印机 306

359 用CommonDialog控件设置Fonts 307

358 理解Printer对象和Printers集合 307

360 使用CommonDialog设置RichTextBox中的字体 308

361 过程中的分支和返回 309

362 使用结构变量代替常量 310

364 使用枚举类型 311

363 使用枚举类型 311

365 理解枚举类型的值 312

367 使用Shell函数 313

366 给枚举类型赋具体的值 313

368 使用临时文件向子进程传递数据 314

370 使用Shell函数来顺序运行程序 315

369 使用AppActivate来激活子进程 315

371 增加监视 316

373 使用标记来进行GoTo循环 317

372 监视窗口 317

375 理解不变代码 318

374 使用计时器事件来自动保存信息 318

377 理解循环压缩 319

376 理解代码压缩 319

380 使用默认类型 320

379 对比声明和定义 320

378 使用公共子表达式消除 320

382 在结构中将函数作为成员使用 322

381 理解松散(或简化)计算 322

383 不同结构中的同名成员 323

385 使用类生成器实用程序来创建类 324

384 理解Visual Basic的类 324

386 使用公共和私有数据 326

387 使用PropertyLet和PropertyGet方法 328

388 创建类变量的数组 330

389 使用With-End With 331

391 理解ActiveX与OLE 2.0之间的不同之处 332

390 为Public和Private成员排序 332

392 在Dimension语句中使用WithEvents属性 333

393 理解ComboBox控件 334

394 在ComboBox中使用Change和Click事件 335

395 使用ComboBox改变窗体中的信息 336

396 理解MaskEdBox控件 337

397 使用MaskEdBox控件来检验数据 339

398 重新考虑可重用的对象 341

399 使用控件事件触发其他事件 342

401 理解初始化子程序 343

400 使用带ListIndex的LostFocus来启动相关的窗体 343

402 使用函数返回用户自定义的类或结构 344

403 使用PictureBox控件 345

404 理解Image控件 346

405 使用Shape控件 348

406 使用Line控件 349

407 使用CheckBox获得Boolean值 350

408 在单个窗体上使用多组OptionButton 351

409 使用水平和垂直滚动条 353

410 创建基础的界面 354

411 为MDN程序加入功能 357

412 加入Find对话框 358

414 重新考虑Query_Unload事件 359

413 改进多文档记事本应用程序 359

416 使用ProgressBar控件 360

415 理解ProgressBar 360

418 使用其他鼠标指针属性 362

417 应用沙漏鼠标指针 362

420 开始使用可视化数据管理器 363

419 使用全局变量保护中断 363

421 使用SQL Create Table语句 365

422 理解和格式化SQL的CreateTable语句 366

423 理解Execute方法 367

424 使用约束创建索引 368

426 确定索引哪个字段 370

425 使用SQL的CreateIndex语句 370

427 理解Workspace对象 371

428 使用OpenDatabase方法 372

429 创建新的数据库 373

430 理解数据库对象 375

431 理解Recordset对象 376

432 使用OpenRecordset方法 377

433 理解SQL的Select语句 380

434 检索Recordset 382

436 理解Where从句 383

435 理解Order By从句 383

437 理解Inner Join 385

439 理解数据库的设置 386

438 理解Left Join和Right Join 386

440 理解QueryDef对象 387

441 使用RecordCount属性 388

445 使用FIND方法 389

444 确定Recordset是否为空 389

442 理解Move方法 389

443 使用BOF和EOF属性 389

446 使用Seek方法 391

447 理解书签 392

448 使用书签 393

450 理解Recordset Creation错误 394

449 使用Scratch Recordset 394

451 理解许可权限 395

452 理解DAO文档和容器 396

454 使用Update和Edit方法 397

453 加入新的记录 397

456 理解事务处理 399

455 使用Requery方法 399

457 使用BeginTrans和CommitTrans 400

458 理解Data控件 401

460 理解Data绑定控件 403

459 使用Data控件操作BOF和EOF 403

461 理解Data绑定Grid控件 404

462 使用Data绑定Grid控件 405

464 给Data控件加上RecordCount标题 406

463 调整Data绑定Grid的宽度 406

465 使用Grid控件改变RecordCount标题 408

466 理解Data绑定ListBox控件 409

467 使用Data绑定列表控件 410

468 把DBList控件连接到另外一个控件 411

469 理解Data绑定ComboBox控件 412

470 使用Data绑定ComboBox控件 413

471 理解Clone方法 414

473 使用DataChanged属性 415

472 使用Clone方法 415

475 使用Update查询 416

474 理解Update查询 416

477 理解Union查询 418

476 理解Delete查询 418

478 理解Group By语句 419

479 使用Group By语句 420

481 使用Sum语句 422

480 理解SQL聚集函数 422

482 理解Having语句 424

485 和SQL查询一起使用OnError-Resume 425

484 使用查询结果创建新的查询 425

483 在查询中使用变量 425

487 理解远程数据对象 426

486 通过检查值防止发生错误 426

488 理解RemoteData控件 427

490 理解RemoteData常量 429

489 使用RemoteData控件创建Recordset 429

491 理解rdoEnvironment对象 430

492 建立远程数据连接 432

493 维护有关打开连接的信息 435

494 理解字段对象 436

496 使用字段名管理数据库 437

495 确定集合中何时使用序数编号 437

498 更新无绑定控件的记录 438

497 保存无绑定控件的记录 438

501 使用TreeView控件 439

500 理解节点对象 439

499 理解TreeView控件 439

502 理解Nodes集合的Add方法 441

503 把图像加到TreeView控件 442

504 在填充TreeView控件的时候使用进度条 444

505 从Recordset中填充TreeView控件 446

506 理解MSComm控件 447

507 理解CommEvent属性 448

508 使用MSComm控件 449

510 理解RThreshold和SThreshold属性 450

509 使用OnComm事件 450

512 使用MSComm控件接收数据 451

511 使用MSComm控件发送数据 451

514 使用Winsock控件 452

513 创建自动发送事件 452

515 理解GetData方法 453

517 在服务器机器上使用Winsock控件 454

516 理解SendComplete和SendProgress事件 454

519 理解Internet传输控件 455

518 返回Winsock控件的当前状态 455

521 在Execute方法中使用FTP命令 456

520 在Execute方法中使用HTTP命令 456

523 连接到Internet 457

522 确信保存了用户名和密码 457

526 对FTP服务器做写操作 459

525 使用Get从FTP服务器获取一个文件 459

524 浏览FTP服务器 459

528 使用WebBrowser控件 460

527 编写一个自动的FTP上载和下载程序 460

529 理解Navigate方法 461

530 理解NavigateComplete事件 462

532 重新考虑ActiveX 463

531 使用ProgressChange事件 463

534 理解UserControl对象 465

533 理解ActiveX的不同类型 465

535 理解VisualBasicControlCreationEdition 466

536 理解ActiveX的安全性 467

538 使用向导创建一个ActiveX控件 469

537 打包一个简单的ActiveX控件 469

539 理解“创建自定义接口成员”对话框 470

540 设置属性 471

542 开始创建ActiveX控件 472

541 完成向导 472

544 测试控件 473

543 增强控件的功能 473

545 理解ActiveX控件事件 474

548 理解RaiseEvent语句 475

547 对非生命周期事件的响应 475

546 理解ActiveX控件的生命周期 475

549 使用Event语句 476

550 给控件添加功能 477

552 理解属性页向导 478

551 执行ColorfulCmdButton控件的容器 478

553 使用属性页向导 479

554 创建一个ActiveX文档 480

555 为自己的ActiveX文档指定容器 481

557 理解对象模型中的变化 482

556 发现目标应用程序的对象模型 482

559 使用UserDocument对象 483

558 理解UserDocument对象 483

560 测试ActiveX文档 484

561 调试FirstACXDoc的ActiveX文档 485

562 向工程中添加第二个ActiveX文档 486

563 为ActiveX DLL文件创建类 487

564 为MyTest类创建属性和方法 488

565 初始化类 489

567 实例化MyTest类 490

566 创建TestMyTest工程 490

568 执行MyTestDemo工程 491

569 向MyTest类中添加SelfAbsorbed属性 492

570 理解循环引用 493

571 理解ActiveX组件的命名原则 495

572 理解行为良好的组件 496

573 对VBScript中事件的响应 497

575 在VBScript中执行数学函数 499

574 执行Hello.HTML文件 499

576 执行事件和操作 500

579 在一个HTML页中使用Label控件和Timer控件 501

578 使用VBScript的Dim 501

577 使用VBScript的Option Explicit 501

581 使用注册表编辑器来寻找Class ID 503

580 引用ActiveX控件 503

582 在HTML文件中使用WebBrowser控件 504

583 Active Server Pages 505

584 在ASP中响应和请求 506

586 格式化的一个捷径 507

585 使用Querystring参数 507

587 回退 508

589 使用文件的WritePrivateProfileSlring API 510

588 理解.INI文件 510

590 使用.ini文件的GetPrivateProfileString API 511

591 使用.ini文件的GetPrivateProfileInt API 512

592 理解System Registry 512

593 理解SaveSetting函数 513

594 理解GetSetting成员函数 513

595 使用SaveSetting和GetSetting语句 513

596 在注册表中保存窗体的大小和位置 514

597 在注册表中进行程序之间的变量传递 515

598 使用DeleteSetting函数 515

599 使用GetAllSettings函数 516

600 使用注册表的API函数 516

601 理解RegOpenKeyEx API函数 518

602 理解RegQueryValueEx函数 518

603 理解RegCloseKey函数 519

604 当打开窗体时使用API函数 519

605 理解RegCreateKeyEx函数 520

606 理解RegSetValueEx函数 521

607 使用RegSetValueEx和RegCreateValueEx 522

608 捕获注册表错误 523

609 使用API函数删除键和值 524

610 访问注册表 524

612 理解#Const语句 525

613 理解#If-Then-#Else 525

611 理解条件编译 525

614 使用条件编译 526

615 理解GetWindowsDirectory API函数 527

616 理解GetSystemDirectory API函数 527

617 使用GetWindow函数 528

618 得到窗口的名字 528

619 理解Visual Basic的安装向导 529

620 选择发布媒介 529

621 确保所有文件都包含在发布列表中 530

622 保存安装模板产生发布媒体 530

623 在用户的计算机上安装程序 531

624 创建Internet发布 531

625 使用应用程序向导产生标准窗体 532

626 理解Splash Screen 532

628 使用向导添加数据库窗体 533

629 理解Crystal Reports 533

627 理解About对话框 533

630 使用Crystal Reports 534

631 为报表选择数据源 534

633 报表中的记录分组 535

634 Totaling and Counting分组字段 535

632 在报表中添加字段 535

635 选择记录及风格化报表 536

636 修改报表 536

637 移动、改变大小、格式化以及删除字段 537

638 改变报表中数据的排列顺序 537

639 校正排列和分组次序 538

640 创建定制组 538

642 插入小结 539

643 插入汇总 539

641 使用Summarized和Totaled字段 539

644 插入总结 540

645 选择记录 540

647 创建公式 541

648 在报表中加入图形/图表 541

646 返回组中前N个记录 541

649 在报表中插入OLE或ActiveX对象 542

651 理解Crystal Report引擎 543

652 理解Crystal ActiveX控件 543

650 添加或修改表头 543

653 使用Crystal ActiveX控件 544

656 重新考虑对象模型 545

655 Crystal Reports控件的局限性 545

657 理解外接程序 545

654 理解Crystal窗口上的图标 545

659 访问扩展模型 546

660 创建工程的组件 546

658 创建一个外接程序 546

661 理解IDTExtensibility接口 547

662 理解OnConnection函数 547

664 理解AddToAddInCommandBar函数 548

665 自定义Connect模块 548

663 深入浅出OnConnection代码 548

666 添加最后的组件 549

667 完成外接程序设计 549

668 装载外接程序 551

669 外接程序的疑难解答 552

670 理解ActiveX EXE 552

672 理解线程 553

673 理解异步处理 553

671 区分进程外和进程内组件 553

674 理解使用事件的异步通知 554

675 理解使用回调方法的异步通知 555

676 在多客户中使用回调 556

677 选择基于事件的通知还是基于回调的通知 556

678 理解类型库 557

680 重新考虑GUID 558

681 理解版本兼容 558

679 理解默认接口 558

682 创建ActiveX EXE 559

683 理解进程外组件的模态 560

684 开始创建测试工程 561

685 在测试工程中加入代码 562

686 查看有模态的TestForm 562

687 查看无模态的TestForm 563

688 使用异步通知 564

689 完成事件通知代码 565

690 编写客户程序 566

691 考虑如何处理多客户 567

692 使用Connector对象 568

694 使用异步回调方法 569

695 创建LunehTimeMonitor可执行程序 569

693 认识到Connector中的错误 569

697 有序开发ActiveX组件 570

698 重新考虑多线程 570

696 理解单线程 570

699 理解套间模式线程 571

700 理解重进入 571

701 理解二进制兼容性 572

702 避免版本树 572

703 避免版本兼容消息 573

相关图书
作者其它书籍
返回顶部