root / UFRapSimulT.pas @ 3
Historique | Voir | Annoter | Télécharger (15,05 ko)
1 | 3 | avalancogn | unit UFRapSimulT ;
|
---|---|---|---|
2 | |||
3 | interface
|
||
4 | |||
5 | uses
|
||
6 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
||
7 | Dialogs, OleCtrls, StdCtrls, ComCtrls, DB, DBClient, ExtCtrls, QRCtrls, |
||
8 | QuickRpt, QRPrntr, MidasLib, UVariables, gnugettext; |
||
9 | |||
10 | type
|
||
11 | TFRapSimulT = class(TForm)
|
||
12 | QRRapport: TQuickRep; |
||
13 | PHBRapport: TQRBand; |
||
14 | DBRapport: TQRBand; |
||
15 | QRLTitre: TQRLabel; |
||
16 | QRLCaract: TQRLabel; |
||
17 | QRLSimul: TQRLabel; |
||
18 | QRLProfil: TQRLabel; |
||
19 | QRDBTSimul: TQRDBText; |
||
20 | QRDBTProfil: TQRDBText; |
||
21 | QRLabel1: TQRLabel; |
||
22 | QRDBTLoge: TQRDBText; |
||
23 | CDSRapport: TClientDataSet; |
||
24 | SFSimul: TStringField; |
||
25 | SFProfil: TStringField; |
||
26 | SFSeqAli: TStringField; |
||
27 | SFRation: TStringField; |
||
28 | IFCycle: TIntegerField; |
||
29 | SFLoge: TStringField; |
||
30 | QRLInit: TQRLabel; |
||
31 | QRDBTInit: TQRDBText; |
||
32 | SFInit: TStringField; |
||
33 | PFBRapport: TQRBand; |
||
34 | QRLUser: TQRLabel; |
||
35 | QRLWarning: TQRLabel; |
||
36 | CDSRapport_DureeGest_: TIntegerField; |
||
37 | CDSRapport_PVGest_: TFloatField; |
||
38 | CDSRapport_GainTotGest_: TFloatField; |
||
39 | CDSRapport_GainNetGest_: TFloatField; |
||
40 | CDSRapport_P2Gest_: TFloatField; |
||
41 | CDSRapport_P2VarGest_: TFloatField; |
||
42 | CDSRapport_ConsoGest_: TFloatField; |
||
43 | CDSRapport_PDGest_: TFloatField; |
||
44 | CDSRapport_LDGest_: TFloatField; |
||
45 | CDSRapport_DureeLact_: TIntegerField; |
||
46 | CDSRapport_PVLact_: TFloatField; |
||
47 | CDSRapport_GainTotLact_: TFloatField; |
||
48 | CDSRapport_GainNetLact_: TFloatField; |
||
49 | CDSRapport_P2Lact_: TFloatField; |
||
50 | CDSRapport_P2VarLact_: TFloatField; |
||
51 | CDSRapport_ConsoLact_: TFloatField; |
||
52 | CDSRapport_PDLact_: TFloatField; |
||
53 | CDSRapport_LDLact_: TFloatField; |
||
54 | CDSRapport_DureeISSF_: TIntegerField; |
||
55 | CDSRapport_PVISSF_: TFloatField; |
||
56 | CDSRapport_GainTotISSF_: TFloatField; |
||
57 | CDSRapport_GainNetISSF_: TFloatField; |
||
58 | CDSRapport_P2ISSF_: TFloatField; |
||
59 | CDSRapport_P2VarISSF_: TFloatField; |
||
60 | CDSRapport_ConsoISSF_: TFloatField; |
||
61 | CDSRapport_PDISSF_: TFloatField; |
||
62 | CDSRapport_LDISSF_: TFloatField; |
||
63 | CDSRapport_NesTot_: TFloatField; |
||
64 | CDSRapport_Sevres_: TFloatField; |
||
65 | CDSRapport_PdsNais_: TFloatField; |
||
66 | CDSRapport_PdsSev_: TFloatField; |
||
67 | CDSRapport_Lait_: TFloatField; |
||
68 | FFNesVifs: TFloatField; |
||
69 | QRExpr32: TQRExpr; |
||
70 | QRExpr33: TQRExpr; |
||
71 | QRExpr31: TQRExpr; |
||
72 | QRExpr30: TQRExpr; |
||
73 | QRExpr29: TQRExpr; |
||
74 | QRExpr27: TQRExpr; |
||
75 | QRExpr28: TQRExpr; |
||
76 | QRExpr26: TQRExpr; |
||
77 | QRExpr22: TQRExpr; |
||
78 | QRExpr23: TQRExpr; |
||
79 | QRExpr19: TQRExpr; |
||
80 | QRExpr24: TQRExpr; |
||
81 | QRExpr20: TQRExpr; |
||
82 | QRExpr25: TQRExpr; |
||
83 | QRExpr21: TQRExpr; |
||
84 | QRExpr18: TQRExpr; |
||
85 | QRExpr16: TQRExpr; |
||
86 | QRExpr17: TQRExpr; |
||
87 | QRExpr15: TQRExpr; |
||
88 | QRExpr14: TQRExpr; |
||
89 | QRExpr10: TQRExpr; |
||
90 | QRExpr11: TQRExpr; |
||
91 | QRExpr12: TQRExpr; |
||
92 | QRExpr13: TQRExpr; |
||
93 | QRExpr6: TQRExpr; |
||
94 | QRExpr9: TQRExpr; |
||
95 | QRExpr8: TQRExpr; |
||
96 | QRExpr7: TQRExpr; |
||
97 | QRExpr5: TQRExpr; |
||
98 | QRExpr4: TQRExpr; |
||
99 | QRExpr1: TQRExpr; |
||
100 | QRExpr3: TQRExpr; |
||
101 | QRExpr2: TQRExpr; |
||
102 | QREAge: TQRExpr; |
||
103 | QRLSeqAli: TQRLabel; |
||
104 | QRLRation: TQRLabel; |
||
105 | QRDBTSeqAli: TQRDBText; |
||
106 | QRDBTRation: TQRDBText; |
||
107 | QRLCycle: TQRLabel; |
||
108 | QRDBTCycle: TQRDBText; |
||
109 | QRLSaillie: TQRLabel; |
||
110 | QRLPoids: TQRLabel; |
||
111 | QRLMiseBas: TQRLabel; |
||
112 | QRLP2: TQRLabel; |
||
113 | QRLAge: TQRLabel; |
||
114 | QRLVariation: TQRLabel; |
||
115 | QRLabel2: TQRLabel; |
||
116 | QRLabel3: TQRLabel; |
||
117 | QRLabel4: TQRLabel; |
||
118 | QRLabel5: TQRLabel; |
||
119 | QRLabel6: TQRLabel; |
||
120 | QRLabel7: TQRLabel; |
||
121 | QRDBTAgeSail: TQRDBText; |
||
122 | QRDBText1: TQRDBText; |
||
123 | QRDBText2: TQRDBText; |
||
124 | QRDBText3: TQRDBText; |
||
125 | QRDBText4: TQRDBText; |
||
126 | QRDBText5: TQRDBText; |
||
127 | QRDBText6: TQRDBText; |
||
128 | QRDBText7: TQRDBText; |
||
129 | QRDBText8: TQRDBText; |
||
130 | QRDBText9: TQRDBText; |
||
131 | QRDBText10: TQRDBText; |
||
132 | QRDBText11: TQRDBText; |
||
133 | QRDBText12: TQRDBText; |
||
134 | QRDBText13: TQRDBText; |
||
135 | QRDBText14: TQRDBText; |
||
136 | QRDBText15: TQRDBText; |
||
137 | QRDBText16: TQRDBText; |
||
138 | QRDBText17: TQRDBText; |
||
139 | QRLIngere: TQRLabel; |
||
140 | QRLAliTot: TQRLabel; |
||
141 | QRLAliMoy: TQRLabel; |
||
142 | QRDBText18: TQRDBText; |
||
143 | QRDBText19: TQRDBText; |
||
144 | QRDBText20: TQRDBText; |
||
145 | QRLabel8: TQRLabel; |
||
146 | QRLabel9: TQRLabel; |
||
147 | QRLabel10: TQRLabel; |
||
148 | QRLabel11: TQRLabel; |
||
149 | QRLabel12: TQRLabel; |
||
150 | QRLabel14: TQRLabel; |
||
151 | QRLabel15: TQRLabel; |
||
152 | QRLabel16: TQRLabel; |
||
153 | QRLabel17: TQRLabel; |
||
154 | QRDBText21: TQRDBText; |
||
155 | QRDBText22: TQRDBText; |
||
156 | QRDBText23: TQRDBText; |
||
157 | QRDBText24: TQRDBText; |
||
158 | QRLabel18: TQRLabel; |
||
159 | QRLabel19: TQRLabel; |
||
160 | QRLabel20: TQRLabel; |
||
161 | QRShape2: TQRShape; |
||
162 | QRShape1: TQRShape; |
||
163 | QRDBText25: TQRDBText; |
||
164 | QRDBText26: TQRDBText; |
||
165 | QRExpr34: TQRExpr; |
||
166 | QRLabel13: TQRLabel; |
||
167 | QRLabel21: TQRLabel; |
||
168 | QRLabel22: TQRLabel; |
||
169 | QRLabel23: TQRLabel; |
||
170 | QRLabel24: TQRLabel; |
||
171 | QRShape3: TQRShape; |
||
172 | QRLabel25: TQRLabel; |
||
173 | QRSDDate: TQRSysData; |
||
174 | QRIInraPorc: TQRImage; |
||
175 | QRLInraPorc: TQRLabel; |
||
176 | procedure FormCreate(Sender: TObject);
|
||
177 | private
|
||
178 | { D?clarations priv?es }
|
||
179 | public
|
||
180 | { D?clarations publiques }
|
||
181 | end;
|
||
182 | |||
183 | var
|
||
184 | FRapSimulT: TFRapSimulT; |
||
185 | |||
186 | implementation
|
||
187 | |||
188 | uses
|
||
189 | UStrings, UFindRec, UUtil, UFSimulT, UFPrevRap ; |
||
190 | |||
191 | {$R *.dfm}
|
||
192 | |||
193 | { TFRapSimulT }
|
||
194 | |||
195 | procedure TFRapSimulT.FormCreate(Sender: TObject);
|
||
196 | var
|
||
197 | Jour, Cycle, Stade, DebutStade, Duree: integer; |
||
198 | GainTot, GainNet, P2Var, Ingere, PD, LD, Lait, GainProfil, GainSimul: double; |
||
199 | begin
|
||
200 | if Screen.Fonts.IndexOf('Arial Unicode MS') <> -1 |
||
201 | then
|
||
202 | Font.Name := 'Arial Unicode MS';
|
||
203 | TranslateComponent(Self); |
||
204 | // Licence
|
||
205 | if IsEducation and (Length (Course) > 0) |
||
206 | then
|
||
207 | QRLUSer.Caption := Format('%s (%s)', [Course, Company])
|
||
208 | else
|
||
209 | if IsComplete or IsEducation |
||
210 | then
|
||
211 | QRLUSer.Caption := Format('%s %s (%s)', [FirstName, LastName, Company])
|
||
212 | else
|
||
213 | if IsEvaluation
|
||
214 | then
|
||
215 | QRLUSer.Caption := StrEvaluation |
||
216 | else
|
||
217 | begin
|
||
218 | QRLUSer.Caption := StrReadOnly; |
||
219 | QRLUser.Font.Color := clRed; |
||
220 | end;
|
||
221 | with CDSRapport do |
||
222 | begin
|
||
223 | CreateDataSet; |
||
224 | // Initialisation
|
||
225 | Cycle := Trunc(PResSimulT.TabResult[2, 1]); |
||
226 | Stade := Trunc(PResSimulT.TabResult[3, 1]); |
||
227 | GainTot := PResSimulT.TabResult[59, 1]; |
||
228 | GainNet := PResSimulT.TabResult[61, 1]; |
||
229 | P2Var := PResSimulT.TabResult[68, 1]; |
||
230 | Ingere := PResSimulT.TabResult[11, 1]; |
||
231 | PD := PResSimulT.TabResult[63, 1]; |
||
232 | LD := PResSimulT.TabResult[66, 1]; |
||
233 | Lait := PResSimulT.TabResult[69, 1]; |
||
234 | DebutStade := 1;
|
||
235 | Append; |
||
236 | FieldValues['_Simul_'] := PSimulT.Nom;
|
||
237 | FieldValues['_Profil_'] := FSimulT.CBProfil.Text;
|
||
238 | FieldValues['_Loge_'] := FSimulT.CBLoge.Text;
|
||
239 | FieldValues['_Init_'] := FSimulT.CBOptInit.Text;
|
||
240 | FieldValues['_Cycle_'] := Cycle;
|
||
241 | if PSimulT.SeqAli[Cycle] = -1 |
||
242 | then // S?quence alimentaire du profil animal |
||
243 | FieldValues['_SeqAli_'] := FindNomSeqAliT (PProfilT.SeqAli)
|
||
244 | else // S?quence alimentaire de la simulation |
||
245 | FieldValues['_SeqAli_'] := FindNomSeqAliT (PSimulT.SeqAli[Cycle]);
|
||
246 | if PSimulT.Ration[Cycle] = -1 |
||
247 | then // Ration de r?f?rence du profil animal |
||
248 | FieldValues['_Ration_'] := FSimulT.CBRationProfil.Text
|
||
249 | else // Plan de rationnement de la simulation |
||
250 | FieldValues['_Ration_'] := FindNomRationT (PSimulT.Ration[Cycle]);
|
||
251 | if Stade = 1 |
||
252 | then // Lactation |
||
253 | begin
|
||
254 | // Naissance
|
||
255 | FieldValues['_NesTot_'] := PProfilT.Porcelets[Cycle].NesTotaux;
|
||
256 | FieldValues['_NesVifs_'] := PProfilT.Porcelets[Cycle].NesVivants;
|
||
257 | FieldValues['_PdsNais_'] := PProfilT.Porcelets[Cycle].PdsNais;
|
||
258 | end ;
|
||
259 | if PResSimulT.NbJSim > 1 |
||
260 | then
|
||
261 | for Jour := 2 to PResSimulT.NbJSim do |
||
262 | if (Cycle = Trunc(PResSimulT.TabResult[2, Jour])) |
||
263 | and (Stade = Trunc(PResSimulT.TabResult[3, Jour])) |
||
264 | then // Incr?menter les compteurs |
||
265 | begin
|
||
266 | GainTot := GainTot + PResSimulT.TabResult[59, Jour];
|
||
267 | GainNet := GainNet + PResSimulT.TabResult[61, Jour];
|
||
268 | P2Var := P2Var + PResSimulT.TabResult[68, Jour];
|
||
269 | Ingere := Ingere + PResSimulT.TabResult[11, Jour];
|
||
270 | PD := PD + PResSimulT.TabResult[63, Jour];
|
||
271 | LD := LD + PResSimulT.TabResult[66, Jour];
|
||
272 | Lait := Lait + PResSimulT.TabResult[69, Jour];
|
||
273 | end
|
||
274 | else // Rupture cycle ou stade |
||
275 | begin
|
||
276 | Duree := Jour - DebutStade; |
||
277 | case Stade of |
||
278 | 0 : // Gestation |
||
279 | begin
|
||
280 | FieldValues['_DureeGest_'] := Duree;
|
||
281 | FieldValues['_PVGest_'] := PResSimulT.TabResult[58, DebutStade]; |
||
282 | FieldValues['_GainTotGest_'] := GainTot;
|
||
283 | FieldValues['_GainNetGest_'] := GainNet;
|
||
284 | FieldValues['_P2Gest_'] := PResSimulT.TabResult[67, DebutStade]; |
||
285 | FieldValues['_P2VarGest_'] := P2Var;
|
||
286 | FieldValues['_ConsoGest_'] := Ingere;
|
||
287 | FieldValues['_PDGest_'] := PD;
|
||
288 | FieldValues['_LDGest_'] := LD;
|
||
289 | // Naissance
|
||
290 | FieldValues['_NesTot_'] := PProfilT.Porcelets[Cycle].NesTotaux;
|
||
291 | FieldValues['_NesVifs_'] := PProfilT.Porcelets[Cycle].NesVivants;
|
||
292 | FieldValues['_PdsNais_'] := PProfilT.Porcelets[Cycle].PdsNais;
|
||
293 | end;
|
||
294 | 1 : // Lactation |
||
295 | begin
|
||
296 | FieldValues['_DureeLact_'] := Duree;
|
||
297 | FieldValues['_PVLact_'] := PResSimulT.TabResult[58, DebutStade]; |
||
298 | FieldValues['_GainTotLact_'] := GainTot;
|
||
299 | FieldValues['_GainNetLact_'] := GainNet;
|
||
300 | FieldValues['_P2Lact_'] := PResSimulT.TabResult[67, DebutStade]; |
||
301 | FieldValues['_P2VarLact_'] := P2Var;
|
||
302 | FieldValues['_ConsoLact_'] := Ingere;
|
||
303 | FieldValues['_PDLact_'] := PD;
|
||
304 | FieldValues['_LDLact_'] := LD;
|
||
305 | // Sevrage
|
||
306 | FieldValues['_Sevres_'] := PProfilT.Porcelets[Cycle].Sevres;
|
||
307 | // Ajustement du poids de sevrage ? la dur?e de lactation
|
||
308 | GainProfil := (273 * PProfilT.DureeLact + (289 / 0.38) * Exp (-0.38 * PProfilT.DureeLact) - 289 / 0.38) / 1000; |
||
309 | GainSimul := (273 * PSimulT.DureeLact + (289 / 0.38) * Exp (-0.38 * PSimulT.DureeLact) - 289 / 0.38) / 1000; |
||
310 | FieldValues['_PdsSev_'] := PProfilT.Porcelets[Cycle].PdsNais + GainSimul * (PProfilT.Porcelets[Cycle].PdsSev - PProfilT.Porcelets[Cycle].PdsNais) / GainProfil;
|
||
311 | FieldValues['_Lait_'] := Lait;
|
||
312 | end;
|
||
313 | else // ISSF |
||
314 | begin
|
||
315 | FieldValues['_DureeISSF_'] := Duree;
|
||
316 | FieldValues['_PVISSF_'] := PResSimulT.TabResult[58, DebutStade]; |
||
317 | FieldValues['_GainTotISSF_'] := GainTot;
|
||
318 | FieldValues['_GainNetISSF_'] := GainNet;
|
||
319 | FieldValues['_P2ISSF_'] := PResSimulT.TabResult[67, DebutStade]; |
||
320 | FieldValues['_P2VarISSF_'] := P2Var;
|
||
321 | FieldValues['_ConsoISSF_'] := Ingere;
|
||
322 | FieldValues['_PDISSF_'] := PD;
|
||
323 | FieldValues['_LDISSF_'] := LD;
|
||
324 | end;
|
||
325 | end;
|
||
326 | // R?initialisation
|
||
327 | Stade := Trunc(PResSimulT.TabResult[3, Jour]);
|
||
328 | GainTot := PResSimulT.TabResult[59, Jour];
|
||
329 | GainNet := PResSimulT.TabResult[61, Jour];
|
||
330 | P2Var := PResSimulT.TabResult[68, Jour];
|
||
331 | Ingere := PResSimulT.TabResult[11, Jour];
|
||
332 | PD := PResSimulT.TabResult[63, Jour];
|
||
333 | LD := PResSimulT.TabResult[66, Jour];
|
||
334 | Lait := PResSimulT.TabResult[69, Jour];
|
||
335 | DebutStade := Jour; |
||
336 | if Cycle <> Trunc(PResSimulT.TabResult[2, Jour]) |
||
337 | then // Changement de cycle |
||
338 | begin
|
||
339 | Post; |
||
340 | Cycle := Trunc(PResSimulT.TabResult[2, Jour]);
|
||
341 | Append; |
||
342 | FieldValues['_Simul_'] := PSimulT.Nom;
|
||
343 | FieldValues['_Profil_'] := FSimulT.CBProfil.Text;
|
||
344 | FieldValues['_Loge_'] := FSimulT.CBLoge.Text;
|
||
345 | FieldValues['_Init_'] := FSimulT.CBOptInit.Text;
|
||
346 | FieldValues['_Cycle_'] := Cycle;
|
||
347 | if PSimulT.SeqAli[Cycle] = -1 |
||
348 | then // S?quence alimentaire du profil animal |
||
349 | FieldValues['_SeqAli_'] := FindNomSeqAliT (PProfilT.SeqAli)
|
||
350 | else // S?quence alimentaire de la simulation |
||
351 | FieldValues['_SeqAli_'] := FindNomSeqAliT (PSimulT.SeqAli[Cycle]);
|
||
352 | if PSimulT.Ration[Cycle] = -1 |
||
353 | then // Ration de r?f?rence du profil animal |
||
354 | FieldValues['_Ration_'] := FSimulT.CBRationProfil.Text
|
||
355 | else // Plan de rationnement de la simulation |
||
356 | FieldValues['_Ration_'] := FindNomRationT (PSimulT.Ration[Cycle]);
|
||
357 | end;
|
||
358 | end;
|
||
359 | // Fin de simulation
|
||
360 | Duree := PResSimulT.NbJSim - DebutStade + 1;
|
||
361 | case Stade of |
||
362 | 0 : // Gestation |
||
363 | begin
|
||
364 | FieldValues['_DureeGest_'] := Duree;
|
||
365 | FieldValues['_PVGest_'] := PResSimulT.TabResult[58, DebutStade]; |
||
366 | FieldValues['_GainTotGest_'] := GainTot;
|
||
367 | FieldValues['_GainNetGest_'] := GainNet;
|
||
368 | FieldValues['_P2Gest_'] := PResSimulT.TabResult[67, DebutStade]; |
||
369 | FieldValues['_P2VarGest_'] := P2Var;
|
||
370 | FieldValues['_ConsoGest_'] := Ingere;
|
||
371 | FieldValues['_PDGest_'] := PD;
|
||
372 | FieldValues['_LDGest_'] := LD;
|
||
373 | // Naissance
|
||
374 | FieldValues['_NesTot_'] := PProfilT.Porcelets[Cycle].NesTotaux;
|
||
375 | FieldValues['_NesVifs_'] := PProfilT.Porcelets[Cycle].NesVivants;
|
||
376 | FieldValues['_PdsNais_'] := PProfilT.Porcelets[Cycle].PdsNais;
|
||
377 | end;
|
||
378 | 1 : // Lactation |
||
379 | begin
|
||
380 | FieldValues['_DureeLact_'] := Duree;
|
||
381 | FieldValues['_PVLact_'] := PResSimulT.TabResult[58, DebutStade]; |
||
382 | FieldValues['_GainTotLact_'] := GainTot;
|
||
383 | FieldValues['_GainNetLact_'] := GainNet;
|
||
384 | FieldValues['_P2Lact_'] := PResSimulT.TabResult[67, DebutStade]; |
||
385 | FieldValues['_P2VarLact_'] := P2Var;
|
||
386 | FieldValues['_ConsoLact_'] := Ingere;
|
||
387 | FieldValues['_PDLact_'] := PD;
|
||
388 | FieldValues['_LDLact_'] := LD;
|
||
389 | // Sevrage
|
||
390 | FieldValues['_Sevres_'] := PProfilT.Porcelets[Cycle].Sevres;
|
||
391 | // Ajustement du poids de sevrage ? la dur?e de lactation
|
||
392 | GainProfil := (273 * PProfilT.DureeLact + (289 / 0.38) * Exp (-0.38 * PProfilT.DureeLact) - 289 / 0.38) / 1000; |
||
393 | GainSimul := (273 * PSimulT.DureeLact + (289 / 0.38) * Exp (-0.38 * PSimulT.DureeLact) - 289 / 0.38) / 1000; |
||
394 | FieldValues['_PdsSev_'] := PProfilT.Porcelets[Cycle].PdsNais + GainSimul * (PProfilT.Porcelets[Cycle].PdsSev - PProfilT.Porcelets[Cycle].PdsNais) / GainProfil;
|
||
395 | FieldValues['_Lait_'] := Lait;
|
||
396 | end;
|
||
397 | else // ISSF |
||
398 | begin
|
||
399 | FieldValues['_DureeISSF_'] := Duree;
|
||
400 | FieldValues['_PVISSF_'] := PResSimulT.TabResult[58, DebutStade]; |
||
401 | FieldValues['_GainTotISSF_'] := GainTot;
|
||
402 | FieldValues['_GainNetISSF_'] := GainNet;
|
||
403 | FieldValues['_P2ISSF_'] := PResSimulT.TabResult[67, DebutStade]; |
||
404 | FieldValues['_P2VarISSF_'] := P2Var;
|
||
405 | FieldValues['_ConsoISSF_'] := Ingere;
|
||
406 | FieldValues['_PDISSF_'] := PD;
|
||
407 | FieldValues['_LDISSF_'] := LD;
|
||
408 | end;
|
||
409 | end;
|
||
410 | Post; |
||
411 | end;
|
||
412 | RegisterPreviewClass(TQRPrevRapInterface); |
||
413 | // QRRapport.PreviewModal;
|
||
414 | // RegisterPreviewClass(TQRStandardPreviewInterface);
|
||
415 | end;
|
||
416 | |||
417 | end. |