root / UnitPredictionDetail.pas @ 1
Historique | Voir | Annoter | Télécharger (49,165 ko)
1 | 1 | avalancogn | unit UnitPredictionDetail;
|
---|---|---|---|
2 | |||
3 | {$WARN SYMBOL_PLATFORM OFF}
|
||
4 | |||
5 | interface
|
||
6 | |||
7 | uses
|
||
8 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
||
9 | Dialogs, StdCtrls, ExtCtrls, DB, DBCtrls, Mask, JvEdit, JvExStdCtrls, |
||
10 | JvValidateEdit, JvCsvData, RpSystem, RpRender, RpRenderPDF, RpDefine, RpRave, |
||
11 | RvClass, RvCsStd, RpBase, gnugettext, ActnList, ImgList, JvButton, JvCtrls, |
||
12 | XMLIntf, XMLDoc, RpDevice; |
||
13 | |||
14 | type
|
||
15 | TFormPredictionDetail = class(TForm)
|
||
16 | RvProjectReport: TRvProject; |
||
17 | RvSystemReport: TRvSystem; |
||
18 | SaveDialogExport: TSaveDialog; |
||
19 | PanelMain: TPanel; |
||
20 | PanelButtons: TPanel; |
||
21 | LabelName: TLabel; |
||
22 | LabelMS: TLabel; |
||
23 | EditName: TEdit; |
||
24 | EditMS: TMemo; |
||
25 | GroupBoxAzote: TGroupBox; |
||
26 | LabelCrois3: TLabel; |
||
27 | LabelTruie3: TLabel; |
||
28 | LabeldN: TLabel; |
||
29 | EditdNc: TMemo; |
||
30 | EditdNt: TMemo; |
||
31 | GroupBoxEnergy: TGroupBox; |
||
32 | LabelEB: TLabel; |
||
33 | LabelED: TLabel; |
||
34 | LabelEM: TLabel; |
||
35 | LabelEN: TLabel; |
||
36 | LabelCrois1: TLabel; |
||
37 | LabelTruie1: TLabel; |
||
38 | LabelRatio: TLabel; |
||
39 | EditEBc: TMemo; |
||
40 | EditEBt: TMemo; |
||
41 | EditEDc: TMemo; |
||
42 | EditEDt: TMemo; |
||
43 | EditEMc: TMemo; |
||
44 | EditEMt: TMemo; |
||
45 | EditENc: TMemo; |
||
46 | EditENt: TMemo; |
||
47 | EditEMt_EMc: TMemo; |
||
48 | EditENt_ENc: TMemo; |
||
49 | EditEBt_EBc: TMemo; |
||
50 | EditEDt_EDc: TMemo; |
||
51 | GroupBoxEnergyUtilization: TGroupBox; |
||
52 | LabeldE: TLabel; |
||
53 | LabelEM_ED: TLabel; |
||
54 | LabelEN_EM: TLabel; |
||
55 | LabelCrois2: TLabel; |
||
56 | LabelTruie2: TLabel; |
||
57 | LabelBonus: TLabel; |
||
58 | EditdEc: TMemo; |
||
59 | EditdEt: TMemo; |
||
60 | EditEMc_EDc: TMemo; |
||
61 | EditEMt_EDt: TMemo; |
||
62 | EditENc_EMc: TMemo; |
||
63 | EditENt_EMt: TMemo; |
||
64 | EditBonusC: TMemo; |
||
65 | EditBonusT: TMemo; |
||
66 | GroupBoxProximal: TGroupBox; |
||
67 | LabelMAT: TLabel; |
||
68 | LabelCB: TLabel; |
||
69 | LabelMG: TLabel; |
||
70 | LabelMM: TLabel; |
||
71 | LabelNDF: TLabel; |
||
72 | LabelADF: TLabel; |
||
73 | LabelAmidon: TLabel; |
||
74 | LabelSucres: TLabel; |
||
75 | LabelMOdv: TLabel; |
||
76 | EditMAT: TMemo; |
||
77 | EditCB: TMemo; |
||
78 | EditMG: TMemo; |
||
79 | EditMM: TMemo; |
||
80 | EditNDF: TMemo; |
||
81 | EditADF: TMemo; |
||
82 | EditAmidon: TMemo; |
||
83 | EditSucres: TMemo; |
||
84 | EditMOdv: TMemo; |
||
85 | ImageListIcons: TImageList; |
||
86 | ActionListButtons: TActionList; |
||
87 | ActionPrint: TAction; |
||
88 | ActionXML: TAction; |
||
89 | ActionHelp: TAction; |
||
90 | ActionClose: TAction; |
||
91 | JvImgBtnClose: TJvImgBtn; |
||
92 | JvImgBtnHelp: TJvImgBtn; |
||
93 | JvImgBtnXML: TJvImgBtn; |
||
94 | JvImgBtnPrint: TJvImgBtn; |
||
95 | procedure FormCreate(Sender: TObject);
|
||
96 | procedure FormShow(Sender: TObject);
|
||
97 | procedure ActionPrintExecute(Sender: TObject);
|
||
98 | procedure ActionXMLExecute(Sender: TObject);
|
||
99 | procedure ActionHelpExecute(Sender: TObject);
|
||
100 | procedure ActionCloseExecute(Sender: TObject);
|
||
101 | private
|
||
102 | { D?clarations priv?es }
|
||
103 | MS, MM, MAT, MG, CB, NDF, ADF, Amidon, Sucres, dMOv: Double; |
||
104 | EB, dEc, BonusC, EDc, EMc, ENc, dEt, BonusT, EDt, EMt, ENt, dNc, dNt: Double; |
||
105 | procedure BuildReport;
|
||
106 | public
|
||
107 | { D?clarations publiques }
|
||
108 | end;
|
||
109 | |||
110 | var
|
||
111 | FormPredictionDetail: TFormPredictionDetail; |
||
112 | |||
113 | implementation
|
||
114 | |||
115 | uses
|
||
116 | UnitDeclaration, UnitOptions, UnitPredictionCreate; |
||
117 | |||
118 | {$R *.dfm}
|
||
119 | |||
120 | procedure TFormPredictionDetail.ActionCloseExecute(Sender: TObject);
|
||
121 | begin
|
||
122 | ModalResult := mrClose; |
||
123 | end;
|
||
124 | |||
125 | procedure TFormPredictionDetail.ActionXMLExecute(Sender: TObject);
|
||
126 | var
|
||
127 | USFormatSettings: TFormatSettings; |
||
128 | XMLDoc: IXMLDocument; |
||
129 | Workbook, Worksheet, Table, Row: IXMLNode; |
||
130 | |||
131 | procedure CellData(Row: IXMLNode; Value, Format: string); |
||
132 | var
|
||
133 | Cell, Data: IXMLNode; |
||
134 | begin
|
||
135 | Cell := Row.AddChild('Cell');
|
||
136 | Data := Cell.AddChild('Data');
|
||
137 | Data.Attributes['ss:Type'] := Format;
|
||
138 | Data.Text := Value; |
||
139 | end;
|
||
140 | |||
141 | begin
|
||
142 | if SaveDialogExport.Execute
|
||
143 | then
|
||
144 | begin
|
||
145 | GetLocaleFormatSettings(1033, USFormatSettings);
|
||
146 | XMLDoc := TXMLDocument.Create(nil);
|
||
147 | try
|
||
148 | XMLDoc.XML.Clear; |
||
149 | XMLDoc.XML.Add('<?xml version="1.0" encoding="UTF-8" ?>');
|
||
150 | XMLDoc.XML.Add('<?mso-application progid="Excel.Sheet"?>');
|
||
151 | XMLDoc.XML.Add('<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet">');
|
||
152 | XMLDoc.XML.Add('</Workbook>');
|
||
153 | XMLDoc.Active := True; |
||
154 | Workbook := XMLDoc.DocumentElement; |
||
155 | Workbook.DeclareNamespace('o', 'urn:schemas-microsoft-com:office:office'); |
||
156 | Workbook.DeclareNamespace('x', 'urn:schemas-microsoft-com:office:excel'); |
||
157 | Workbook.DeclareNamespace('ss', 'urn:schemas-microsoft-com:office:spreadsheet'); |
||
158 | Workbook.DeclareNamespace('html', 'http://www.w3.org/TR/REC-html40'); |
||
159 | Worksheet := Workbook.AddChild('Worksheet');
|
||
160 | Worksheet.SetAttributeNS('ss:Name', Workbook.FindNamespaceURI('ss'), Caption); |
||
161 | Table := Worksheet.AddChild('Table');
|
||
162 | // Titre
|
||
163 | Row := Table.AddChild('Row');
|
||
164 | CellData(Row, _('Label'), 'String'); |
||
165 | CellData(Row, _('Value'), 'String'); |
||
166 | CellData(Row, _('Unit'), 'String'); |
||
167 | // Donn?es
|
||
168 | Row := Table.AddChild('Row');
|
||
169 | CellData(Row, LabelName.Caption, 'String');
|
||
170 | CellData(Row, EditName.Text, 'String');
|
||
171 | // Analyse proximale
|
||
172 | Row := Table.AddChild('Row');
|
||
173 | CellData(Row, LabelMS.Caption, 'String');
|
||
174 | CellData(Row, FloatToStrF(MS, ffFixed, 15, FormOptions.ProximalDecimals, USFormatSettings), 'Number'); |
||
175 | if FormOptions.Expression = 0 |
||
176 | then // sur frais |
||
177 | CellData(Row, FormOptions.ComboBoxProximal.Items[FormOptions.Proximal], 'String')
|
||
178 | else // sur mati?re s?che |
||
179 | CellData(Row, Format('%s %s', [FormOptions.ComboBoxProximal.Items[FormOptions.Proximal], _('DM')]), 'String'); |
||
180 | Row := Table.AddChild('Row');
|
||
181 | CellData(Row, LabelMM.Caption, 'String');
|
||
182 | if EditMM.Text <> '' |
||
183 | then
|
||
184 | with DataModuleDeclaration do |
||
185 | CellData(Row, FloatToStrF(OutputProximal(MM, RapMS, FormOptions.Expression, FormOptions.Proximal), ffFixed, 15, FormOptions.ProximalDecimals, USFormatSettings), 'Number') |
||
186 | else
|
||
187 | CellData(Row, '', 'String'); |
||
188 | if FormOptions.Expression = 0 |
||
189 | then // sur frais |
||
190 | CellData(Row, FormOptions.ComboBoxProximal.Items[FormOptions.Proximal], 'String')
|
||
191 | else // sur mati?re s?che |
||
192 | CellData(Row, Format('%s %s', [FormOptions.ComboBoxProximal.Items[FormOptions.Proximal], _('DM')]), 'String'); |
||
193 | Row := Table.AddChild('Row');
|
||
194 | CellData(Row, LabelMAT.Caption, 'String');
|
||
195 | if EditMAT.Text <> '' |
||
196 | then
|
||
197 | with DataModuleDeclaration do |
||
198 | CellData(Row, FloatToStrF(OutputProximal(MAT, RapMS, FormOptions.Expression, FormOptions.Proximal), ffFixed, 15, FormOptions.ProximalDecimals, USFormatSettings), 'Number') |
||
199 | else
|
||
200 | CellData(Row, '', 'String'); |
||
201 | if FormOptions.Expression = 0 |
||
202 | then // sur frais |
||
203 | CellData(Row, FormOptions.ComboBoxProximal.Items[FormOptions.Proximal], 'String')
|
||
204 | else // sur mati?re s?che |
||
205 | CellData(Row, Format('%s %s', [FormOptions.ComboBoxProximal.Items[FormOptions.Proximal], _('DM')]), 'String'); |
||
206 | Row := Table.AddChild('Row');
|
||
207 | CellData(Row, LabelMG.Caption, 'String');
|
||
208 | if EditMG.Text <> '' |
||
209 | then
|
||
210 | with DataModuleDeclaration do |
||
211 | CellData(Row, FloatToStrF(OutputProximal(MG, RapMS, FormOptions.Expression, FormOptions.Proximal), ffFixed, 15, FormOptions.ProximalDecimals, USFormatSettings), 'Number') |
||
212 | else
|
||
213 | CellData(Row, '', 'String'); |
||
214 | if FormOptions.Expression = 0 |
||
215 | then // sur frais |
||
216 | CellData(Row, FormOptions.ComboBoxProximal.Items[FormOptions.Proximal], 'String')
|
||
217 | else // sur mati?re s?che |
||
218 | CellData(Row, Format('%s %s', [FormOptions.ComboBoxProximal.Items[FormOptions.Proximal], _('DM')]), 'String'); |
||
219 | Row := Table.AddChild('Row');
|
||
220 | CellData(Row, LabelCB.Caption, 'String');
|
||
221 | if EditCB.Text <> '' |
||
222 | then
|
||
223 | with DataModuleDeclaration do |
||
224 | CellData(Row, FloatToStrF(OutputProximal(CB, RapMS, FormOptions.Expression, FormOptions.Proximal), ffFixed, 15, FormOptions.ProximalDecimals, USFormatSettings), 'Number') |
||
225 | else
|
||
226 | CellData(Row, '', 'String'); |
||
227 | if FormOptions.Expression = 0 |
||
228 | then // sur frais |
||
229 | CellData(Row, FormOptions.ComboBoxProximal.Items[FormOptions.Proximal], 'String')
|
||
230 | else // sur mati?re s?che |
||
231 | CellData(Row, Format('%s %s', [FormOptions.ComboBoxProximal.Items[FormOptions.Proximal], _('DM')]), 'String'); |
||
232 | Row := Table.AddChild('Row');
|
||
233 | CellData(Row, LabelNDF.Caption, 'String');
|
||
234 | if EditNDF.Text <> '' |
||
235 | then
|
||
236 | with DataModuleDeclaration do |
||
237 | CellData(Row, FloatToStrF(OutputProximal(NDF, RapMS, FormOptions.Expression, FormOptions.Proximal), ffFixed, 15, FormOptions.ProximalDecimals, USFormatSettings), 'Number') |
||
238 | else
|
||
239 | CellData(Row, '', 'String'); |
||
240 | if FormOptions.Expression = 0 |
||
241 | then // sur frais |
||
242 | CellData(Row, FormOptions.ComboBoxProximal.Items[FormOptions.Proximal], 'String')
|
||
243 | else // sur mati?re s?che |
||
244 | CellData(Row, Format('%s %s', [FormOptions.ComboBoxProximal.Items[FormOptions.Proximal], _('DM')]), 'String'); |
||
245 | Row := Table.AddChild('Row');
|
||
246 | CellData(Row, LabelADF.Caption, 'String');
|
||
247 | if EditADF.Text <> '' |
||
248 | then
|
||
249 | with DataModuleDeclaration do |
||
250 | CellData(Row, FloatToStrF(OutputProximal(ADF, RapMS, FormOptions.Expression, FormOptions.Proximal), ffFixed, 15, FormOptions.ProximalDecimals, USFormatSettings), 'Number') |
||
251 | else
|
||
252 | CellData(Row, '', 'String'); |
||
253 | if FormOptions.Expression = 0 |
||
254 | then // sur frais |
||
255 | CellData(Row, FormOptions.ComboBoxProximal.Items[FormOptions.Proximal], 'String')
|
||
256 | else // sur mati?re s?che |
||
257 | CellData(Row, Format('%s %s', [FormOptions.ComboBoxProximal.Items[FormOptions.Proximal], _('DM')]), 'String'); |
||
258 | Row := Table.AddChild('Row');
|
||
259 | CellData(Row, LabelAmidon.Caption, 'String');
|
||
260 | if EditAmidon.Text <> '' |
||
261 | then
|
||
262 | with DataModuleDeclaration do |
||
263 | CellData(Row, FloatToStrF(OutputProximal(Amidon, RapMS, FormOptions.Expression, FormOptions.Proximal), ffFixed, 15, FormOptions.ProximalDecimals, USFormatSettings), 'Number') |
||
264 | else
|
||
265 | CellData(Row, '', 'String'); |
||
266 | if FormOptions.Expression = 0 |
||
267 | then // sur frais |
||
268 | CellData(Row, FormOptions.ComboBoxProximal.Items[FormOptions.Proximal], 'String')
|
||
269 | else // sur mati?re s?che |
||
270 | CellData(Row, Format('%s %s', [FormOptions.ComboBoxProximal.Items[FormOptions.Proximal], _('DM')]), 'String'); |
||
271 | Row := Table.AddChild('Row');
|
||
272 | CellData(Row, LabelSucres.Caption, 'String');
|
||
273 | if EditSucres.Text <> '' |
||
274 | then
|
||
275 | with DataModuleDeclaration do |
||
276 | CellData(Row, FloatToStrF(OutputProximal(Sucres, RapMS, FormOptions.Expression, FormOptions.Proximal), ffFixed, 15, FormOptions.ProximalDecimals, USFormatSettings), 'Number') |
||
277 | else
|
||
278 | CellData(Row, '', 'String'); |
||
279 | if FormOptions.Expression = 0 |
||
280 | then // sur frais |
||
281 | CellData(Row, FormOptions.ComboBoxProximal.Items[FormOptions.Proximal], 'String')
|
||
282 | else // sur mati?re s?che |
||
283 | CellData(Row, Format('%s %s', [FormOptions.ComboBoxProximal.Items[FormOptions.Proximal], _('DM')]), 'String'); |
||
284 | Row := Table.AddChild('Row');
|
||
285 | CellData(Row, LabelMOdv.Hint, 'String');
|
||
286 | if EditMOdv.Text <> '' |
||
287 | then
|
||
288 | with DataModuleDeclaration do |
||
289 | CellData(Row, FloatToStrF(OutputProximal(dMOv * (1 - MM), RapMS, FormOptions.Expression, FormOptions.Proximal), ffFixed, 15, FormOptions.ProximalDecimals, USFormatSettings), 'Number') |
||
290 | else
|
||
291 | CellData(Row, '', 'String'); |
||
292 | if FormOptions.Expression = 0 |
||
293 | then // sur frais |
||
294 | CellData(Row, FormOptions.ComboBoxProximal.Items[FormOptions.Proximal], 'String')
|
||
295 | else // sur mati?re s?che |
||
296 | CellData(Row, Format('%s %s', [FormOptions.ComboBoxProximal.Items[FormOptions.Proximal], _('DM')]), 'String'); |
||
297 | // Energie
|
||
298 | Row := Table.AddChild('Row');
|
||
299 | CellData(Row, LabelEB.Caption, 'String');
|
||
300 | if EditEBc.Text <> '' |
||
301 | then
|
||
302 | with DataModuleDeclaration do |
||
303 | CellData(Row, FloatToStrF(OutputEnergy(EB, RapMS, FormOptions.Expression, FormOptions.Energy), ffFixed, 15, FormOptions.EnergyDecimals, USFormatSettings), 'Number') |
||
304 | else
|
||
305 | CellData(Row, '', 'String'); |
||
306 | if FormOptions.Expression = 0 |
||
307 | then // sur frais |
||
308 | CellData(Row, FormOptions.ComboBoxEnergy.Items[FormOptions.Energy], 'String')
|
||
309 | else // sur mati?re s?che |
||
310 | CellData(Row, Format('%s %s', [FormOptions.ComboBoxEnergy.Items[FormOptions.Energy], _('DM')]), 'String'); |
||
311 | Row := Table.AddChild('Row');
|
||
312 | CellData(Row, Format('%s, %s', [LabelED.Caption, _('growing pig')]), 'String'); |
||
313 | if EditEDc.Text <> '' |
||
314 | then
|
||
315 | with DataModuleDeclaration do |
||
316 | CellData(Row, FloatToStrF(OutputEnergy(EDc, RapMS, FormOptions.Expression, FormOptions.Energy), ffFixed, 15, FormOptions.EnergyDecimals, USFormatSettings), 'Number') |
||
317 | else
|
||
318 | CellData(Row, '', 'String'); |
||
319 | if FormOptions.Expression = 0 |
||
320 | then // sur frais |
||
321 | CellData(Row, FormOptions.ComboBoxEnergy.Items[FormOptions.Energy], 'String')
|
||
322 | else // sur mati?re s?che |
||
323 | CellData(Row, Format('%s %s', [FormOptions.ComboBoxEnergy.Items[FormOptions.Energy], _('DM')]), 'String'); |
||
324 | Row := Table.AddChild('Row');
|
||
325 | CellData(Row, Format('%s, %s', [LabelED.Caption, _('adult pig')]), 'String'); |
||
326 | if EditEDt.Text <> '' |
||
327 | then
|
||
328 | with DataModuleDeclaration do |
||
329 | CellData(Row, FloatToStrF(OutputEnergy(EDt, RapMS, FormOptions.Expression, FormOptions.Energy), ffFixed, 15, FormOptions.EnergyDecimals, USFormatSettings), 'Number') |
||
330 | else
|
||
331 | CellData(Row, '', 'String'); |
||
332 | if FormOptions.Expression = 0 |
||
333 | then // sur frais |
||
334 | CellData(Row, FormOptions.ComboBoxEnergy.Items[FormOptions.Energy], 'String')
|
||
335 | else // sur mati?re s?che |
||
336 | CellData(Row, Format('%s %s', [FormOptions.ComboBoxEnergy.Items[FormOptions.Energy], _('DM')]), 'String'); |
||
337 | Row := Table.AddChild('Row');
|
||
338 | CellData(Row, Format('%s, %s', [LabelED.Caption, _('ratio')]), 'String'); |
||
339 | if EditEDt_EDc.Text <> '' |
||
340 | then
|
||
341 | with DataModuleDeclaration do |
||
342 | CellData(Row, FloatToStrF(EDt / EDc * 100, ffFixed, 15, 1, USFormatSettings), 'Number') |
||
343 | else
|
||
344 | CellData(Row, '', 'String'); |
||
345 | CellData(Row, '%', 'String'); |
||
346 | Row := Table.AddChild('Row');
|
||
347 | CellData(Row, Format('%s, %s', [LabelEM.Caption, _('growing pig')]), 'String'); |
||
348 | if EditEMc.Text <> '' |
||
349 | then
|
||
350 | with DataModuleDeclaration do |
||
351 | CellData(Row, FloatToStrF(OutputEnergy(EMc, RapMS, FormOptions.Expression, FormOptions.Energy), ffFixed, 15, FormOptions.EnergyDecimals, USFormatSettings), 'Number') |
||
352 | else
|
||
353 | CellData(Row, '', 'String'); |
||
354 | if FormOptions.Expression = 0 |
||
355 | then // sur frais |
||
356 | CellData(Row, FormOptions.ComboBoxEnergy.Items[FormOptions.Energy], 'String')
|
||
357 | else // sur mati?re s?che |
||
358 | CellData(Row, Format('%s %s', [FormOptions.ComboBoxEnergy.Items[FormOptions.Energy], _('DM')]), 'String'); |
||
359 | Row := Table.AddChild('Row');
|
||
360 | CellData(Row, Format('%s, %s', [LabelEM.Caption, _('adult pig')]), 'String'); |
||
361 | if EditEMt.Text <> '' |
||
362 | then
|
||
363 | with DataModuleDeclaration do |
||
364 | CellData(Row, FloatToStrF(OutputEnergy(EMt, RapMS, FormOptions.Expression, FormOptions.Energy), ffFixed, 15, FormOptions.EnergyDecimals, USFormatSettings), 'Number') |
||
365 | else
|
||
366 | CellData(Row, '', 'String'); |
||
367 | if FormOptions.Expression = 0 |
||
368 | then // sur frais |
||
369 | CellData(Row, FormOptions.ComboBoxEnergy.Items[FormOptions.Energy], 'String')
|
||
370 | else // sur mati?re s?che |
||
371 | CellData(Row, Format('%s %s', [FormOptions.ComboBoxEnergy.Items[FormOptions.Energy], _('DM')]), 'String'); |
||
372 | Row := Table.AddChild('Row');
|
||
373 | CellData(Row, Format('%s, %s', [LabelEM.Caption, _('ratio')]), 'String'); |
||
374 | if EditEMt_EMc.Text <> '' |
||
375 | then
|
||
376 | with DataModuleDeclaration do |
||
377 | CellData(Row, FloatToStrF(EMt / EMc * 100, ffFixed, 15, 1, USFormatSettings), 'Number') |
||
378 | else
|
||
379 | CellData(Row, '', 'String'); |
||
380 | CellData(Row, '%', 'String'); |
||
381 | Row := Table.AddChild('Row');
|
||
382 | CellData(Row, Format('%s, %s', [LabelEN.Caption, _('growing pig')]), 'String'); |
||
383 | if EditENc.Text <> '' |
||
384 | then
|
||
385 | with DataModuleDeclaration do |
||
386 | CellData(Row, FloatToStrF(OutputEnergy(ENc, RapMS, FormOptions.Expression, FormOptions.Energy), ffFixed, 15, FormOptions.EnergyDecimals, USFormatSettings), 'Number') |
||
387 | else
|
||
388 | CellData(Row, '', 'String'); |
||
389 | if FormOptions.Expression = 0 |
||
390 | then // sur frais |
||
391 | CellData(Row, FormOptions.ComboBoxEnergy.Items[FormOptions.Energy], 'String')
|
||
392 | else // sur mati?re s?che |
||
393 | CellData(Row, Format('%s %s', [FormOptions.ComboBoxEnergy.Items[FormOptions.Energy], _('DM')]), 'String'); |
||
394 | Row := Table.AddChild('Row');
|
||
395 | CellData(Row, Format('%s, %s', [LabelEN.Caption, _('adult pig')]), 'String'); |
||
396 | if EditENt.Text <> '' |
||
397 | then
|
||
398 | with DataModuleDeclaration do |
||
399 | CellData(Row, FloatToStrF(OutputEnergy(ENt, RapMS, FormOptions.Expression, FormOptions.Energy), ffFixed, 15, FormOptions.EnergyDecimals, USFormatSettings), 'Number') |
||
400 | else
|
||
401 | CellData(Row, '', 'String'); |
||
402 | if FormOptions.Expression = 0 |
||
403 | then // sur frais |
||
404 | CellData(Row, FormOptions.ComboBoxEnergy.Items[FormOptions.Energy], 'String')
|
||
405 | else // sur mati?re s?che |
||
406 | CellData(Row, Format('%s %s', [FormOptions.ComboBoxEnergy.Items[FormOptions.Energy], _('DM')]), 'String'); |
||
407 | Row := Table.AddChild('Row');
|
||
408 | CellData(Row, Format('%s, %s', [LabelEN.Caption, _('ratio')]), 'String'); |
||
409 | if EditENt_ENc.Text <> '' |
||
410 | then
|
||
411 | with DataModuleDeclaration do |
||
412 | CellData(Row, FloatToStrF(ENt / ENc * 100, ffFixed, 15, 1, USFormatSettings), 'Number') |
||
413 | else
|
||
414 | CellData(Row, '', 'String'); |
||
415 | CellData(Row, '%', 'String'); |
||
416 | Row := Table.AddChild('Row');
|
||
417 | CellData(Row, Format('%s, %s', [LabelBonus.Caption, _('growing pig')]), 'String'); |
||
418 | CellData(Row, FloatToStrF(BonusC, ffFixed, 15, 1, USFormatSettings), 'Number'); |
||
419 | CellData(Row, '%', 'String'); |
||
420 | Row := Table.AddChild('Row');
|
||
421 | CellData(Row, Format('%s, %s', [LabelBonus.Caption, _('adult pig')]), 'String'); |
||
422 | CellData(Row, FloatToStrF(BonusT, ffFixed, 15, 1, USFormatSettings), 'Number'); |
||
423 | CellData(Row, '%', 'String'); |
||
424 | Row := Table.AddChild('Row');
|
||
425 | CellData(Row, Format('%s, %s', [LabeldE.Caption, _('growing pig')]), 'String'); |
||
426 | if EditdEc.Text <> '' |
||
427 | then
|
||
428 | with DataModuleDeclaration do |
||
429 | CellData(Row, FloatToStrF(dEc + BonusC, ffFixed, 15, 1, USFormatSettings), 'Number') |
||
430 | else
|
||
431 | CellData(Row, '', 'String'); |
||
432 | CellData(Row, '%', 'String'); |
||
433 | Row := Table.AddChild('Row');
|
||
434 | CellData(Row, Format('%s, %s', [LabeldE.Caption, _('adult pig')]), 'String'); |
||
435 | if EditdEt.Text <> '' |
||
436 | then
|
||
437 | with DataModuleDeclaration do |
||
438 | CellData(Row, FloatToStrF(dEt + BonusT, ffFixed, 15, 1, USFormatSettings), 'Number') |
||
439 | else
|
||
440 | CellData(Row, '', 'String'); |
||
441 | CellData(Row, '%', 'String'); |
||
442 | Row := Table.AddChild('Row');
|
||
443 | CellData(Row, Format('%s, %s', [LabelEM_ED.Caption, _('growing pig')]), 'String'); |
||
444 | if EditEMc_EDc.Text <> '' |
||
445 | then
|
||
446 | with DataModuleDeclaration do |
||
447 | CellData(Row, FloatToStrF(EMc / EDc * 100, ffFixed, 15, 1, USFormatSettings), 'Number') |
||
448 | else
|
||
449 | CellData(Row, '', 'String'); |
||
450 | CellData(Row, '%', 'String'); |
||
451 | Row := Table.AddChild('Row');
|
||
452 | CellData(Row, Format('%s, %s', [LabelEM_ED.Caption, _('adult pig')]), 'String'); |
||
453 | if EditEMt_EDt.Text <> '' |
||
454 | then
|
||
455 | with DataModuleDeclaration do |
||
456 | CellData(Row, FloatToStrF(EMt / EDt * 100, ffFixed, 15, 1, USFormatSettings), 'Number') |
||
457 | else
|
||
458 | CellData(Row, '', 'String'); |
||
459 | CellData(Row, '%', 'String'); |
||
460 | Row := Table.AddChild('Row');
|
||
461 | CellData(Row, Format('%s, %s', [LabelEN_EM.Caption, _('growing pig')]), 'String'); |
||
462 | if EditENc_EMc.Text <> '' |
||
463 | then
|
||
464 | with DataModuleDeclaration do |
||
465 | CellData(Row, FloatToStrF(ENc / EMc * 100, ffFixed, 15, 1, USFormatSettings), 'Number') |
||
466 | else
|
||
467 | CellData(Row, '', 'String'); |
||
468 | CellData(Row, '%', 'String'); |
||
469 | Row := Table.AddChild('Row');
|
||
470 | CellData(Row, Format('%s, %s', [LabelEN_EM.Caption, _('adult pig')]), 'String'); |
||
471 | if EditENt_EMt.Text <> '' |
||
472 | then
|
||
473 | with DataModuleDeclaration do |
||
474 | CellData(Row, FloatToStrF(ENt / EMt * 100, ffFixed, 15, 1, USFormatSettings), 'Number') |
||
475 | else
|
||
476 | CellData(Row, '', 'String'); |
||
477 | CellData(Row, '%', 'String'); |
||
478 | // Digestibilit? f?cale de l'azote
|
||
479 | Row := Table.AddChild('Row');
|
||
480 | CellData(Row, Format('%s, %s', [LabeldN.Caption, _('growing pig')]), 'String'); |
||
481 | if EditdNc.Text <> '' |
||
482 | then
|
||
483 | with DataModuleDeclaration do |
||
484 | CellData(Row, FloatToStrF(dNc, ffFixed, 15, 1, USFormatSettings), 'Number') |
||
485 | else
|
||
486 | CellData(Row, '', 'String'); |
||
487 | CellData(Row, '%', 'String'); |
||
488 | Row := Table.AddChild('Row');
|
||
489 | CellData(Row, Format('%s, %s', [LabeldN.Caption, _('adult pig')]), 'String'); |
||
490 | if EditdNt.Text <> '' |
||
491 | then
|
||
492 | with DataModuleDeclaration do |
||
493 | CellData(Row, FloatToStrF(dNt, ffFixed, 15, 1, USFormatSettings), 'Number') |
||
494 | else
|
||
495 | CellData(Row, '', 'String'); |
||
496 | CellData(Row, '%', 'String'); |
||
497 | XMLDoc.SaveToFile(SaveDialogExport.FileName); |
||
498 | XmlDoc.Active := False; |
||
499 | finally
|
||
500 | XMLDoc := nil;
|
||
501 | end;
|
||
502 | end;
|
||
503 | end;
|
||
504 | |||
505 | procedure TFormPredictionDetail.ActionHelpExecute(Sender: TObject);
|
||
506 | begin
|
||
507 | Application.HelpContext(HelpContext); |
||
508 | end;
|
||
509 | |||
510 | procedure TFormPredictionDetail.ActionPrintExecute(Sender: TObject);
|
||
511 | begin
|
||
512 | if RpDev.PrinterSetupDialog
|
||
513 | then
|
||
514 | begin
|
||
515 | RvSystemReport.DoNativeOutput := false; |
||
516 | RvSystemReport.DefaultDest := rdPrinter; |
||
517 | RvSystemReport.RenderObject := nil;
|
||
518 | RvSystemReport.OutputFileName := '';
|
||
519 | RvProjectReport.Open; |
||
520 | BuildReport; |
||
521 | RvProjectReport.Execute; |
||
522 | RvProjectReport.Close; |
||
523 | end;
|
||
524 | end;
|
||
525 | |||
526 | procedure TFormPredictionDetail.BuildReport;
|
||
527 | var
|
||
528 | i: Integer; |
||
529 | Page: TRavePage; |
||
530 | begin
|
||
531 | Page := RvProjectReport.ProjMan.FindRaveComponent('ReportPrediction.PagePrediction', nil) as TRavePage; |
||
532 | for i := 0 to Page.ComponentCount - 1 do |
||
533 | if Page.Components[i].ClassNameIs('TRaveText') |
||
534 | then // Traduire |
||
535 | begin
|
||
536 | if Screen.Fonts.IndexOf('Arial Unicode MS') <> -1 |
||
537 | then
|
||
538 | (Page.Components[i] as TRaveText).Font.Name := 'Arial Unicode MS'; |
||
539 | TranslateComponent(Page.Components[i]); |
||
540 | if (Page.Components[i] as TRaveText).Name = 'DataTextName' |
||
541 | then
|
||
542 | (Page.Components[i] as TRaveText).Text := EditName.Text;
|
||
543 | if (Page.Components[i] as TRaveText).Name = 'TextMS' |
||
544 | then
|
||
545 | with FormOptions do |
||
546 | (Page.Components[i] as TRaveText).Text := Format('%s (%s)', [(Page.Components[i] as TRaveText).Text, ComboBoxProximal.Items[Proximal]]); |
||
547 | if (Page.Components[i] as TRaveText).Name = 'TextUnitProximal' |
||
548 | then
|
||
549 | with FormOptions do |
||
550 | if Expression = 0 |
||
551 | then // sur frais |
||
552 | (Page.Components[i] as TRaveText).Text := Format('(%s)', [ComboBoxProximal.Items[Proximal]]) |
||
553 | else // sur mati?re s?che |
||
554 | (Page.Components[i] as TRaveText).Text := Format('(%s %s)', [ComboBoxProximal.Items[Proximal], _('DM')]); |
||
555 | if (Page.Components[i] as TRaveText).Name = 'TextUnitEnergyC' |
||
556 | then
|
||
557 | with FormOptions do |
||
558 | if Expression = 0 |
||
559 | then // sur frais |
||
560 | (Page.Components[i] as TRaveText).Text := Format('(%s)', [ComboBoxEnergy.Items[Energy]]) |
||
561 | else // sur mati?re s?che |
||
562 | (Page.Components[i] as TRaveText).Text := Format('(%s %s)', [ComboBoxEnergy.Items[Energy], _('DM')]); |
||
563 | if (Page.Components[i] as TRaveText).Name = 'TextUnitEnergyT' |
||
564 | then
|
||
565 | with FormOptions do |
||
566 | if Expression = 0 |
||
567 | then // sur frais |
||
568 | (Page.Components[i] as TRaveText).Text := Format('(%s)', [ComboBoxEnergy.Items[Energy]]) |
||
569 | else // sur mati?re s?che |
||
570 | (Page.Components[i] as TRaveText).Text := Format('(%s %s)', [ComboBoxEnergy.Items[Energy], _('DM')]); |
||
571 | if (Page.Components[i] as TRaveText).Name = 'TextUnitEnergyRatio' |
||
572 | then
|
||
573 | (Page.Components[i] as TRaveText).Text := '(%)'; |
||
574 | if (Page.Components[i] as TRaveText).Name = 'TextBonus' |
||
575 | then
|
||
576 | (Page.Components[i] as TRaveText).Text := Format('%s (%%)', [(Page.Components[i] as TRaveText).Text]); |
||
577 | if (Page.Components[i] as TRaveText).Name = 'TextdE' |
||
578 | then
|
||
579 | (Page.Components[i] as TRaveText).Text := Format('%s (%%)', [(Page.Components[i] as TRaveText).Text]); |
||
580 | if (Page.Components[i] as TRaveText).Name = 'TextME_DE' |
||
581 | then
|
||
582 | (Page.Components[i] as TRaveText).Text := Format('%s (%%)', [(Page.Components[i] as TRaveText).Text]); |
||
583 | if (Page.Components[i] as TRaveText).Name = 'TextNE_ME' |
||
584 | then
|
||
585 | (Page.Components[i] as TRaveText).Text := Format('%s (%%)', [(Page.Components[i] as TRaveText).Text]); |
||
586 | if (Page.Components[i] as TRaveText).Name = 'TextdN' |
||
587 | then
|
||
588 | (Page.Components[i] as TRaveText).Text := Format('%s (%%)', [(Page.Components[i] as TRaveText).Text]); |
||
589 | // Affichage des valeurs
|
||
590 | if (Page.Components[i] as TRaveText).Name = 'DataTextMS' |
||
591 | then
|
||
592 | (Page.Components[i] as TRaveText).Text := EditMS.Text;
|
||
593 | if (Page.Components[i] as TRaveText).Name = 'DataTextMM' |
||
594 | then
|
||
595 | (Page.Components[i] as TRaveText).Text := EditMM.Text;
|
||
596 | if (Page.Components[i] as TRaveText).Name = 'DataTextMAT' |
||
597 | then
|
||
598 | (Page.Components[i] as TRaveText).Text := EditMAT.Text;
|
||
599 | if (Page.Components[i] as TRaveText).Name = 'DataTextMG' |
||
600 | then
|
||
601 | (Page.Components[i] as TRaveText).Text := EditMG.Text;
|
||
602 | if (Page.Components[i] as TRaveText).Name = 'DataTextCB' |
||
603 | then
|
||
604 | (Page.Components[i] as TRaveText).Text := EditCB.Text;
|
||
605 | if (Page.Components[i] as TRaveText).Name = 'DataTextNDF' |
||
606 | then
|
||
607 | (Page.Components[i] as TRaveText).Text := EditNDF.Text;
|
||
608 | if (Page.Components[i] as TRaveText).Name = 'DataTextADF' |
||
609 | then
|
||
610 | (Page.Components[i] as TRaveText).Text := EditADF.Text;
|
||
611 | if (Page.Components[i] as TRaveText).Name = 'DataTextAmidon' |
||
612 | then
|
||
613 | (Page.Components[i] as TRaveText).Text := EditAmidon.Text;
|
||
614 | if (Page.Components[i] as TRaveText).Name = 'DataTextSucres' |
||
615 | then
|
||
616 | (Page.Components[i] as TRaveText).Text := EditSucres.Text;
|
||
617 | if (Page.Components[i] as TRaveText).Name = 'DataTextMOdv' |
||
618 | then
|
||
619 | (Page.Components[i] as TRaveText).Text := EditMOdv.Text;
|
||
620 | if (Page.Components[i] as TRaveText).Name = 'DataTextEBc' |
||
621 | then
|
||
622 | (Page.Components[i] as TRaveText).Text := EditEBc.Text;
|
||
623 | if (Page.Components[i] as TRaveText).Name = 'DataTextEBt' |
||
624 | then
|
||
625 | (Page.Components[i] as TRaveText).Text := EditEBt.Text;
|
||
626 | if (Page.Components[i] as TRaveText).Name = 'DataTextEBt_EBc' |
||
627 | then
|
||
628 | (Page.Components[i] as TRaveText).Text := EditEBt_EBc.Text;
|
||
629 | if (Page.Components[i] as TRaveText).Name = 'DataTextEDc' |
||
630 | then
|
||
631 | (Page.Components[i] as TRaveText).Text := EditEDc.Text;
|
||
632 | if (Page.Components[i] as TRaveText).Name = 'DataTextEDt' |
||
633 | then
|
||
634 | (Page.Components[i] as TRaveText).Text := EditEDt.Text;
|
||
635 | if (Page.Components[i] as TRaveText).Name = 'DataTextEDt_EDc' |
||
636 | then
|
||
637 | (Page.Components[i] as TRaveText).Text := EditEDt_EDc.Text;
|
||
638 | if (Page.Components[i] as TRaveText).Name = 'DataTextEMc' |
||
639 | then
|
||
640 | (Page.Components[i] as TRaveText).Text := EditEMc.Text;
|
||
641 | if (Page.Components[i] as TRaveText).Name = 'DataTextEMt' |
||
642 | then
|
||
643 | (Page.Components[i] as TRaveText).Text := EditEMt.Text;
|
||
644 | if (Page.Components[i] as TRaveText).Name = 'DataTextEMt_EMc' |
||
645 | then
|
||
646 | (Page.Components[i] as TRaveText).Text := EditEMt_EMc.Text;
|
||
647 | if (Page.Components[i] as TRaveText).Name = 'DataTextENc' |
||
648 | then
|
||
649 | (Page.Components[i] as TRaveText).Text := EditENc.Text;
|
||
650 | if (Page.Components[i] as TRaveText).Name = 'DataTextENt' |
||
651 | then
|
||
652 | (Page.Components[i] as TRaveText).Text := EditENt.Text;
|
||
653 | if (Page.Components[i] as TRaveText).Name = 'DataTextENt_ENc' |
||
654 | then
|
||
655 | (Page.Components[i] as TRaveText).Text := EditENt_ENc.Text;
|
||
656 | if (Page.Components[i] as TRaveText).Name = 'DataTextBonusC' |
||
657 | then
|
||
658 | (Page.Components[i] as TRaveText).Text := EditBonusC.Text;
|
||
659 | if (Page.Components[i] as TRaveText).Name = 'DataTextBonusT' |
||
660 | then
|
||
661 | (Page.Components[i] as TRaveText).Text := EditBonusT.Text;
|
||
662 | if (Page.Components[i] as TRaveText).Name = 'DataTextdEc' |
||
663 | then
|
||
664 | (Page.Components[i] as TRaveText).Text := EditdEc.Text;
|
||
665 | if (Page.Components[i] as TRaveText).Name = 'DataTextdEt' |
||
666 | then
|
||
667 | (Page.Components[i] as TRaveText).Text := EditdEt.Text;
|
||
668 | if (Page.Components[i] as TRaveText).Name = 'DataTextEMc_EDc' |
||
669 | then
|
||
670 | (Page.Components[i] as TRaveText).Text := EditEMc_EDc.Text;
|
||
671 | if (Page.Components[i] as TRaveText).Name = 'DataTextEMt_EDt' |
||
672 | then
|
||
673 | (Page.Components[i] as TRaveText).Text := EditEMt_EDt.Text;
|
||
674 | if (Page.Components[i] as TRaveText).Name = 'DataTextENc_EMc' |
||
675 | then
|
||
676 | (Page.Components[i] as TRaveText).Text := EditENc_EMc.Text;
|
||
677 | if (Page.Components[i] as TRaveText).Name = 'DataTextENt_EMt' |
||
678 | then
|
||
679 | (Page.Components[i] as TRaveText).Text := EditENt_EMt.Text;
|
||
680 | if (Page.Components[i] as TRaveText).Name = 'DataTextdNc' |
||
681 | then
|
||
682 | (Page.Components[i] as TRaveText).Text := EditdNc.Text;
|
||
683 | if (Page.Components[i] as TRaveText).Name = 'DataTextdNt' |
||
684 | then
|
||
685 | (Page.Components[i] as TRaveText).Text := EditdNt.Text;
|
||
686 | end;
|
||
687 | end;
|
||
688 | |||
689 | procedure TFormPredictionDetail.FormCreate(Sender: TObject);
|
||
690 | var
|
||
691 | ProximalUnit, EnergyUnit: String;
|
||
692 | begin
|
||
693 | if Screen.Fonts.IndexOf('Arial Unicode MS') <> -1 |
||
694 | then
|
||
695 | Font.Name := 'Arial Unicode MS';
|
||
696 | // PanelButtons.Font.Size := PanelButtons.Font.Size + 2;
|
||
697 | PanelButtons.Font.Style := [fsBold]; |
||
698 | LabelName.Font.Style := [fsBold]; |
||
699 | EditName.Font.Style := [fsBold]; |
||
700 | TranslateComponent(Self); |
||
701 | with FormOptions do |
||
702 | if Expression = 0 |
||
703 | then // sur frais |
||
704 | begin
|
||
705 | ProximalUnit := ComboBoxProximal.Items[Proximal]; |
||
706 | EnergyUnit := ComboBoxEnergy.Items[Energy]; |
||
707 | end
|
||
708 | else // sur mati?re s?che |
||
709 | begin
|
||
710 | ProximalUnit := Format('%s %s', [ComboBoxProximal.Items[Proximal], _('DM')]); |
||
711 | EnergyUnit := Format('%s %s', [ComboBoxEnergy.Items[Energy], _('DM')]); |
||
712 | end;
|
||
713 | with FormOptions do |
||
714 | LabelMS.Caption := Format('%s (%s)', [LabelMS.Caption, ComboBoxProximal.Items[Proximal]]);
|
||
715 | GroupBoxProximal.Caption := Format('%s (%s)', [GroupBoxProximal.Caption, ProximalUnit]);
|
||
716 | GroupBoxEnergy.Caption := Format('%s (%s)', [GroupBoxEnergy.Caption, EnergyUnit]);
|
||
717 | LabelRatio.Caption := Format('%s (%%)', [LabelRatio.Caption]);
|
||
718 | GroupBoxEnergyUtilization.Caption := Format('%s (%%)', [GroupBoxEnergyUtilization.Caption]);
|
||
719 | GroupBoxAzote.Caption := Format('%s (%%)', [GroupBoxAzote.Caption]);
|
||
720 | end;
|
||
721 | |||
722 | procedure TFormPredictionDetail.FormShow(Sender: TObject);
|
||
723 | var
|
||
724 | Nb: Integer; |
||
725 | EqCB, EqNDF, EqADF, NUri, EUri, Res, ResD, ECH4, dMO: Double; |
||
726 | CurrentFormatSettings: TFormatSettings; |
||
727 | begin
|
||
728 | GetLocaleFormatSettings(GetUserDefaultLCID, CurrentFormatSettings); |
||
729 | with DataModuleDeclaration do |
||
730 | begin
|
||
731 | EditName.Text := FormPredictionCreate.EditName.Text; |
||
732 | // Analyse proximale -> valeurs saisies
|
||
733 | RapMS := InputProximal(FormPredictionCreate.ValidateEditMS.AsFloat, 1, 0, FormPredictionCreate.ComboBoxMS.ItemIndex); |
||
734 | MS := OutputProximal(RapMS, 1, 1, FormOptions.Proximal); |
||
735 | EditMS.Text := FloatToStrF(MS, ffFixed, 15, FormOptions.ProximalDecimals, CurrentFormatSettings);
|
||
736 | if FormPredictionCreate.CheckBoxMM.Checked
|
||
737 | then
|
||
738 | begin
|
||
739 | MM := InputProximal(FormPredictionCreate.ValidateEditMM.AsFloat, RapMS, FormPredictionCreate.ComboBoxMM.ItemIndex div 2, FormPredictionCreate.ComboBoxMM.ItemIndex mod 2); |
||
740 | EditMM.Text := FloatToStrF(OutputProximal(MM, RapMS, FormOptions.Expression, FormOptions.Proximal), ffFixed, 15, FormOptions.ProximalDecimals, CurrentFormatSettings);
|
||
741 | end;
|
||
742 | if FormPredictionCreate.CheckBoxMAT.Checked
|
||
743 | then
|
||
744 | begin
|
||
745 | MAT := InputProximal(FormPredictionCreate.ValidateEditMAT.AsFloat, RapMS, FormPredictionCreate.ComboBoxMAT.ItemIndex div 2, FormPredictionCreate.ComboBoxMAT.ItemIndex mod 2); |
||
746 | EditMAT.Text := FloatToStrF(OutputProximal(MAT, RapMS, FormOptions.Expression, FormOptions.Proximal), ffFixed, 15, FormOptions.ProximalDecimals, CurrentFormatSettings);
|
||
747 | end;
|
||
748 | if FormPredictionCreate.CheckBoxMG.Checked
|
||
749 | then
|
||
750 | begin
|
||
751 | MG := InputProximal(FormPredictionCreate.ValidateEditMG.AsFloat, RapMS, FormPredictionCreate.ComboBoxMG.ItemIndex div 2, FormPredictionCreate.ComboBoxMG.ItemIndex mod 2); |
||
752 | EditMG.Text := FloatToStrF(OutputProximal(MG, RapMS, FormOptions.Expression, FormOptions.Proximal), ffFixed, 15, FormOptions.ProximalDecimals, CurrentFormatSettings);
|
||
753 | end;
|
||
754 | if FormPredictionCreate.CheckBoxCB.Checked
|
||
755 | then
|
||
756 | begin
|
||
757 | CB := InputProximal(FormPredictionCreate.ValidateEditCB.AsFloat, RapMS, FormPredictionCreate.ComboBoxFibre.ItemIndex div 2, FormPredictionCreate.ComboBoxFibre.ItemIndex mod 2); |
||
758 | EditCB.Text := FloatToStrF(OutputProximal(CB, RapMS, FormOptions.Expression, FormOptions.Proximal), ffFixed, 15, FormOptions.ProximalDecimals, CurrentFormatSettings);
|
||
759 | end;
|
||
760 | if FormPredictionCreate.CheckBoxNDF.Checked
|
||
761 | then
|
||
762 | begin
|
||
763 | NDF := InputProximal(FormPredictionCreate.ValidateEditNDF.AsFloat, RapMS, FormPredictionCreate.ComboBoxFibre.ItemIndex div 2, FormPredictionCreate.ComboBoxFibre.ItemIndex mod 2); |
||
764 | EditNDF.Text := FloatToStrF(OutputProximal(NDF, RapMS, FormOptions.Expression, FormOptions.Proximal), ffFixed, 15, FormOptions.ProximalDecimals, CurrentFormatSettings);
|
||
765 | end;
|
||
766 | if FormPredictionCreate.CheckBoxADF.Checked
|
||
767 | then
|
||
768 | begin
|
||
769 | ADF := InputProximal(FormPredictionCreate.ValidateEditADF.AsFloat, RapMS, FormPredictionCreate.ComboBoxFibre.ItemIndex div 2, FormPredictionCreate.ComboBoxFibre.ItemIndex mod 2); |
||
770 | EditADF.Text := FloatToStrF(OutputProximal(ADF, RapMS, FormOptions.Expression, FormOptions.Proximal), ffFixed, 15, FormOptions.ProximalDecimals, CurrentFormatSettings);
|
||
771 | end;
|
||
772 | if FormPredictionCreate.CheckBoxAmidon.Checked
|
||
773 | then
|
||
774 | begin
|
||
775 | Amidon := InputProximal(FormPredictionCreate.ValidateEditAmidon.AsFloat, RapMS, FormPredictionCreate.ComboBoxAmidon.ItemIndex div 2, FormPredictionCreate.ComboBoxAmidon.ItemIndex mod 2); |
||
776 | EditAmidon.Text := FloatToStrF(OutputProximal(Amidon, RapMS, FormOptions.Expression, FormOptions.Proximal), ffFixed, 15, FormOptions.ProximalDecimals, CurrentFormatSettings);
|
||
777 | end;
|
||
778 | if FormPredictionCreate.CheckBoxSucres.Checked
|
||
779 | then
|
||
780 | begin
|
||
781 | Sucres := InputProximal(FormPredictionCreate.ValidateEditSucres.AsFloat, RapMS, FormPredictionCreate.ComboBoxSucres.ItemIndex div 2, FormPredictionCreate.ComboBoxSucres.ItemIndex mod 2); |
||
782 | EditSucres.Text := FloatToStrF(OutputProximal(Sucres, RapMS, FormOptions.Expression, FormOptions.Proximal), ffFixed, 15, FormOptions.ProximalDecimals, CurrentFormatSettings);
|
||
783 | end;
|
||
784 | if FormPredictionCreate.CheckBoxdMOv.Checked
|
||
785 | then
|
||
786 | begin
|
||
787 | dMOv := FormPredictionCreate.ValidateEditdMOv.AsFloat / 100;
|
||
788 | if FormPredictionCreate.CheckBoxMM.Checked
|
||
789 | then // MOdv = dMOv * MO avec MO = 1 - MM |
||
790 | EditMOdv.Text := FloatToStrF(OutputProximal(dMOv * (1 - MM), RapMS, FormOptions.Expression, FormOptions.Proximal), ffFixed, 15, FormOptions.ProximalDecimals, CurrentFormatSettings); |
||
791 | end;
|
||
792 | // Energie
|
||
793 | if FormPredictionCreate.CheckBoxEB.Checked
|
||
794 | then // EB fournie par l'utilisateur |
||
795 | begin
|
||
796 | EB := InputEnergy(FormPredictionCreate.ValidateEditEB.AsFloat, RapMS, FormPredictionCreate.ComboBoxEB.ItemIndex div 2, FormPredictionCreate.ComboBoxEB.ItemIndex mod 2); |
||
797 | EditEBc.Text := FloatToStrF(OutputEnergy(EB, RapMS, FormOptions.Expression, FormOptions.Energy), ffFixed, 15, FormOptions.EnergyDecimals, CurrentFormatSettings);
|
||
798 | end
|
||
799 | else
|
||
800 | if FormPredictionCreate.CheckBoxMM.Checked and FormPredictionCreate.CheckBoxMAT.Checked and FormPredictionCreate.CheckBoxMG.Checked |
||
801 | then // EB calcul?e |
||
802 | begin
|
||
803 | if FormPredictionCreate.CheckBoxCB.Checked
|
||
804 | then
|
||
805 | if FormPredictionCreate.CheckBoxSucres.Checked
|
||
806 | then // Equation AVEC sucres |
||
807 | EqCB := 17.56 + 5.51 * MAT + 21.48 * MG - 17.74 * MM + 2.59 * CB - 1.14 * Sucres |
||
808 | else // Equation SANS sucres |
||
809 | EqCB := 17.57 + 5.35 * MAT + 21.68 * MG - 18.61 * MM + 2.84 * CB |
||
810 | else
|
||
811 | EqCB := 0;
|
||
812 | if FormPredictionCreate.CheckBoxNDF.Checked
|
||
813 | then
|
||
814 | if FormPredictionCreate.CheckBoxSucres.Checked
|
||
815 | then // Equation AVEC sucres |
||
816 | EqNDF := 17.41 + 5.79 * MAT + 21.63 * MG - 18.12 * MM + 1.48 * NDF - 0.72 * Sucres |
||
817 | else // Equation SANS sucres |
||
818 | EqNDF := 17.40 + 5.73 * MAT + 21.76 * MG - 18.73 * MM + 1.61 * NDF |
||
819 | else
|
||
820 | EqNDF := 0;
|
||
821 | if FormPredictionCreate.CheckBoxADF.Checked
|
||
822 | then
|
||
823 | if FormPredictionCreate.CheckBoxSucres.Checked
|
||
824 | then // Equation AVEC sucres |
||
825 | EqADF := 17.56 + 5.45 * MAT + 21.50 * MG - 17.69 * MM + 2.16 * ADF - 1.15 * Sucres |
||
826 | else // Equation SANS sucres |
||
827 | EqADF := 17.58 + 5.29 * MAT + 21.71 * MG - 18.58 * MM + 2.38 * ADF |
||
828 | else
|
||
829 | EqADF := 0;
|
||
830 | Nb := 0;
|
||
831 | if EqCB <> 0 then Inc(Nb); |
||
832 | if EqNDF <> 0 then Inc(Nb); |
||
833 | if EqADF <> 0 then Inc(Nb); |
||
834 | if Nb = 0 |
||
835 | then // Equations sans valeur de fibre |
||
836 | if FormPredictionCreate.CheckBoxAmidon.Checked
|
||
837 | then // Equation AVEC amidon |
||
838 | if FormPredictionCreate.CheckBoxSucres.Checked
|
||
839 | then // Equation AVEC sucres |
||
840 | EB := 18.88 + 4.24 * MAT + 20.25 * MG - 20.37 * MM - 1.42 * Amidon - 2.38 * Sucres |
||
841 | else // Equation SANS sucres |
||
842 | EB := 18.47 + 4.14 * MAT + 21.08 * MG - 19.64 * MM - 0.92 * Amidon |
||
843 | else // Equation SANS amidon |
||
844 | if FormPredictionCreate.CheckBoxSucres.Checked
|
||
845 | then // Equation AVEC sucres |
||
846 | EB := 17.61 + 5.05 * MAT + 21.53 * MG - 15.06 * MM - 1.48 * Sucres |
||
847 | else // Equation SANS sucres |
||
848 | EB := 17.64 + 4.78 * MAT + 21.80 * MG - 15.88 * MM |
||
849 | else // Moyenne des ?quations significatives |
||
850 | EB := (EqCB + EqNDF + EqADF) / Nb; |
||
851 | EditEBc.Text := FloatToStrF(OutputEnergy(EB, RapMS, FormOptions.Expression, FormOptions.Energy), ffFixed, 15, FormOptions.EnergyDecimals, CurrentFormatSettings);
|
||
852 | end;
|
||
853 | BonusC := FormPredictionCreate.SpinEditBonusC.Value; |
||
854 | EditBonusC.Text := FormPredictionCreate.SpinEditBonusC.Text; |
||
855 | if FormPredictionCreate.CheckBoxdMOv.Checked
|
||
856 | then // Equation AVEC dMOv |
||
857 | begin
|
||
858 | if FormPredictionCreate.CheckBoxCB.Checked
|
||
859 | then
|
||
860 | if FormPredictionCreate.CheckBoxMM.Checked
|
||
861 | then // Equation AVEC MM |
||
862 | EqCB := 35.5 + 64.0 * dMOv - 68.0 * CB - 68.0 * MM |
||
863 | else // Equation SANS MM |
||
864 | EqCB := 30.1 + 66.3 * dMOv - 77.0 * CB |
||
865 | else
|
||
866 | EqCB := 0;
|
||
867 | if FormPredictionCreate.CheckBoxADF.Checked
|
||
868 | then
|
||
869 | if FormPredictionCreate.CheckBoxMM.Checked
|
||
870 | then // Equation AVEC MM |
||
871 | EqADF := 41.0 + 58.5 * dMOv - 74.0 * ADF - 64.0 * MM |
||
872 | else // Equation SANS MM |
||
873 | EqADF := 36.2 + 60.2 * dMOv - 82.0 * ADF |
||
874 | else
|
||
875 | EqADF := 0;
|
||
876 | Nb := 0;
|
||
877 | if EqCB <> 0 then Inc(Nb); |
||
878 | if EqADF <> 0 then Inc(Nb); |
||
879 | if Nb = 0 |
||
880 | then // Equation sans valeur de fibre (dMOv seule) |
||
881 | dEc := 97.6 * dMOv |
||
882 | else // Moyenne des ?quations significatives |
||
883 | dEc := (EqCB + EqADF) / Nb; |
||
884 | EditdEc.Text := FloatToStrF(dEc + BonusC, ffFixed, 15, 1, CurrentFormatSettings); |
||
885 | end
|
||
886 | else // Equation SANS dMOv |
||
887 | begin
|
||
888 | if FormPredictionCreate.CheckBoxCB.Checked
|
||
889 | then
|
||
890 | if FormPredictionCreate.CheckBoxMM.Checked
|
||
891 | then // Equation AVEC MM |
||
892 | EqCB := 98.0 - 160.0 * MM - 126.0 * CB |
||
893 | else // Equation SANS MM |
||
894 | EqCB := 90.1 - 156.6 * CB |
||
895 | else
|
||
896 | EqCB := 0;
|
||
897 | if FormPredictionCreate.CheckBoxNDF.Checked
|
||
898 | then
|
||
899 | if FormPredictionCreate.CheckBoxMM.Checked
|
||
900 | then // Equation AVEC MM |
||
901 | EqNDF := 102.6 - 106.1 * MM - 79.5 * NDF |
||
902 | else // Equation SANS MM |
||
903 | EqNDF := 98.3 - 90.1 * NDF |
||
904 | else
|
||
905 | EqNDF := 0;
|
||
906 | if FormPredictionCreate.CheckBoxADF.Checked
|
||
907 | then
|
||
908 | if FormPredictionCreate.CheckBoxMM.Checked
|
||
909 | then // Equation AVEC MM |
||
910 | EqADF := 97.9 - 146.2 * MM - 117.5 * ADF |
||
911 | else // Equation SANS MM |
||
912 | EqADF := 90.8 - 142.7 * ADF |
||
913 | else
|
||
914 | EqADF := 0;
|
||
915 | Nb := 0;
|
||
916 | if EqCB <> 0 then Inc(Nb); |
||
917 | if EqNDF <> 0 then Inc(Nb); |
||
918 | if EqADF <> 0 then Inc(Nb); |
||
919 | if Nb > 0 |
||
920 | then // Moyenne des ?quations significatives |
||
921 | begin
|
||
922 | dEc := (EqCB + EqNDF + EqADF) / Nb; |
||
923 | EditdEc.Text := FloatToStrF(dEc + BonusC, ffFixed, 15, 1, CurrentFormatSettings); |
||
924 | end;
|
||
925 | end;
|
||
926 | if (EditEBc.Text <> '') and (EditdEc.Text <> '') |
||
927 | then
|
||
928 | begin
|
||
929 | EDc := EB * (dEc + BonusC) / 100;
|
||
930 | EditEDc.Text := FloatToStrF(OutputEnergy(EDc, RapMS, FormOptions.Expression, FormOptions.Energy), ffFixed, 15, FormOptions.EnergyDecimals, CurrentFormatSettings);
|
||
931 | end;
|
||
932 | if (EditEDc.Text <> '') and FormPredictionCreate.CheckBoxMM.Checked and FormPredictionCreate.CheckBoxMAT.Checked and FormPredictionCreate.CheckBoxMG.Checked and FormPredictionCreate.CheckBoxAmidon.Checked |
||
933 | then
|
||
934 | begin
|
||
935 | NUri := 0.4 * MAT / 6.25; |
||
936 | EUri := CALORIE * (0.046 + 7.4 * NUri); |
||
937 | if FormPredictionCreate.CheckBoxSucres.Checked
|
||
938 | then // Equation AVEC sucres |
||
939 | Res := 1 - MM - MAT - MG - Amidon - Sucres
|
||
940 | else // Equation SANS sucres (par d?faut, on estime les sucres ? 2 % MS) |
||
941 | Res := 1 - MM - MAT - MG - Amidon - 0.02; |
||
942 | ResD := 0.5 * Res;
|
||
943 | ECH4 := CALORIE * 0.16 * ResD;
|
||
944 | EMc := EDc - EUri - ECH4; |
||
945 | EditEMc.Text := FloatToStrF(OutputEnergy(EMc, RapMS, FormOptions.Expression, FormOptions.Energy), ffFixed, 15, FormOptions.EnergyDecimals, CurrentFormatSettings);
|
||
946 | if EDc <> 0 |
||
947 | then
|
||
948 | EditEMc_EDc.Text := FloatToStrF(EMc / EDc * 100, ffFixed, 15, 1, CurrentFormatSettings); |
||
949 | end;
|
||
950 | if (EditEDc.Text <> '') and FormPredictionCreate.CheckBoxMAT.Checked and FormPredictionCreate.CheckBoxMG.Checked and FormPredictionCreate.CheckBoxAmidon.Checked |
||
951 | then
|
||
952 | begin
|
||
953 | if FormPredictionCreate.CheckBoxCB.Checked
|
||
954 | then
|
||
955 | EqCB := 0.703 * EDc - 4.04 * MAT + 6.62 * MG + 1.97 * Amidon - 4.09 * CB |
||
956 | else
|
||
957 | EqCB := 0;
|
||
958 | if FormPredictionCreate.CheckBoxNDF.Checked
|
||
959 | then
|
||
960 | EqNDF := 0.703 * EDc - 4.10 * MAT + 6.64 * MG + 1.97 * Amidon - 1.34 * NDF |
||
961 | else
|
||
962 | EqNDF := 0;
|
||
963 | if FormPredictionCreate.CheckBoxADF.Checked
|
||
964 | then
|
||
965 | EqADF := 0.700 * EDc - 3.82 * MAT + 6.74 * MG + 2.02 * Amidon - 3.65 * ADF |
||
966 | else
|
||
967 | EqADF := 0;
|
||
968 | Nb := 0;
|
||
969 | if EqCB <> 0 then Inc(Nb); |
||
970 | if EqNDF <> 0 then Inc(Nb); |
||
971 | if EqADF <> 0 then Inc(Nb); |
||
972 | if Nb > 0 |
||
973 | then // Moyenne des ?quations significatives |
||
974 | begin
|
||
975 | ENc := (EqCB + EqNDF + EqADF) / Nb; |
||
976 | EditENc.Text := FloatToStrF(OutputEnergy(ENc, RapMS, FormOptions.Expression, FormOptions.Energy), ffFixed, 15, FormOptions.EnergyDecimals, CurrentFormatSettings);
|
||
977 | if EMc <> 0 |
||
978 | then
|
||
979 | EditENc_EMc.Text := FloatToStrF(ENc / EMc * 100, ffFixed, 15, 1, CurrentFormatSettings); |
||
980 | end;
|
||
981 | end;
|
||
982 | EditEBt.Text := EditEBc.Text; |
||
983 | BonusT := FormPredictionCreate.SpinEditBonusT.Value; |
||
984 | EditBonusT.Text := FormPredictionCreate.SpinEditBonusT.Text; |
||
985 | if (EditEDc.Text <> '') and FormPredictionCreate.CheckBoxMM.Checked and FormPredictionCreate.CheckBoxMAT.Checked |
||
986 | then
|
||
987 | begin
|
||
988 | dMO := (7.45 + 0.949 * dEc - 4.0 * MAT) / 100; |
||
989 | EDt := EB * dEc / 100 + CALORIE * (1 - MM) * (1 - dMO); |
||
990 | if (EditEBt.Text <> '') and (EB <> 0) |
||
991 | then
|
||
992 | begin
|
||
993 | dEt := EDt / EB * 100;
|
||
994 | EditdEt.Text := FloatToStrF(dEt + BonusT, ffFixed, 15, 1, CurrentFormatSettings); |
||
995 | // Recalculer EDt pour prendre en compte le bonus
|
||
996 | EDt := EB * (dEt + BonusT) / 100;
|
||
997 | EditEDt.Text := FloatToStrF(OutputEnergy(EDt, RapMS, FormOptions.Expression, FormOptions.Energy), ffFixed, 15, FormOptions.EnergyDecimals, CurrentFormatSettings);
|
||
998 | end;
|
||
999 | end;
|
||
1000 | if (EditEDt.Text <> '') and FormPredictionCreate.CheckBoxMM.Checked and FormPredictionCreate.CheckBoxMAT.Checked and FormPredictionCreate.CheckBoxMG.Checked and FormPredictionCreate.CheckBoxAmidon.Checked |
||
1001 | then
|
||
1002 | begin
|
||
1003 | NUri := 0.4 * MAT / 6.25; |
||
1004 | EUri := CALORIE * (0.052 + 7.4 * NUri); |
||
1005 | if FormPredictionCreate.CheckBoxSucres.Checked
|
||
1006 | then // Equation AVEC sucres |
||
1007 | Res := 1 - MM - MAT - MG - Amidon - Sucres
|
||
1008 | else // Equation SANS sucres (par d?faut, on estime les sucres ? 2 % MS) |
||
1009 | Res := 1 - MM - MAT - MG - Amidon - 0.02; |
||
1010 | ResD := 0.6 * Res;
|
||
1011 | ECH4 := CALORIE * 0.32 * ResD;
|
||
1012 | EMt := EDt - EUri - ECH4; |
||
1013 | EditEMt.Text := FloatToStrF(OutputEnergy(EMt, RapMS, FormOptions.Expression, FormOptions.Energy), ffFixed, 15, FormOptions.EnergyDecimals, CurrentFormatSettings);
|
||
1014 | if EDt <> 0 |
||
1015 | then
|
||
1016 | EditEMt_EDt.Text := FloatToStrF(EMt / EDt * 100, ffFixed, 15, 1, CurrentFormatSettings); |
||
1017 | end;
|
||
1018 | if (EditEDt.Text <> '') and FormPredictionCreate.CheckBoxMAT.Checked and FormPredictionCreate.CheckBoxMG.Checked and FormPredictionCreate.CheckBoxAmidon.Checked |
||
1019 | then
|
||
1020 | begin
|
||
1021 | if FormPredictionCreate.CheckBoxCB.Checked
|
||
1022 | then
|
||
1023 | EqCB := 0.703 * EDt - 4.04 * MAT + 6.62 * MG + 1.97 * Amidon - 4.09 * CB |
||
1024 | else
|
||
1025 | EqCB := 0;
|
||
1026 | if FormPredictionCreate.CheckBoxNDF.Checked
|
||
1027 | then
|
||
1028 | EqNDF := 0.703 * EDt - 4.10 * MAT + 6.64 * MG + 1.97 * Amidon - 1.34 * NDF |
||
1029 | else
|
||
1030 | EqNDF := 0;
|
||
1031 | if FormPredictionCreate.CheckBoxADF.Checked
|
||
1032 | then
|
||
1033 | EqADF := 0.700 * EDt - 3.82 * MAT + 6.74 * MG + 2.02 * Amidon - 3.65 * ADF |
||
1034 | else
|
||
1035 | EqADF := 0;
|
||
1036 | Nb := 0;
|
||
1037 | if EqCB <> 0 then Inc(Nb); |
||
1038 | if EqNDF <> 0 then Inc(Nb); |
||
1039 | if EqADF <> 0 then Inc(Nb); |
||
1040 | if Nb > 0 |
||
1041 | then // Moyenne des ?quations significatives |
||
1042 | begin
|
||
1043 | ENt := (EqCB + EqNDF + EqADF) / Nb; |
||
1044 | EditENt.Text := FloatToStrF(OutputEnergy(ENt, RapMS, FormOptions.Expression, FormOptions.Energy), ffFixed, 15, FormOptions.EnergyDecimals, CurrentFormatSettings);
|
||
1045 | if EMt <> 0 |
||
1046 | then
|
||
1047 | EditENt_EMt.Text := FloatToStrF(ENt / EMt * 100, ffFixed, 15, 1, CurrentFormatSettings); |
||
1048 | end;
|
||
1049 | end;
|
||
1050 | if EditEBc.Text <> '' |
||
1051 | then
|
||
1052 | EditEBt_EBc.Text := FloatToStrF(100, ffFixed, 15, 1, CurrentFormatSettings); |
||
1053 | if (EditEDt.Text <> '') and (EditEDc.Text <> '') and (EDc <> 0) |
||
1054 | then
|
||
1055 | EditEDt_EDc.Text := FloatToStrF(EDt / EDc * 100, ffFixed, 15, 1, CurrentFormatSettings); |
||
1056 | if (EditEMt.Text <> '') and (EditEMc.Text <> '') and (EMc <> 0) |
||
1057 | then
|
||
1058 | EditEMt_EMc.Text := FloatToStrF(EMt / EMc * 100, ffFixed, 15, 1, CurrentFormatSettings); |
||
1059 | if (EditENt.Text <> '') and (EditENc.Text <> '') and (ENc <> 0) |
||
1060 | then
|
||
1061 | EditENt_ENc.Text := FloatToStrF(ENt / ENc * 100, ffFixed, 15, 1, CurrentFormatSettings); |
||
1062 | // Digestibilit? f?cale de l'azote
|
||
1063 | if FormPredictionCreate.CheckBoxMAT.Checked
|
||
1064 | then
|
||
1065 | begin
|
||
1066 | if FormPredictionCreate.CheckBoxCB.Checked
|
||
1067 | then
|
||
1068 | EqCB := 76.8 + 69.0 * MAT - 122.0 * CB |
||
1069 | else
|
||
1070 | EqCB := 0;
|
||
1071 | if FormPredictionCreate.CheckBoxNDF.Checked
|
||
1072 | then
|
||
1073 | EqNDF := 81.3 + 79.0 * MAT - 69.0 * NDF |
||
1074 | else
|
||
1075 | EqNDF := 0;
|
||
1076 | if FormPredictionCreate.CheckBoxADF.Checked
|
||
1077 | then
|
||
1078 | EqADF := 77.4 + 70.0 * MAT - 116.0 * ADF |
||
1079 | else
|
||
1080 | EqADF := 0;
|
||
1081 | Nb := 0;
|
||
1082 | if EqCB <> 0 then Inc(Nb); |
||
1083 | if EqNDF <> 0 then Inc(Nb); |
||
1084 | if EqADF <> 0 then Inc(Nb); |
||
1085 | if Nb > 0 |
||
1086 | then // Moyenne des ?quations significatives |
||
1087 | begin
|
||
1088 | dNc := (EqCB + EqNDF + EqADF) / Nb; |
||
1089 | EditdNc.Text := FloatToStrF(dNc, ffFixed, 15, 1, CurrentFormatSettings); |
||
1090 | end;
|
||
1091 | if FormPredictionCreate.CheckBoxCB.Checked
|
||
1092 | then
|
||
1093 | EqCB := 77.9 + 77.0 * MAT - 87.0 * CB |
||
1094 | else
|
||
1095 | EqCB := 0;
|
||
1096 | if FormPredictionCreate.CheckBoxNDF.Checked
|
||
1097 | then
|
||
1098 | EqNDF := 79.9 + 86.0 * MAT - 44.0 * NDF |
||
1099 | else
|
||
1100 | EqNDF := 0;
|
||
1101 | if FormPredictionCreate.CheckBoxADF.Checked
|
||
1102 | then
|
||
1103 | EqADF := 78.3 + 78.0 * MAT - 83.0 * ADF |
||
1104 | else
|
||
1105 | EqADF := 0;
|
||
1106 | Nb := 0;
|
||
1107 | if EqCB <> 0 then Inc(Nb); |
||
1108 | if EqNDF <> 0 then Inc(Nb); |
||
1109 | if EqADF <> 0 then Inc(Nb); |
||
1110 | if Nb > 0 |
||
1111 | then // Moyenne des ?quations significatives |
||
1112 | begin
|
||
1113 | dNt := (EqCB + EqNDF + EqADF) / Nb; |
||
1114 | EditdNt.Text := FloatToStrF(dNt, ffFixed, 15, 1, CurrentFormatSettings); |
||
1115 | end;
|
||
1116 | end;
|
||
1117 | end;
|
||
1118 | end;
|
||
1119 | |||
1120 | end. |