root / UFRapSimulP.pas @ 5
Historique | Voir | Annoter | Télécharger (7,147 ko)
1 |
unit UFRapSimulP ;
|
---|---|
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 |
TFRapSimulP = class(TForm)
|
12 |
QRRapport: TQuickRep; |
13 |
PHBRapport: TQRBand; |
14 |
DBRapport: TQRBand; |
15 |
QRLTitre: TQRLabel; |
16 |
QRLCaract: TQRLabel; |
17 |
QRLPerf: TQRLabel; |
18 |
QRLSimul: TQRLabel; |
19 |
QRLProfil: TQRLabel; |
20 |
QRLSeqAli: TQRLabel; |
21 |
QRLRation: TQRLabel; |
22 |
QRLPoidsDeb: TQRLabel; |
23 |
QRLPoidsFin: TQRLabel; |
24 |
QRDBTSimul: TQRDBText; |
25 |
QRDBTProfil: TQRDBText; |
26 |
QRDBTSeqAli: TQRDBText; |
27 |
QRDBTRation: TQRDBText; |
28 |
QRDBTPoidsDeb: TQRDBText; |
29 |
QRDBTPoidsFin: TQRDBText; |
30 |
QRLAgeDeb: TQRLabel; |
31 |
QRLAgeFin: TQRLabel; |
32 |
QRDBTAgeDeb: TQRDBText; |
33 |
QRDBTAgeFin: TQRDBText; |
34 |
QRLDuree: TQRLabel; |
35 |
QRLGMQ: TQRLabel; |
36 |
QREDuree: TQRExpr; |
37 |
QREGMQ: TQRExpr; |
38 |
QRLPD: TQRLabel; |
39 |
QRLLD: TQRLabel; |
40 |
QRLAliTot: TQRLabel; |
41 |
QRLAliMoy: TQRLabel; |
42 |
QRDBTAliTot: TQRDBText; |
43 |
QREAliMoy: TQRExpr; |
44 |
QREPD: TQRExpr; |
45 |
QRELD: TQRExpr; |
46 |
QRLWastage: TQRLabel; |
47 |
QRLTMP: TQRLabel; |
48 |
QRDBTTMP: TQRDBText; |
49 |
QRLP2: TQRLabel; |
50 |
QRDBTP2: TQRDBText; |
51 |
CDSRapport: TClientDataSet; |
52 |
SFSimul: TStringField; |
53 |
SFProfil: TStringField; |
54 |
SFSeqAli: TStringField; |
55 |
SFRation: TStringField; |
56 |
IFAgeDeb: TIntegerField; |
57 |
IFAgeFin: TIntegerField; |
58 |
FFPoidsDeb: TFloatField; |
59 |
FFPoidsFin: TFloatField; |
60 |
FFpFin: TFloatField; |
61 |
FFlFin: TFloatField; |
62 |
FFConso: TFloatField; |
63 |
FFTMP: TFloatField; |
64 |
FFP2: TFloatField; |
65 |
PFBRapport: TQRBand; |
66 |
QRLUser: TQRLabel; |
67 |
QRLWarning: TQRLabel; |
68 |
QRLMemo: TQRLabel; |
69 |
QRMMemo: TQRMemo; |
70 |
QRSDDate: TQRSysData; |
71 |
QRSEntete: TQRShape; |
72 |
QRLRC: TQRLabel; |
73 |
QRDBTRC: TQRDBText; |
74 |
FFRC: TFloatField; |
75 |
QRIInraPorc: TQRImage; |
76 |
QRLInraPorc: TQRLabel; |
77 |
QRLFeed: TQRLabel; |
78 |
QREFeed: TQRExpr; |
79 |
QREWastage: TQRExpr; |
80 |
FFIngere: TFloatField; |
81 |
FFpDeb: TFloatField; |
82 |
FFlDeb: TFloatField; |
83 |
procedure FormCreate(Sender: TObject);
|
84 |
private
|
85 |
{ D?clarations priv?es }
|
86 |
public
|
87 |
{ D?clarations publiques }
|
88 |
end;
|
89 |
|
90 |
var
|
91 |
FRapSimulP: TFRapSimulP; |
92 |
|
93 |
implementation
|
94 |
|
95 |
uses
|
96 |
UStrings, UCalcul, UUtil, UFSimulP, UFPrevRap ; |
97 |
|
98 |
{$R *.dfm}
|
99 |
|
100 |
{ TFRapSimulP }
|
101 |
|
102 |
procedure TFRapSimulP.FormCreate(Sender: TObject);
|
103 |
var
|
104 |
i, t: integer; |
105 |
c: double; |
106 |
begin
|
107 |
if Screen.Fonts.IndexOf('Arial Unicode MS') <> -1 |
108 |
then
|
109 |
Font.Name := 'Arial Unicode MS';
|
110 |
TranslateComponent(Self); |
111 |
// Licence
|
112 |
if IsEducation and (Length (Course) > 0) |
113 |
then
|
114 |
QRLUSer.Caption := Format('%s (%s)', [Course, Company])
|
115 |
else
|
116 |
if IsComplete or IsEducation |
117 |
then
|
118 |
QRLUSer.Caption := Format('%s %s (%s)', [FirstName, LastName, Company])
|
119 |
else
|
120 |
if IsEvaluation
|
121 |
then
|
122 |
QRLUSer.Caption := StrEvaluation |
123 |
else
|
124 |
begin
|
125 |
QRLUSer.Caption := StrReadOnly; |
126 |
QRLUser.Font.Color := clRed; |
127 |
end;
|
128 |
t := PResSimulP.NbJSim; |
129 |
with CDSRapport do |
130 |
begin
|
131 |
CreateDataSet; |
132 |
Append; |
133 |
FieldValues['_Simul_'] := FSimulP.CBSimul.Text;
|
134 |
FieldValues['_Profil_'] := FSimulP.CBProfil.Text;
|
135 |
FieldValues['_SeqAli_'] := FSimulP.CBSeqAli.Text;
|
136 |
FieldValues['_Ration_'] := FSimulP.CBRation.Text;
|
137 |
FieldValues['_AgeDeb_'] := PResSimulP.TabResult[1, 1]; |
138 |
FieldValues['_AgeFin_'] := PResSimulP.TabResult[1, t] + 1; |
139 |
FieldValues['_PoidsDeb_'] := PResSimulP.TabResult[2, 1]; |
140 |
FieldValues['_PoidsFin_'] := PResSimulP.TabResult[83, t]; |
141 |
FieldValues['_pDeb_'] := PResSimulP.TabResult[49, 1]; |
142 |
FieldValues['_pFin_'] := PResSimulP.TabResult[49, t] + PResSimulP.TabResult[79, t] / 1000; |
143 |
FieldValues['_lDeb_'] := PResSimulP.TabResult[50, 1]; |
144 |
FieldValues['_lFin_'] := PResSimulP.TabResult[50, t] + PResSimulP.TabResult[80, t] / 1000; |
145 |
c := 0;
|
146 |
for i := 1 to t do |
147 |
c := c + PResSimulP.TabResult[113, i];
|
148 |
FieldValues['_Conso_'] := c;
|
149 |
c := 0;
|
150 |
for i := 1 to t do |
151 |
c := c + PResSimulP.TabResult[11, i];
|
152 |
FieldValues['_Ingere_'] := c;
|
153 |
if FatInfo = 0 |
154 |
then // P2 |
155 |
FieldValues['_P2_'] := CalcP2(FieldValues['_lFin_']) |
156 |
else // User defined |
157 |
FieldValues['_P2_'] := CalcUserFat(CalcPVV(FieldValues['_PoidsFin_']), FieldValues['_pFin_'], FieldValues['_lFin_']); |
158 |
if LeanInfo = 0 |
159 |
then // TMP |
160 |
FieldValues['_TMP_'] := CalcTMP(CalcPVV(FieldValues['_PoidsFin_']), FieldValues['_pFin_'], FieldValues['_lFin_']) |
161 |
else // User defined |
162 |
FieldValues['_TMP_'] := CalcUserLean(CalcPVV(FieldValues['_PoidsFin_']), FieldValues['_pFin_'], FieldValues['_lFin_']); |
163 |
FieldValues['_RC_'] := CalcRC(FieldValues['_PoidsFin_'], CalcRCStd(PProfilP.PVFin, PProfilP.Carcasse), FieldValues['_PoidsFin_']) * 100; |
164 |
Post; |
165 |
end;
|
166 |
QRMMemo.Lines.Add(FSimulP.CBSimul.Hint); |
167 |
if FeedInfo = 0 |
168 |
then // Indice de consommation |
169 |
QREFeed.Expression := 'IF(CDSRapport._PoidsDeb_ = CDSRapport._PoidsFin_, 0, CDSRapport._Conso_ / (CDSRapport._PoidsFin_ - CDSRapport._PoidsDeb_))'
|
170 |
else // Efficacit? alimentaire |
171 |
QREFeed.Expression := 'IF(CDSRapport._Conso_ = 0, 0, (CDSRapport._PoidsFin_ - CDSRapport._PoidsDeb_) / CDSRapport._Conso_)';
|
172 |
QRLAgeDeb.Caption := Format('%s (%s)', [QRLAgeDeb.Caption, _('d')]); |
173 |
QRLAgeFin.Caption := Format('%s (%s)', [QRLAgeFin.Caption, _('d')]); |
174 |
QRLDuree.Caption := Format('%s (%s)', [QRLDuree.Caption, _('d')]); |
175 |
QRLPoidsDeb.Caption := Format('%s (%s)', [QRLPoidsDeb.Caption, _('kg')]); |
176 |
QRLPoidsFin.Caption := Format('%s (%s)', [QRLPoidsFin.Caption, _('kg')]); |
177 |
QRLGMQ.Caption := Format('%s (%s/%s)', [QRLGMQ.Caption, _('g'), _('d')]); |
178 |
QRLPD.Caption := Format('%s (%s/%s)', [QRLPD.Caption, _('g'), _('d')]); |
179 |
QRLLD.Caption := Format('%s (%s/%s)', [QRLLD.Caption, _('g'), _('d')]); |
180 |
QRLAliTot.Caption := Format('%s (%s)', [QRLAliTot.Caption, _('kg')]); |
181 |
QRLAliMoy.Caption := Format('%s (%s/%s)', [QRLAliMoy.Caption, _('g'), _('d')]); |
182 |
QRLWastage.Caption := Format('%s (%%)', [QRLWastage.Caption]);
|
183 |
if FeedInfo = 0 |
184 |
then // Indice de consommation |
185 |
QRLFeed.Caption := Format('%s (%s/%s)', [_('Average feed-to-gain ratio'), _('kg feed'), _('kg gain')]) |
186 |
else // Efficacit? alimentaire |
187 |
QRLFeed.Caption := Format('%s (%s/%s)', [_('Average gain-to-feed ratio'), _('kg gain'), _('kg feed')]); |
188 |
if FatInfo = 0 |
189 |
then // P2 |
190 |
QRLP2.Caption := Format('%s (%s)', [_('Backfat thickness at slaughter'), _('mm')]) |
191 |
else // User defined |
192 |
if Length(UserFatLongName) = 0 |
193 |
then
|
194 |
QRLP2.Caption := Format('%s (%s)', [_('User-defined backfat thickness'), _('mm')]) |
195 |
else
|
196 |
QRLP2.Caption := Format('%s (%s)', [UserFatLongName, _('mm')]); |
197 |
if LeanInfo = 0 |
198 |
then // TMP |
199 |
QRLTMP.Caption := Format('%s (%%)', [_('Lean meat at slaughter')]) |
200 |
else // User defined |
201 |
if Length(UserLeanLongName) = 0 |
202 |
then
|
203 |
QRLTMP.Caption := Format('%s (%%)', [_('User-defined lean meat')]) |
204 |
else
|
205 |
QRLTMP.Caption := Format('%s (%%)', [UserLeanLongName]);
|
206 |
QRLRC.Caption := Format('%s (%%)', [QRLRC.Caption]);
|
207 |
RegisterPreviewClass(TQRPrevRapInterface); |
208 |
// QRRapport.PreviewModal;
|
209 |
// RegisterPreviewClass(TQRStandardPreviewInterface);
|
210 |
end;
|
211 |
|
212 |
end.
|