root / UVariables.pas @ 5
Historique | Voir | Annoter | Télécharger (21,47 ko)
1 |
unit UVariables;
|
---|---|
2 |
|
3 |
interface
|
4 |
|
5 |
uses
|
6 |
Classes, SysUtils, Graphics, Registry, IniFiles; |
7 |
|
8 |
const
|
9 |
//URL = 'http://w3.rennes.inra.fr/inraporc/';
|
10 |
URL_HTTPS = 'https://inraporc.inra.fr/inraporc/';
|
11 |
clPink = TColor($FF80FF);
|
12 |
MILLI = 1E-03;
|
13 |
MICRO = 1E-06;
|
14 |
NANO = 1E-09;
|
15 |
PICO = 1E-12;
|
16 |
INFINI = 1E99;
|
17 |
MAX_MP = 50;
|
18 |
NB_CYCLES = 8;
|
19 |
NB_COL_TRUIE = 78;
|
20 |
MAX_LIG_TRUIE = 1500;
|
21 |
NB_COL_PORC = 113;
|
22 |
MAX_LIG_PORC = 1000;
|
23 |
MAX_RULE = 10;
|
24 |
DefaultCoefNR: array[1..NB_CYCLES] of double = (1.11, 1.11, 1.03, 0.77, 0.60, |
25 |
0.41, 0.38, 0.31); |
26 |
// Valeurs et coeficients ?nergetiques
|
27 |
// MAT, Lip, Amidon, Sucres, CB, Residu
|
28 |
// EB, ED, EM, EM/ED, EN/EM, EN
|
29 |
ValEnergie: array[1..6, 1..6] of double = ( |
30 |
(22.64, 23.31, 20.34, 0, 0, 12.08), |
31 |
(38.76, 39.00, 39.00, 1, 35.01 / 39.00, 35.01), |
32 |
(17.54, 17.45, 17.45, 1, 14.32 / 17.45, 14.32), |
33 |
(16.71, 16.62, 16.62, 1, 11.94 / 16.62, 11.94), |
34 |
(18.58, 16.61, 15.51, 15.51 / 16.61, 8.64 / 15.51, 8.64), |
35 |
(18.58, 16.61, 15.51, 15.51 / 16.61, 8.64 / 15.51, 8.64)); |
36 |
// Coefficients li?s au poids de carcasse
|
37 |
aPVV = 0.8901791;
|
38 |
bPVV = 1.0142019;
|
39 |
aTPQ = 0.20693514;
|
40 |
bTPQ = 0.77847131;
|
41 |
TeteTPQ = 0.76138234;
|
42 |
PiedsTPQ = 0.22435546;
|
43 |
QueueTPQ = 1 - TeteTPQ - PiedsTPQ;
|
44 |
aLangue = 0.005;
|
45 |
aHampe = 0.0026859;
|
46 |
bHampe = 1.06955354;
|
47 |
aPanne = 0.00056132;
|
48 |
bPanne = 1.68632852;
|
49 |
bCarcasse = 1.058788;
|
50 |
// Coefficient pour passer du poids vif au poids vif vide
|
51 |
PV2PVV = 0.95;
|
52 |
// Coefficient pour passer du poids vif vide au poids de prot?ines
|
53 |
// PVV2Prot = 0.16 ;
|
54 |
// Coefficient pour passer du poids vif au poids de prot?ines
|
55 |
// PV2Prot = PV2PVV * PVV2Prot ;
|
56 |
// PORC CROISSANCE
|
57 |
Pallom = 8.7845;
|
58 |
Lallom = 1.2566;
|
59 |
Ballom = 0.94406;
|
60 |
kProtJaap = 0.52;
|
61 |
GEProtJaap = 23.8; |
62 |
varUrinEloss = 31.1; |
63 |
NEact60h = 150 / 2.9; |
64 |
NEPD = 0.484;
|
65 |
FHPint = 436.47; |
66 |
FHPpente = 0.1298 / 0.74; |
67 |
kBR = 0.616 * 1.15; |
68 |
// Caract?ristique endog?ne AA pour calcul CUD apparent
|
69 |
AAendogene: array[0..12] of double = (8.5167, 0.3133, 0.0867, 0.1400, 0.1167, |
70 |
0.3300, 0.2733, 0.2233, 0.4267, 0.2567, 0.3567, 0.1300, 0.2800); |
71 |
// Besoin en AA pour l'entretien (turnover + peau)
|
72 |
AAm75: array[0..12] of double = (0.3611 + 0.1044, 0.0239 + 0.0045, |
73 |
0.0070 + 0.0010, 0.0047 + 0.0047, 0.0035 + 0.0009, 0.0138 + 0.0033, |
74 |
0.0137 + 0.0030, 0.0090 + 0.0019, 0.0271 + 0.0053, 0.0124 + 0.0025, |
75 |
0.0164 + 0.0038, 0.0102 + 0.0013, 0.000 + 0.000); |
76 |
// Rendement d'utilisation des AA
|
77 |
kAA: array[0..12] of double = (0.85, 0.72, 0.64, 0.37, 0.57, 0.61, 0.82, |
78 |
0.67, 0.76, 0.67, 0.71, 0.93, 1.54); |
79 |
// Composition des prot?ines corporelles
|
80 |
AAbody: array[0..12] of double = (1, 0.0696, 0.0188, 0.0103, 0.0095, 0.0370, |
81 |
0.0378, 0.0286, 0.0717, 0.0346, 0.0467, 0.0279, 0.0626); |
82 |
// TRUIE REPRODUCTRICE
|
83 |
DureeGest = 114;
|
84 |
EEGest = 0.440; // Entretien gestation (MJ/kg^0.75) |
85 |
EELact = 0.440; // Entretien lactation (MJ/kg^0.75) |
86 |
TCIInd = 20; // Temp?rature critique individuel (?C) |
87 |
TCICol = 15; // Temp?rature critique collectif (?C) |
88 |
EThInd = 16.5; // Thermor?gulation individuel (kJ/kg^0.75/?C) |
89 |
EThCol = 9.0; // Thermor?gulation collectif (kJ/kg^0.75/?C) |
90 |
KU = 0.5; // Efficacit? ?nergie ut?rus |
91 |
KProt = 0.6; // Efficacit? ?nergie prot?ines |
92 |
KLip = 0.8; // Efficacit? ?nergie lipides |
93 |
KGest = 0.77; // Efficacit? moyenne gestation |
94 |
KL = 0.72; // Efficacit? ?nergie lait |
95 |
KResL = 0.87; // Efficacit? ?nergie r?serves lait |
96 |
KResGest = 0.9; // Efficacit? ?nergie r?serves gestation |
97 |
KLysGest = 0.68; // Efficacit? lysine gestation |
98 |
KLysLact = 0.77; // Efficacit? lysine lactation |
99 |
LysEnt = 0.036; // Lysine entretien (g/kg^0.75) |
100 |
ECU = 5.43; // Energie contenus ut?rins (MJ/(kg porcelets)) |
101 |
APN = -0.333 * 13.66 - 45.94 * 0.178; |
102 |
BPN = -0.333 * 0.221 - 1.331 * 0.178; |
103 |
// lys, met, cys, trp, thr, phe, tyr, leu, ile, val, hst, arg
|
104 |
ProtIdGest: array[1..12] of double = |
105 |
(100, 28, 37, 20, 72, 60, 40, 100, 65, 75, 30, 0); |
106 |
ProtIdLact: array[1..12] of double = |
107 |
(100, 30, 30, 19, 66, 60, 55, 105, 60, 85, 40, 67); |
108 |
ProtIdEnt: array[1..12] of double = |
109 |
(100, 25, 114, 31, 147, 50, 53, 64, 44, 55, 0, 0); |
110 |
ProtIdRet: array[1..12] of double = |
111 |
(100, 24.9, 22.5, 15, 58, 60.7, 36.1, 102.1, 50.3, 71.6, 35.4, 103.7); |
112 |
ProtIdLait: array[1..12] of double = |
113 |
(100, 26, 21, 17, 59, 54, 58, 116, 53, 73, 43, 66); |
114 |
// Param?tres c et d de la fonction Gamma
|
115 |
cGammaFrais = 0.075;
|
116 |
cGammaMS = 0.066;
|
117 |
cGammaED = 1.04;
|
118 |
cGammaEM = 1.00;
|
119 |
cGammaEN = 0.75;
|
120 |
dGamma = 0.60;
|
121 |
|
122 |
type
|
123 |
// Composition chimique
|
124 |
CompositionChimique = record
|
125 |
// Composition ?l?mentaire
|
126 |
MS, MM, MO, Lip, MAT, Amidon, Sucres, |
127 |
// CUD Truie / Croissance
|
128 |
dMO_T, dMO_C, dLip_T, dLip_C, dMAT_T, dMAT_C, |
129 |
// Energie
|
130 |
EB, ED_T, ED_C, EM_T, EM_C, EN_T, EN_C, |
131 |
// Min?raux
|
132 |
Ca, P, Na, K, Cl, Mg, Cu, Zn, Fe, Mn, S, Se, Co, Mb, I, |
133 |
Phytase, ActPhytE, ActPhytM, PdigG, PdigF, |
134 |
// Acides gras
|
135 |
C6C8C10, C12_0, C14_0, C16_0, C16_1, C18_0, C18_1, C18_2, C18_3, C18_4, |
136 |
C20_0, C20_1, C20_4, C20_5, C22_0, C22_1, C22_5, C22_6, C24_0, |
137 |
AGsLip, |
138 |
// Fibres
|
139 |
CB, dCB_T, dCB_C, Residu, dResidu_T, dResidu_C, |
140 |
NDF, ADF, ADL, Parois: double; |
141 |
end;
|
142 |
// Composition en mati?res premi?res
|
143 |
CompositionMatiere = record
|
144 |
NbMat: integer; |
145 |
NumMat: array[0..MAX_MP] of integer; |
146 |
Qte, MS: array[0..MAX_MP] of double; |
147 |
end;
|
148 |
// Mati?re premi?re
|
149 |
RecMatiere = record
|
150 |
Num: integer; |
151 |
Nom: string[35]; |
152 |
Memo: string[255]; // Commentaires |
153 |
Typ: integer; // 0=NonRenseign?, ..., 9=NonR?f?renc?
|
154 |
CC: CompositionChimique; |
155 |
AAtotal, CUDAA: array[0..12] of double; |
156 |
end;
|
157 |
PRecMatiere = ^RecMatiere; |
158 |
// Aliment
|
159 |
RecAliment = record
|
160 |
Num: integer; |
161 |
Nom: string[35]; |
162 |
Memo: string[255]; // Commentaires |
163 |
Typ: integer; // 0=NonRenseign?, 1=PorcCroissance, 2=Truie
|
164 |
Presentation: integer; // 0=Granul?s, 1=Farine
|
165 |
Prix: double; |
166 |
MP: CompositionMatiere; |
167 |
CC: CompositionChimique; |
168 |
AAtotal, CUDAA: array[0..12] of double; |
169 |
end;
|
170 |
PRecAliment = ^RecAliment; |
171 |
// Import / export
|
172 |
RecCSV = record
|
173 |
Nom: string;
|
174 |
Memo: string[255]; // Commentaires |
175 |
Typ: integer; // <10=Mati?re premi?re (Type), >9=Aliment (Type, Pr?sentation)
|
176 |
CC: CompositionChimique; |
177 |
AAtotal, CUDAA: array[0..12] of double; |
178 |
end;
|
179 |
PRecCSV = ^RecCSV; |
180 |
// S?quence alimentaire truie reproductrice
|
181 |
RecRuleSeqAliT = record
|
182 |
ModeFin: integer; // -1=Fin, 0=Dur?e
|
183 |
ValFin: integer; |
184 |
NumAli1, NumAli2: integer; |
185 |
PctAli1Init, PctAli1Fin: integer; |
186 |
end;
|
187 |
|
188 |
RecSeqAliT = record
|
189 |
Num: integer; |
190 |
Nom: string[25]; |
191 |
Memo: string[255]; // Commentaires |
192 |
NbRuleGest: integer; |
193 |
RuleGest: array[1..MAX_RULE] of RecRuleSeqAliT; |
194 |
NbRuleLact: integer; |
195 |
RuleLact: array[1..MAX_RULE] of RecRuleSeqAliT; |
196 |
NbRuleISSF: integer; |
197 |
RuleISSF: array[1..MAX_RULE] of RecRuleSeqAliT; |
198 |
end;
|
199 |
PRecSeqAliT = ^RecSeqAliT; |
200 |
// Plan de rationnement truie reproductrice
|
201 |
RecRuleRationT = record
|
202 |
ModeFin: integer; // -1=Fin, 0=Dur?e
|
203 |
ValFin: integer; |
204 |
Equation: integer; // 0=Constant, 1=Lin?aire, 2=Curvilin?aire 3=Lin?aire-plateau
|
205 |
a, b, c: double; |
206 |
d: integer; |
207 |
end;
|
208 |
|
209 |
RecRationT = record
|
210 |
Num: integer; |
211 |
Nom: string[25]; |
212 |
Memo: string[255]; // Commentaires |
213 |
NbRuleGest: integer; |
214 |
RuleGest: array[1..MAX_RULE] of RecRuleRationT; |
215 |
UniteGest: integer; // 0=Quantit?, 1=ED, 2=EM, 3=EN, 4=MS
|
216 |
NbRuleLact: integer; |
217 |
RuleLact: array[1..MAX_RULE] of RecRuleRationT; |
218 |
UniteLact: integer; // 0=Quantit?, 1=ED, 2=EM, 3=EN, 4=MS
|
219 |
NbRuleISSF: integer; |
220 |
RuleISSF: array[1..MAX_RULE] of RecRuleRationT; |
221 |
UniteISSF: integer; // 0=Quantit?, 1=ED, 2=EM, 3=EN, 4=MS
|
222 |
end;
|
223 |
PRecRationT = ^RecRationT; |
224 |
TabCycle = array[1..NB_CYCLES] of integer; |
225 |
// Logement truie reproductrice
|
226 |
RecRuleLogeT = record
|
227 |
ModeFin: integer; // -1=Fin, 0=Dur?e
|
228 |
ValFin: integer; |
229 |
Typ, Sol, Temp, Act: integer; |
230 |
end;
|
231 |
|
232 |
RecLogeT = record
|
233 |
Num: integer; |
234 |
Nom: string[25]; |
235 |
Memo: string[255]; // Commentaires |
236 |
NbRuleGest: integer; |
237 |
RuleGest: array[1..MAX_RULE] of RecRuleLogeT; |
238 |
NbRuleLact: integer; |
239 |
RuleLact: array[1..MAX_RULE] of RecRuleLogeT; |
240 |
NbRuleISSF: integer; |
241 |
RuleISSF: array[1..MAX_RULE] of RecRuleLogeT; |
242 |
end;
|
243 |
PRecLogeT = ^RecLogeT; |
244 |
// Performances truies (Truie)
|
245 |
RecTruies = record
|
246 |
Nombre: integer; |
247 |
AgeSail: integer; |
248 |
PdsSail, P2Sail: double; |
249 |
PdsAvMB, PdsApMB, P2MB: double; |
250 |
end;
|
251 |
// Performances truies (Porcelets)
|
252 |
RecPorcelets = record
|
253 |
NesTotaux, NesVivants, Sevres: double; |
254 |
PdsNais, PdsSev: double; |
255 |
end;
|
256 |
// Profil truie reproductrice
|
257 |
RecProfilT = record
|
258 |
Num: integer; |
259 |
Nom: string[25]; |
260 |
Memo: string[255]; // Commentaires |
261 |
Truies: array[1..NB_CYCLES] of RecTruies; |
262 |
Porcelets: array[1..NB_CYCLES] of RecPorcelets; |
263 |
SeqAli: integer; |
264 |
Unite: integer; // 0=Quantit?, 1=ED, 2=EM, 3=EN, 4=MS
|
265 |
Gest, Lact: array[1..NB_CYCLES] of double; |
266 |
Loge: integer; |
267 |
DureeLact: integer; |
268 |
CoefEntretienGest, CoefEntretienLact, RatioLipProt: double; |
269 |
CoefNR: array[1..NB_CYCLES] of double; |
270 |
// GTTT (aide ? la saisie)
|
271 |
NbTruies, AgeMB1: integer; |
272 |
ISO: double; |
273 |
PVSail1, PVAdulte, PertePVPrim, PertePVMult: double; |
274 |
P2Sail1, P2Objectif, PerteP2Prim, PerteP2Mult: double; |
275 |
NbVifs, NbMorts, NbSevres: double; |
276 |
AgeSevr: integer; |
277 |
PVNais, PVSevr: double; |
278 |
ConsoLact, ConsoGest: double; |
279 |
// Ajustement du poids apr?s mise-bas
|
280 |
pmax, a, b: double; |
281 |
end;
|
282 |
PRecProfilT = ^RecProfilT; |
283 |
// Simulation truie reproductrice
|
284 |
RecSimulT = record
|
285 |
Num: integer; |
286 |
Nom: string[25]; |
287 |
Memo: string[255]; // Commentaires |
288 |
Profil, Logement: integer; |
289 |
DureeLact, DureeISSF: integer; // Conduite (DureeISSF n'est plus utilis?)
|
290 |
OptInit: integer; // Option de r?initialisation (PV et P2)
|
291 |
StadeInit, StadeFin: integer; |
292 |
SeqAli, Ration: array[1..NB_CYCLES] of integer; |
293 |
end;
|
294 |
PRecSimulT = ^RecSimulT; |
295 |
// R?sultats de simulation truie reproductrice
|
296 |
TabResSimulT = record
|
297 |
TabResult: array[1..NB_COL_TRUIE, 1..MAX_LIG_TRUIE] of double; |
298 |
NbJSim: integer; |
299 |
end;
|
300 |
PTabResSimulT = ^TabResSimulT; |
301 |
|
302 |
RecTabSimulT = record
|
303 |
Ok: boolean; |
304 |
Simul: integer; |
305 |
Variation: double; |
306 |
Result: PTabResSimulT; |
307 |
end;
|
308 |
// S?quence alimentaire porc croissance
|
309 |
RecRuleSeqAliP = record
|
310 |
ModeFin: integer; // -1=Fin, 0=Dur?e, 1=Age, 2=PoidsVif, 3=CumulAliment
|
311 |
ValFin: double; |
312 |
NumAli1, NumAli2: integer; |
313 |
PctAli1Init, PctAli1Fin: integer; |
314 |
end;
|
315 |
|
316 |
RecSeqAliP = record
|
317 |
Num: integer; |
318 |
Nom: string[25]; |
319 |
Memo: string[255]; // Commentaires |
320 |
NbRule: integer; |
321 |
Rule: array[1..MAX_RULE] of RecRuleSeqAliP; |
322 |
end;
|
323 |
PRecSeqAliP = ^RecSeqAliP; |
324 |
// Plan de rationnement porc croissance
|
325 |
RecRuleRationPold = record
|
326 |
ModeFin: integer; |
327 |
// -1=Fin, 0=Dur?e, 1=Age, 2=PoidsVif, 3=CumulAliment, 4-8=Consommation (Aliment, MS, ED, EM, EN)
|
328 |
ValFin: double; |
329 |
Unite: integer; // 0=Quantit?, 1=ED, 2=EM, 3=EN, 4=MS
|
330 |
Equation: integer; |
331 |
// 0=AdLib, 1=Constant, 2=f(PV), 3=a+b*PV, 4=a*PV^b, 5=a*(1-exp(-b*PV)), 6=f(dur?e), 7=a+b*dur?e, 8=a+b*dur?e(step), 9=%AdLib
|
332 |
a, b: double; |
333 |
end;
|
334 |
|
335 |
RecRationPold = record
|
336 |
Num: integer; |
337 |
Nom: string[25]; |
338 |
Memo: string[255]; // Commentaires |
339 |
NbRule: integer; |
340 |
Rule: array[1..MAX_RULE] of RecRuleRationPold; |
341 |
end;
|
342 |
PRecRationPold = ^RecRationPold; |
343 |
|
344 |
RecRuleRationP = record
|
345 |
ModeFin: integer; |
346 |
// -1=Fin, 0=Dur?e, 1=Age, 2=PoidsVif, 3=CumulAliment, 4-8=Consommation (Aliment, MS, ED, EM, EN)
|
347 |
ValFin: double; |
348 |
Gaspillage: double; |
349 |
RuleType: integer; // 0=%AdLib, 1=Constant, 2=f(PV), 3=f(dur?e)
|
350 |
Unite: integer; // 0=Quantit?, 1=ED, 2=EM, 3=EN, 4=MS
|
351 |
EqDuree: integer; // f(dur?e): 0=a+b*jour, 1=a+b*semaine
|
352 |
EqPV: integer; // f(PV): 0=a+b*PV, 1=a*PV^b, 2=a*(1-exp(-b*PV))
|
353 |
Percent, Quantity, aDuree, bDuree, aPV, bPV: double; |
354 |
end;
|
355 |
|
356 |
RecRationP = record
|
357 |
Num: integer; |
358 |
Nom: string[25]; |
359 |
Memo: string[255]; // Commentaires |
360 |
NbRule: integer; |
361 |
Rule: array[1..MAX_RULE] of RecRuleRationP; |
362 |
end;
|
363 |
PRecRationP = ^RecRationP; |
364 |
// Profil porc croissance
|
365 |
RecProfilPold = record
|
366 |
Num: integer; |
367 |
Nom: string[25]; |
368 |
Memo: string[255]; // Commentaires |
369 |
SeqAli: integer; |
370 |
Unite: integer; // 0=Quantit?, 1=ED, 2=EM, 3=EN, 4=MS
|
371 |
Equation: integer; // 0=a+b*PV, 1=a*PV^b, 2=a*(1-exp(-b*PV))
|
372 |
a, b: double; |
373 |
AgeInit: integer; |
374 |
PVInit: double; |
375 |
ProtInit: double; |
376 |
LipInit: double; |
377 |
ModeFin: integer; // 0=Duree, 1=Poids vif
|
378 |
Duree: integer; |
379 |
PVFin: double; |
380 |
Carcasse: double; // Rendement carcasse
|
381 |
PDMoy: double; |
382 |
BGompertz: double; // Comportement
|
383 |
Entretien: double; |
384 |
PVmr2: double; |
385 |
end;
|
386 |
PRecProfilPold = ^RecProfilPold; |
387 |
|
388 |
RecProfilP = record
|
389 |
Num: integer; |
390 |
Nom: string[25]; |
391 |
Memo: string[255]; // Commentaires |
392 |
Sexe: integer; // 0=Castr?, 1=Femelle, 2=M?le, 3=Mixte
|
393 |
SeqAli, Ration: integer; |
394 |
AgeInit: integer; |
395 |
PVInit: double; |
396 |
ProtInit: double; |
397 |
LipInit: double; |
398 |
ModeFin: integer; // 0=Duree, 1=Poids vif
|
399 |
Duree: integer; |
400 |
PVFin: double; |
401 |
Carcasse: double; // Rendement carcasse
|
402 |
Unite: integer; // 0=Quantit?, 1=ED, 2=EM, 3=EN, 4=MS
|
403 |
Equation: integer; // 0=a+b*PV, 1=a*PV^b, 2=a*(1-exp(-b*PV))
|
404 |
a, b: double; |
405 |
PDMoy: double; |
406 |
BGompertz: double; // Comportement
|
407 |
Entretien: double; |
408 |
PVmr2: double; |
409 |
end;
|
410 |
PRecProfilP = ^RecProfilP; |
411 |
// Simulation porc croissance
|
412 |
RecSimulP = record
|
413 |
Num: integer; |
414 |
Nom: string[25]; |
415 |
Memo: string[255]; // Commentaires |
416 |
Profil, SeqAli, Ration: integer; |
417 |
AgeInitProfil, PVInitProfil, ProtLipInitProfil, FinProfil: boolean; |
418 |
AgeInit: integer; |
419 |
PVInit, ProtInit, LipInit: double; |
420 |
ModeFin: integer; // 0=Duree, 1=Poids vif
|
421 |
Duree: integer; |
422 |
PVFin: double; |
423 |
end;
|
424 |
PRecSimulP = ^RecSimulP; |
425 |
// R?sultats de simulation porc croissance
|
426 |
TabResSimulP = record
|
427 |
TabResult: array[1..NB_COL_PORC, 1..MAX_LIG_PORC] of double; |
428 |
NbJSim: integer; |
429 |
end;
|
430 |
PTabResSimulP = ^TabResSimulP; |
431 |
|
432 |
RecTabSimulP = record
|
433 |
Ok: boolean; |
434 |
Simul, Profil, SeqAli, Ration: integer; |
435 |
Variation: double; |
436 |
Result: PTabResSimulP; |
437 |
end;
|
438 |
|
439 |
function CCVide: CompositionChimique; // initialisation |
440 |
|
441 |
var
|
442 |
ResInstance: longword; |
443 |
Reg: TRegistry; |
444 |
Lic: TIniFile; |
445 |
// Licence
|
446 |
MajorVersion, MinorVersion, ReleaseVersion, BuildVersion: integer; |
447 |
VersionString: string;
|
448 |
MainLeft, MainTop, MainWidth, MainHeight: integer; |
449 |
FirstName, LastName, Company: string;
|
450 |
Address1, Address2, PostalCode, City, Country: string;
|
451 |
Phone, Fax, Mail: string;
|
452 |
Course: string;
|
453 |
LicenseType, LicenseNumber: integer; |
454 |
Drive, Volume, FinalDate, SoftwareEnableKey: string;
|
455 |
// Configuration
|
456 |
CheckForUpdates: boolean; |
457 |
Folder, NewFolder, Logo, NewLogo, ExcelFile, CurrencySign: string;
|
458 |
LanguageCode, NewLanguageCode: string;
|
459 |
AffCorrCUD, AffCalcAli, AffGraphAli, AffUnitProfilP, AffPDMoy, |
460 |
AffPrecocite, AffEntretien, AffOptInit, AffSimulT, AffBesoin: boolean; |
461 |
ConfRap, ConfDig, ConfTCompo, ConfTAA, ConfTAG, ConfTMacro, ConfTOligo, |
462 |
ConfTFibres, ConfDCompo, ConfDAA: integer; |
463 |
ConfAffMP: boolean; |
464 |
TypeAliGest: integer; |
465 |
Duree1, Duree3: integer; |
466 |
Quantite1, Quantite2, Quantite3, Augment: double; |
467 |
XTruie, XCrois: integer; |
468 |
CarTete, CarLangue, CarPieds, CarQueue, CarHampe, CarPanne: boolean; |
469 |
ConfigChanged, DataFolderExists, ConvertData: boolean; |
470 |
FeedInfo, FatInfo, LeanInfo: integer; |
471 |
UserFatShortName, UserFatLongName, UserLeanShortName, UserLeanLongName: string;
|
472 |
UserFatPVV, UserLeanPVV: boolean; |
473 |
UserFatA, UserFatB, UserFatC, UserLeanA, UserLeanB, UserLeanC: double; |
474 |
// Mati?re premi?re
|
475 |
NFicMatiere, NFicMatInraAfz: string; // nom du fichier |
476 |
PMatiere: PRecMatiere; // pointeur sur enregistrement
|
477 |
ListMatiere: TList; // liste des enregistrements
|
478 |
NumWinMatiere: integer; // num?ro de fen?tre MDI
|
479 |
NumMatInraAfz: integer; // Nombre de mati?res premi?res INRA/AFZ
|
480 |
// Aliment
|
481 |
NFicAliment: string; // nom du fichier |
482 |
PAliment: PRecAliment; // pointeur sur enregistrement
|
483 |
ListAliment: TList; // liste des enregistrements
|
484 |
NumWinAliment: integer; // num?ro de fen?tre MDI
|
485 |
// Tarif
|
486 |
NumWinTarif: integer; // num?ro de fen?tre MDI
|
487 |
// Import / export
|
488 |
NumWinImpExp: integer; // num?ro de fen?tre MDI
|
489 |
// S?quence alimentaire truie reproductrice
|
490 |
NFicSeqAliT: string; // nom du fichier |
491 |
PSeqAliT: PRecSeqAliT; // pointeur sur enregistrement
|
492 |
ListSeqAliT: TList; // liste des enregistrements
|
493 |
NumWinSeqAliT: integer; // num?ro de fen?tre MDI
|
494 |
// Plan de rationnement truie reproductrice
|
495 |
NFicRationT: string; // nom du fichier |
496 |
PRationT: PRecRationT; // pointeur sur enregistrement
|
497 |
ListRationT: TList; // liste des enregistrements
|
498 |
NumWinRationT: integer; // num?ro de fen?tre MDI
|
499 |
// Logement truie reproductrice
|
500 |
NFicLogeT: string; // nom du fichier |
501 |
PLogeT: PRecLogeT; // pointeur sur enregistrement
|
502 |
ListLogeT: TList; // liste des enregistrements
|
503 |
NumWinLogeT: integer; // num?ro de fen?tre MDI
|
504 |
// Profil truie reproductrice
|
505 |
NFicProfilT: string; // nom du fichier |
506 |
PProfilT: PRecProfilT; // pointeur sur enregistrement
|
507 |
ListProfilT: TList; // liste des enregistrements
|
508 |
NumWinProfilT: integer; // num?ro de fen?tre MDI
|
509 |
// Simulation truie reproductrice
|
510 |
NFicSimulT: string; // nom du fichier |
511 |
PSimulT: PRecSimulT; // pointeur sur enregistrement
|
512 |
ListSimulT: TList; // liste des enregistrements
|
513 |
NumWinSimulT: integer; // num?ro de fen?tre MDI
|
514 |
// R?sultats de simulation truie reproductrice
|
515 |
PResSimulT: PTabResSimulT; |
516 |
TabSimulT: array[1..5] of RecTabSimulT; |
517 |
// Besoins en gestation (truie/?levage)
|
518 |
NumWinBesGestT: integer; // num?ro de fen?tre MDI
|
519 |
NumWinBesGestE: integer; // num?ro de fen?tre MDI
|
520 |
// Besoins en lactation (truie/?levage)
|
521 |
NumWinBesLactT: integer; // num?ro de fen?tre MDI
|
522 |
NumWinBesLactE: integer; // num?ro de fen?tre MDI
|
523 |
// S?quence alimentaire porc croissance
|
524 |
NFicSeqAliP: string; // nom du fichier |
525 |
PSeqAliP: PRecSeqAliP; // pointeur sur enregistrement
|
526 |
ListSeqAliP: TList; // liste des enregistrements
|
527 |
NumWinSeqAliP: integer; // num?ro de fen?tre MDI
|
528 |
// Plan de rationnement porc croissance
|
529 |
NFicRationPold: string; // nom du fichier |
530 |
PRationPold: PRecRationP; // pointeur sur enregistrement
|
531 |
NFicRationP: string; // nom du fichier |
532 |
PRationP: PRecRationP; // pointeur sur enregistrement
|
533 |
ListRationP: TList; // liste des enregistrements
|
534 |
NumWinRationP: integer; // num?ro de fen?tre MDI
|
535 |
// Profil porc croissance
|
536 |
NFicProfilPold: string; // nom du fichier |
537 |
PProfilPold: PRecProfilPold; // pointeur sur enregistrement
|
538 |
NFicProfilP: string; // nom du fichier |
539 |
PProfilP: PRecProfilP; // pointeur sur enregistrement
|
540 |
ListProfilP: TList; // liste des enregistrements
|
541 |
NumWinProfilP: integer; // num?ro de fen?tre MDI
|
542 |
// Simulation porc croissance
|
543 |
NFicSimulP: string; // nom du fichier |
544 |
PSimulP: PRecSimulP; // pointeur sur enregistrement
|
545 |
ListSimulP: TList; // liste des enregistrements
|
546 |
NumWinSimulP: integer; // num?ro de fen?tre MDI
|
547 |
// R?sultats de simulation porc croissance
|
548 |
PResSimulP: PTabResSimulP; |
549 |
TabSimulP: array[1..5] of RecTabSimulP; |
550 |
|
551 |
implementation
|
552 |
|
553 |
function CCVide: CompositionChimique; // initialisation |
554 |
begin
|
555 |
with Result do |
556 |
begin
|
557 |
MS := 1000;
|
558 |
MM := 0;
|
559 |
MO := 0;
|
560 |
Lip := 0;
|
561 |
MAT := 0;
|
562 |
Amidon := 0;
|
563 |
Sucres := 0;
|
564 |
dMO_T := 0;
|
565 |
dMO_C := 0;
|
566 |
dLip_T := 0;
|
567 |
dLip_C := 0;
|
568 |
dMAT_T := 0;
|
569 |
dMAT_C := 0;
|
570 |
EB := 0;
|
571 |
ED_T := 0;
|
572 |
ED_C := 0;
|
573 |
EM_T := 0;
|
574 |
EM_C := 0;
|
575 |
EN_T := 0;
|
576 |
EN_C := 0;
|
577 |
Ca := 0;
|
578 |
P := 0;
|
579 |
Na := 0;
|
580 |
K := 0;
|
581 |
Cl := 0;
|
582 |
Mg := 0;
|
583 |
Cu := 0;
|
584 |
Zn := 0;
|
585 |
Fe := 0;
|
586 |
Mn := 0;
|
587 |
S := 0;
|
588 |
Se := 0;
|
589 |
Co := 0;
|
590 |
Mb := 0;
|
591 |
I := 0;
|
592 |
Phytase := 0;
|
593 |
ActPhytE := 0;
|
594 |
ActPhytM := 0;
|
595 |
PdigG := 0;
|
596 |
PdigF := 0;
|
597 |
C6C8C10 := 0;
|
598 |
C12_0 := 0;
|
599 |
C14_0 := 0;
|
600 |
C16_0 := 0;
|
601 |
C16_1 := 0;
|
602 |
C18_0 := 0;
|
603 |
C18_1 := 0;
|
604 |
C18_2 := 0;
|
605 |
C18_3 := 0;
|
606 |
C18_4 := 0;
|
607 |
C20_0 := 0;
|
608 |
C20_1 := 0;
|
609 |
C20_4 := 0;
|
610 |
C20_5 := 0;
|
611 |
C22_0 := 0;
|
612 |
C22_1 := 0;
|
613 |
C22_5 := 0;
|
614 |
C22_6 := 0;
|
615 |
C24_0 := 0;
|
616 |
AGsLip := 0;
|
617 |
CB := 0;
|
618 |
dCB_T := 0;
|
619 |
dCB_C := 0;
|
620 |
Residu := 0;
|
621 |
dResidu_T := 0;
|
622 |
dResidu_C := 0;
|
623 |
NDF := 0;
|
624 |
ADF := 0;
|
625 |
ADL := 0;
|
626 |
Parois := 0;
|
627 |
end;
|
628 |
end;
|
629 |
|
630 |
end.
|