Preface |
|
xvii | |
Acknowledgments |
|
xxiii | |
|
Chapter 1 Introducing IDEAScript |
|
|
1 | (8) |
|
|
1 | (2) |
|
How Does Automation Benefit You? |
|
|
2 | (1) |
|
How Does Automation Benefit Others? |
|
|
2 | (1) |
|
Best Practices for Using Automation |
|
|
3 | (1) |
|
Understanding How You Use Macros |
|
|
3 | (3) |
|
Interacting with Databases |
|
|
4 | (1) |
|
Customizing the IDEA Interface |
|
|
4 | (1) |
|
|
4 | (1) |
|
Designing New Application Features |
|
|
5 | (1) |
|
Importing and Exporting Data |
|
|
5 | (1) |
|
Controlling Other Applications |
|
|
5 | (1) |
|
|
6 | (1) |
|
|
7 | (1) |
|
|
8 | (1) |
|
Chapter 2 Creating Your First IDEAScript Application |
|
|
9 | (12) |
|
Understanding the Macro Types |
|
|
9 | (2) |
|
|
10 | (1) |
|
Considering Visual Script |
|
|
10 | (1) |
|
Opening the Visual Script Editor |
|
|
11 | (4) |
|
Writing a Hello World Application |
|
|
15 | (4) |
|
Typing in the Editor Window |
|
|
16 | (1) |
|
|
17 | (1) |
|
Understanding .iss Versus .ise Files |
|
|
17 | (2) |
|
Sending Your Macro to Someone Else |
|
|
19 | (1) |
|
Building Your Application |
|
|
19 | (1) |
|
Creating the Executable File |
|
|
19 | (1) |
|
Executing Your Application from Windows Explorer |
|
|
20 | (1) |
|
|
20 | (1) |
|
Chapter 3 Understanding the Basics of the IDEAScript Editor |
|
|
21 | (18) |
|
|
21 | (6) |
|
|
22 | (1) |
|
|
23 | (1) |
|
|
24 | (1) |
|
|
25 | (1) |
|
|
25 | (1) |
|
|
26 | (1) |
|
Hiding and Viewing Windows |
|
|
27 | (2) |
|
Working with Menus and Toolbars |
|
|
29 | (8) |
|
|
31 | (3) |
|
|
34 | (3) |
|
|
37 | (2) |
|
Chapter 4 Designing Structured Applications |
|
|
39 | (24) |
|
Understanding the Parts of an Application |
|
|
40 | (1) |
|
Understanding the Methods Used to Create an Application |
|
|
41 | (4) |
|
Recording a Series of IDEA Tasks |
|
|
41 | (1) |
|
|
42 | (1) |
|
Typing into the Editor Window |
|
|
43 | (1) |
|
|
43 | (2) |
|
Copying from Other Macros |
|
|
45 | (1) |
|
|
45 | (7) |
|
|
46 | (1) |
|
|
47 | (1) |
|
|
47 | (2) |
|
|
49 | (2) |
|
|
51 | (1) |
|
Working with Subroutines and Functions |
|
|
52 | (4) |
|
|
52 | (2) |
|
Calling a Function from a Subroutine |
|
|
54 | (2) |
|
|
56 | (1) |
|
Making Your Code Easy to Read |
|
|
56 | (1) |
|
Adding Your Application to a Toolbar or Menu |
|
|
57 | (3) |
|
Best Practices for Binding an Application |
|
|
57 | (1) |
|
Binding the Application to a Menu |
|
|
58 | (1) |
|
Binding the Application to a Toolbar |
|
|
59 | (1) |
|
|
60 | (3) |
|
Chapter 5 Working with Data |
|
|
63 | (30) |
|
Understanding Variables and Constants |
|
|
63 | (4) |
|
|
64 | (1) |
|
|
65 | (1) |
|
|
66 | (1) |
|
|
67 | (15) |
|
Understanding How Data Type Affects Code |
|
|
67 | (1) |
|
|
68 | (5) |
|
|
73 | (1) |
|
Working with Boolean Values |
|
|
74 | (1) |
|
Working with Scientific Values |
|
|
75 | (1) |
|
Working with Currency Values |
|
|
75 | (1) |
|
Working with Date/Time Values |
|
|
76 | (2) |
|
Working with Variant Data |
|
|
78 | (1) |
|
Performing Data Conversion |
|
|
79 | (3) |
|
|
82 | (3) |
|
|
85 | (4) |
|
Creating Custom Data Types |
|
|
89 | (2) |
|
|
91 | (2) |
|
Chapter 6 Using Conditional Statements and Loops |
|
|
93 | (22) |
|
Making Decisions Using the If... Then... Else Statement |
|
|
93 | (2) |
|
|
93 | (1) |
|
Using the If... Then... Else Combination |
|
|
94 | (1) |
|
Using the If... Then... Elself Combination |
|
|
94 | (1) |
|
Choosing between Options Using Select Case |
|
|
95 | (4) |
|
|
96 | (1) |
|
Defining a Default Action Using Case Else |
|
|
97 | (1) |
|
Using a Select Case Alternative, Choose |
|
|
98 | (1) |
|
Performing Tasks a Specific Number of Times with For... Next |
|
|
99 | (3) |
|
|
99 | (1) |
|
|
100 | (2) |
|
Performing Tasks Using Conditions with Do Loop |
|
|
102 | (4) |
|
|
103 | (1) |
|
|
104 | (1) |
|
|
105 | (1) |
|
|
106 | (1) |
|
Adding Error Trapping to Your Application |
|
|
106 | (6) |
|
|
107 | (1) |
|
|
107 | (2) |
|
|
109 | (3) |
|
Redirecting Macro Flow Using GoTo |
|
|
112 | (1) |
|
|
112 | (1) |
|
GoTo Uses That Cause Problems |
|
|
112 | (1) |
|
|
112 | (3) |
|
Chapter 7 Understanding IDEA Databases |
|
|
115 | (20) |
|
Considering the Parts of a Database |
|
|
115 | (3) |
|
|
116 | (1) |
|
|
116 | (1) |
|
|
117 | (1) |
|
|
117 | (1) |
|
Introducing the IDEA Database System |
|
|
118 | (1) |
|
Opening a Database for Use |
|
|
119 | (1) |
|
Checking the Database History |
|
|
120 | (2) |
|
Obtaining Field Statistics |
|
|
122 | (3) |
|
Setting Database Criteria |
|
|
125 | (1) |
|
|
125 | (2) |
|
|
127 | (2) |
|
Modifying Database Comments |
|
|
129 | (2) |
|
|
131 | (2) |
|
|
133 | (1) |
|
|
133 | (2) |
|
Chapter 8 Working with Databases |
|
|
135 | (30) |
|
Adding One Database to Another Using Append Database |
|
|
135 | (3) |
|
Comparing Two Databases Using CompareDB |
|
|
138 | (2) |
|
|
140 | (5) |
|
Locating Duplicate Keys with DupKeyDetection |
|
|
141 | (3) |
|
Locating Exclusive Records Based on Key Using DupKeyExclusion |
|
|
144 | (1) |
|
Exporting a Database Using ExportDatabase |
|
|
145 | (5) |
|
Working with Fields Using Field |
|
|
150 | (2) |
|
|
152 | (5) |
|
|
153 | (2) |
|
Interacting with an Individual Record |
|
|
155 | (2) |
|
|
157 | (7) |
|
Copying Databases Using TableDef |
|
|
157 | (4) |
|
Creating New Tables Using TableManagement |
|
|
161 | (3) |
|
|
164 | (1) |
|
Chapter 9 Considering the CaseWare IDEA Object Model |
|
|
165 | (30) |
|
Considering the IDEA Object Model |
|
|
165 | (5) |
|
|
166 | (2) |
|
Working with the Client Elements |
|
|
168 | (2) |
|
Working with the Task Object Model |
|
|
170 | (23) |
|
|
171 | (2) |
|
|
173 | (1) |
|
|
173 | (1) |
|
|
173 | (1) |
|
|
174 | (1) |
|
|
175 | (1) |
|
|
175 | (1) |
|
|
176 | (1) |
|
|
176 | (1) |
|
|
176 | (1) |
|
|
177 | (1) |
|
|
177 | (2) |
|
|
179 | (1) |
|
|
179 | (1) |
|
|
180 | (1) |
|
ImportExcel and ImportExcel2007 |
|
|
180 | (1) |
|
|
181 | (1) |
|
|
182 | (1) |
|
|
182 | (1) |
|
|
182 | (1) |
|
|
183 | (1) |
|
|
184 | (1) |
|
|
185 | (1) |
|
|
186 | (1) |
|
|
186 | (1) |
|
|
187 | (1) |
|
|
187 | (1) |
|
|
188 | (1) |
|
|
188 | (1) |
|
|
189 | (1) |
|
|
190 | (1) |
|
|
190 | (1) |
|
|
191 | (1) |
|
|
191 | (1) |
|
|
192 | (1) |
|
|
193 | (2) |
|
Chapter 10 Performing Mathematical Tasks |
|
|
195 | (12) |
|
|
195 | (3) |
|
|
198 | (2) |
|
Considering the Advanced Math Functions |
|
|
199 | (1) |
|
Using Advanced Math in an Application |
|
|
200 | (1) |
|
|
200 | (5) |
|
|
201 | (2) |
|
|
203 | (2) |
|
|
205 | (2) |
|
Chapter 11 Interacting with Arrays |
|
|
207 | (8) |
|
Understanding How Arrays Work |
|
|
207 | (1) |
|
Creating and Using Arrays |
|
|
208 | (4) |
|
Copying Data between Arrays |
|
|
212 | (1) |
|
|
213 | (2) |
|
Chapter 12 Creating Interactive Dialog Boxes |
|
|
215 | (34) |
|
Creating Great Dialog Boxes |
|
|
216 | (2) |
|
Best Practices for Using Dialog Boxes |
|
|
216 | (2) |
|
Designing a Good Dialog Box Layout |
|
|
218 | (1) |
|
|
218 | (14) |
|
Considering the Select Tool |
|
|
219 | (2) |
|
Adding Clicks Using the Generic Button |
|
|
221 | (1) |
|
Adding Clicks Using the OKButton |
|
|
222 | (1) |
|
Adding Clicks Using the CancelButton |
|
|
222 | (1) |
|
Providing Options Using the RadioButton |
|
|
222 | (3) |
|
Providing Options Using the CheckBox |
|
|
225 | (1) |
|
Displaying Prompts Using StaticText |
|
|
225 | (1) |
|
Getting User Input Using the EditBox |
|
|
226 | (2) |
|
Grouping Related Items Using the GroupBox |
|
|
228 | (1) |
|
Providing Options Using the ListBox |
|
|
228 | (2) |
|
Providing Options Using the ComboBox |
|
|
230 | (1) |
|
Providing Options Using the DropDownComboBox |
|
|
231 | (1) |
|
Obtaining the Visual Appearance You Want |
|
|
232 | (3) |
|
|
233 | (1) |
|
Making Controls the Same Size |
|
|
233 | (1) |
|
Defining the Horizontal and Vertical Spacing |
|
|
234 | (1) |
|
Centering Controls on a Dialog Box |
|
|
235 | (1) |
|
Using the Grid for Alignment |
|
|
235 | (1) |
|
Interacting with Dialog Boxes Using Code |
|
|
235 | (9) |
|
Creating a Basic Dialog Box |
|
|
236 | (2) |
|
Working with the Dialog Box Function Using Beep |
|
|
238 | (4) |
|
Selecting a Control Using DlgFocus |
|
|
242 | (1) |
|
Changing Control Values Using DlgValue, DlgVisible, and DlgEnable |
|
|
243 | (1) |
|
Adding Pictures to Your Dialog Boxes |
|
|
244 | (3) |
|
|
247 | (2) |
|
Chapter 13 Locating Information in Databases |
|
|
249 | (22) |
|
Performing Searches Efficiently |
|
|
249 | (2) |
|
Using the Built-in Search Features |
|
|
251 | (17) |
|
|
251 | (7) |
|
|
258 | (4) |
|
|
262 | (2) |
|
Performing Proximity Searches |
|
|
264 | (4) |
|
|
268 | (1) |
|
|
269 | (2) |
|
Chapter 14 Importing and Exporting Data |
|
|
271 | (46) |
|
Considering the Import and Export Features |
|
|
271 | (12) |
|
|
272 | (1) |
|
|
272 | (1) |
|
|
272 | (3) |
|
|
275 | (1) |
|
|
275 | (1) |
|
|
275 | (7) |
|
|
282 | (1) |
|
Performing Data Extractions |
|
|
283 | (7) |
|
|
283 | (2) |
|
|
285 | (3) |
|
Using TopRecordsExtraction |
|
|
288 | (2) |
|
|
290 | (4) |
|
|
290 | (2) |
|
|
292 | (2) |
|
|
294 | (12) |
|
Considering the Text Data Types |
|
|
295 | (3) |
|
Creating a Definition File |
|
|
298 | (1) |
|
|
299 | (3) |
|
|
302 | (4) |
|
|
306 | (4) |
|
|
306 | (2) |
|
|
308 | (2) |
|
|
310 | (5) |
|
|
310 | (3) |
|
|
313 | (2) |
|
|
315 | (2) |
|
Chapter 15 Working with Files |
|
|
317 | (32) |
|
Considering the File Format |
|
|
317 | (1) |
|
Using the File IO Features |
|
|
318 | (28) |
|
|
318 | (3) |
|
|
321 | (1) |
|
|
322 | (4) |
|
|
326 | (1) |
|
|
326 | (1) |
|
|
327 | (3) |
|
|
330 | (1) |
|
|
331 | (2) |
|
|
333 | (1) |
|
|
334 | (2) |
|
|
336 | (5) |
|
|
341 | (1) |
|
|
342 | (1) |
|
|
342 | (1) |
|
|
342 | (1) |
|
|
342 | (1) |
|
|
343 | (1) |
|
|
343 | (1) |
|
|
344 | (1) |
|
|
345 | (1) |
|
|
345 | (1) |
|
|
345 | (1) |
|
|
346 | (1) |
|
|
346 | (1) |
|
|
346 | (1) |
|
|
346 | (2) |
|
|
348 | (1) |
|
Chapter 16 Working with Other Applications |
|
|
349 | (12) |
|
Considering IDEAScript and Visual Basic for Applications (VBA) Differences |
|
|
349 | (1) |
|
Understanding the Word and Excel Object Models |
|
|
350 | (1) |
|
|
351 | (4) |
|
|
355 | (5) |
|
|
360 | (1) |
|
Chapter 17 Performing Data Analysis Tasks |
|
|
361 | (30) |
|
Performing Stratification |
|
|
361 | (6) |
|
|
362 | (3) |
|
|
365 | (2) |
|
|
367 | (4) |
|
|
371 | (3) |
|
Employing Random Record Sampling Using RandomSample |
|
|
374 | (2) |
|
|
376 | (2) |
|
Checking Distribution Using SystematicSample |
|
|
378 | (2) |
|
|
380 | (9) |
|
|
381 | (4) |
|
|
385 | (4) |
|
|
389 | (2) |
|
Chapter 18 Working with Charts and Graphs |
|
|
391 | (16) |
|
Choosing the Correct Chart or Graph |
|
|
391 | (2) |
|
|
393 | (6) |
|
Defining Analytical Charts |
|
|
399 | (6) |
|
|
399 | (2) |
|
Performing Trend Analysis |
|
|
401 | (4) |
|
|
405 | (2) |
|
Chapter 19 Defining Reports |
|
|
407 | (12) |
|
|
407 | (5) |
|
Outputting Data in PDF Format |
|
|
412 | (2) |
|
Outputting Data in Word Format |
|
|
414 | (4) |
|
|
418 | (1) |
|
Chapter 20 Considering Database Security |
|
|
419 | (10) |
|
Considering Programmatic Data Security |
|
|
419 | (2) |
|
Choosing the Correct Data Type |
|
|
421 | (1) |
|
|
421 | (6) |
|
|
422 | (3) |
|
|
425 | (1) |
|
Methods for Checking Data Content |
|
|
426 | (1) |
|
|
427 | (1) |
|
|
428 | (1) |
|
Chapter 21 Debugging Your Application |
|
|
429 | (18) |
|
Understanding the Kinds of Application Errors |
|
|
429 | (4) |
|
Considering Syntax Errors |
|
|
429 | (1) |
|
Considering Compile Errors |
|
|
430 | (1) |
|
Considering Run-Time Errors |
|
|
431 | (1) |
|
Considering Semantic Errors |
|
|
432 | (1) |
|
Running and Stopping the Application |
|
|
433 | (1) |
|
|
434 | (1) |
|
|
434 | (1) |
|
Removing Individual Breakpoints |
|
|
434 | (1) |
|
|
435 | (1) |
|
Stepping through the Application |
|
|
435 | (3) |
|
|
436 | (1) |
|
|
437 | (1) |
|
|
438 | (6) |
|
Understanding the Problem |
|
|
439 | (1) |
|
|
440 | (2) |
|
Typing a Variable into the Watch Window |
|
|
442 | (2) |
|
|
444 | (1) |
|
|
445 | (2) |
|
Chapter 22 Performing Project Management Tasks |
|
|
447 | (8) |
|
Creating a Plan for Your Application |
|
|
448 | (1) |
|
|
448 | (1) |
|
Developing the Application Shell |
|
|
448 | (1) |
|
Adding Bells and Whistles |
|
|
448 | (1) |
|
Keeping Track of Application Files |
|
|
449 | (1) |
|
|
450 | (1) |
|
Documenting Your Application |
|
|
451 | (2) |
|
Considering the Importance of Comments |
|
|
451 | (1) |
|
Providing Written Documentation |
|
|
452 | (1) |
|
|
453 | (1) |
|
|
453 | (2) |
|
Chapter 23 Converting Visual Script to IDEAScript |
|
|
455 | (8) |
|
Considering the Benefits of Using IDEAScript |
|
|
455 | (1) |
|
Performing the Conversion |
|
|
456 | (2) |
|
Making Changes and Saving the Result |
|
|
458 | (3) |
|
|
461 | (2) |
About the Author |
|
463 | (2) |
About the Website |
|
465 | (2) |
Index |
|
467 | |