Module AddressLabelsCR.rv
1Use Crystal\CheckForCrystal.dg
2Use dfrptvw.pkg
3Use DataDict.pkg
4Use Windows.pkg
5Use dfSpnFrm.pkg
6Use dfRadio.pkg
7Use cCrystal.pkg
8Use Vendor.DD
9Use Customer.DD
10
11ACTIVATE_VIEW Activate_oAddressLabelsCR FOR oAddressLabelsCR
12
13Object oAddressLabelsCR is a ReportView
14 Set Label to "Address Labels"
15 Set Location to 10 13
16 Set Size to 114 165
17 Set piMinSize to 114 165
18
19 Object Vendor_DD is a Vendor_DataDictionary
20 Send DefineAllExtendedFields
21 End_Object // Vendor_DD
22
23 Object Customer_DD is a Customer_DataDictionary
24 Send DefineAllExtendedFields
25 End_Object // Customer_DD
26
27 Set Main_DD to Customer_DD
28 Set Server to Customer_DD
29
30 Object oCopiesGroup is a Group
31 Set Size to 32 154
32 Set Location to 3 6
33 Set Label to "Number of Labels to Print per Record:"
34 Object oCopies is a SpinForm
35 Set Label to "Print "
36 Set Size to 13 39
37 Set Location to 13 30
38 Set Label_Col_Offset to 2
39 Set Label_Justification_Mode to jMode_Right
40 Set Minimum_Position to 1
41
42 // Procedure : Activating
43 // Purpose : This is used to default the number of labels to print
44 Procedure Activating
45 Forward Send Activating
46 Set Value to 1
47 End_Procedure // Activating
48
49 End_Object // oCopies
50
51 Object oTextBox1 is a Textbox
52 Set Label to "Labels per Record"
53 Set Location to 15 72
54 Set Size to 10 59
55 Set TypeFace to "MS Sans Serif"
56 End_Object // oTextBox1
57
58 Function NumberOfCopies Returns Integer
59 Integer iCopies
60 Get Value of oCopies to iCopies
61 Function_Return iCopies
62 End_Function // NumberOfCopies
63
64 End_Object // oCopiesGroup
65
66 Object oPrintGroup is a RadioGroup
67 Set Size to 54 71
68 Set Location to 38 7
69 Set Label to "Print For:"
70 Object oRadio1 is a Radio
71 Set Label to "Customers"
72 Set Size to 10 49
73 Set Location to 13 9
74 End_Object // oRadio1
75
76 Object oRadio2 is a Radio
77 Set Label to "Vendors"
78 Set Size to 10 43
79 Set Location to 26 9
80 End_Object // oRadio2
81
82 Object oRadio3 is a Radio
83 Set Label to "Both"
84 Set Size to 10 31
85 Set Location to 39 9
86 End_Object // oRadio3
87
88 Procedure Notify_Select_State Integer iToItem Integer iFromItem
89 Forward Send Notify_Select_State iToItem iFromItem
90 //for augmentation
91 End_Procedure // Notify_Select_State
92
93 //If you set Current_Radio, you must set it AFTER the
94 //radio objects have been created AND AFTER Notify_Select_State has been
95 //created. i.e. Set in bottom-code of object at the end!!
96 //Set Current_Radio To 0
97
98 End_Object // oPrintGroup
99
100 Object oDestGroup is a RadioGroup
101 Set Size to 54 76
102 Set Location to 38 84
103 Set Label to "Output Destination:"
104 Object oScreen is a Radio
105 Set Label to "Screen"
106 Set Size to 10 39
107 Set Location to 17 14
108 End_Object // oScreen
109
110 Object oPrinter is a Radio
111 Set Label to "Printer"
112 Set Size to 10 37
113 Set Location to 31 14
114 End_Object // oPrinter
115
116 Procedure Notify_Select_State Integer iToItem Integer iFromItem
117 Forward Send Notify_Select_State iToItem iFromItem
118
119 If (iToItem = 0) Begin
120 Set peOutputDestination of oCrystalReport1 to PRINT_TO_WINDOW
121 End
122 Else Begin
123 Set peOutputDestination of oCrystalReport1 to PRINT_TO_PRINTER
124 End
125
126 End_Procedure // Notify_Select_State
127
128 End_Object // oDestGroup
129
130 Object oOkButton is a Button
131 Set Label to "&OK"
132 Set Size to 14 51
133 Set Location to 96 57
134 Set Default_State to True
135
136 Procedure OnClick
137 Boolean bCrystalOK
138
139 Get CheckCrystalEnvironment of oCheckForCrystal to bCrystalOK
140 If (bCrystalOK) Begin
141 Send RunReport of oCrystalReport1
142 End
143 Else Begin
144 Send DisplayDialog of oCheckForCrystal
145 End
146
147 End_Procedure
148
149 End_Object // oOkButton
150
151 Object oCancelButton is a Button
152 Set Label to "&Cancel"
153 Set Location to 96 110
154
155 Procedure OnClick
156 Send Request_Cancel
157 End_Procedure // OnClick
158
159 End_Object // oCancelButton
160
161 Object oCrystalReport1 is a cCrystal
162
163 Use Customer.DD
164
165 Set psReportName to "Labels.rpt"
166
167 // Array of strings
168 Property String[] pStates
169
170 // This is called for each customer or vendor we create
171 // a label for. It adds the state if it does not already
172 // exist in the array.
173 Procedure AddState String sState
174 Integer iItem iCount
175 String sVal
176 String[] hoStates
177 Get pStates to hoStates
178 Move (SizeOfArray(hoStates)) to iCount
179 For iItem From 0 to (iCount-1)
180 If (sState = (hoStates[iItem])) Procedure_Return
181 Loop
182 Move sState to hoStates[iCount]
183 Set pStates to hoStates
184 End_Procedure // AddState
185
186 // This returns an array of vendors.
187 Function LoadVendors Returns Variant[][5]
188 Integer iItem iCopies iLabel
189 Boolean bFound
190 Variant[][5] vData
191
192 Get NumberOfCopies of oCopiesGroup to iCopies
193 Clear Vendor
194 Find gt Vendor by 1
195 Move (Found) to bFound
196 While bFound
197 // Must have a City, State, and Zip code to create a label
198 If ((Vendor.City <> "") and (Vendor.State <> "") and (Vendor.Zip <> "")) Begin
199 // copy
200 For iItem From 1 to iCopies
201 Move (Trim(Vendor.Name)) to vData[iLabel][0]
202 Move (Trim(Vendor.Address)) to vData[iLabel][1]
203 Move (Trim(Vendor.City)) to vData[iLabel][2]
204 Move (Trim(Vendor.State)) to vData[iLabel][3]
205 Move (Trim(Vendor.Zip)) to vData[iLabel][4]
206 Increment iLabel
207 Loop
208 // Add state to list
209 Send AddState Vendor.State
210 End
211 Find gt Vendor by 1
212 Move (Found) to bFound
213 End
214 Function_Return vData
215 End_Function // LoadVendors
216
217 // This returns an array of customers.
218 Function LoadCustomers Returns Variant[][5]
219 Integer iItem iCopies iLabel
220 Boolean bFound
221 String sCSZ
222 Variant[][5] vData
223
224 Get NumberOfCopies of oCopiesGroup to iCopies
225 Clear Customer
226 Find gt Customer by 1
227 Move (Found) to bFound
228 While bFound
229 // Must have a City, State, and Zip code to create a label
230 If ((Customer.City <> "") and (Customer.State <> "") and (Customer.Zip <> "")) Begin
231 Move (Trim(Customer.City)) to sCSZ
232 Append sCSZ ", " (Trim(Customer.State)) " " (Trim(Customer.Zip))
233 // copy
234 For iItem From 1 to iCopies
235 Move (Trim(Customer.Name)) to vData[iLabel][0]
236 Move (Trim(Customer.Address)) to vData[iLabel][1]
237 Move (Trim(Customer.City)) to vData[iLabel][2]
238 Move (Trim(Customer.State)) to vData[iLabel][3]
239 Move (Trim(Customer.Zip)) to vData[iLabel][4]
240 Increment iLabel
241 Loop
242 // Add state to list
243 Send AddState Customer.State
244 End
245 Find gt Customer by Index.1
246 Move (Found) to bFound
247 End
248 Function_Return vData
249 End_Function // LoadCustomers
250
251 Procedure OnInitializeReport Handle hoReport
252 Handle hoParam hoLabels
253 String[] hoStates
254 Variant[][5] vData
255 Integer iItem iCount
256 String sDesc
257
258 // Clear states
259 Set pStates to hoStates
260 // Create data to print labels
261 Get CreateCDO of hoReport "Label.ttx" to hoLabels
262 If (hoLabels) Begin
263 // Load Vendors
264 If (Current_Radio(oPrintGroup)<>1) Begin
265 Get LoadVendors to vData
266 Send AppendCDOData of hoReport hoLabels vData
267 End
268 // Load Customers
269 If (Current_Radio(oPrintGroup)<>0) Begin
270 Get LoadCustomers to vData
271 Send AppendCDOData of hoReport hoLabels vData
272 End
273 End
274
275 // Prompt a list of states based on customers and/or vendors
276 Set ComEnableParameterPrompting of hoReport to True
277 // Create Parameter object
278 Get GetParamObjectByName of hoReport "ChoiceOfStates" to hoParam
279 If (hoParam) Begin
280 // Set prompt string
281 Set ComPrompt of hoParam to "Please Select All States to Print Labels For:"
282 // Don't allow user to add states to the list
283 Set ComDisallowEditing of hoParam to True
284 // Allow the user to select more than one state
285 Set ComEnableMultipleValues of hoParam to True
286
287 // Get list if states
288 Get pStates to hoStates
289 Move (SizeOfArray(hoStates)) to iCount
290 For iItem From 1 to iCount
291 // Add each state to the parameter object
292 Send ComSetNthDefaultValue of hoParam iItem (hoStates[iItem-1])
293 // Get state code description from validation table
294 Get Find_Code_Description of Customer_State_VT (hoStates[iItem-1]) to sDesc
295 Set ComNthValueDescription of hoParam iItem to (Trim(sDesc))
296 Loop
297 End
298 End_Procedure // OnInitializeReport
299
300 End_Object // oCrystalReport1
301
302 On_Key Key_Alt+Key_O Send KeyAction of oOkButton
303 On_Key Key_Alt+Key_C Send KeyAction of oCancelButton
304
305End_Object // oAddressLabelsCR
306