Type EvalType
   Name As String                 ' name of evaluation factor (e.g. NE-Diet)
   Units As String                ' units of evaluation factor (e.g. Mcal/day)
   Total As Single
   Maint As Single
   Preg As Single
   Lact As Single
   Gain As Single
   Reserves As Single
End Type
Public EvalFactor(1 To 6) As EvalType
Private Sub DietEvalOneComputations()Dim X As Integer' The EvalFactors are calculated here as follows :
'
' NE Diet, NE Required, NE Differ, MP Diet, MP Required, MP Differ
' Mcal/d     Mcal/d      Mcal/d      g/d         g/d        g/d
 
If AnimalType <> "Replacement Heifer" Then
  EvalFactor(1).Name = "NE Supplied"
  EvalFactor(2).Name = "NE Required"
  EvalFactor(3).Name = "NE (Diet - Req.)"
  EvalFactor(4).Name = "MP Diet"
  EvalFactor(5).Name = "MP Required"
  EvalFactor(6).Name = "MP (Diet - Req.)"
Else
  EvalFactor(1).Name = "ME Supplied"
  EvalFactor(2).Name = "ME Required"
  EvalFactor(3).Name = "ME (Diet - Req.)"
  EvalFactor(4).Name = "MP Diet"
  EvalFactor(5).Name = "MP Required"
  EvalFactor(6).Name = "MP (Diet - Req.)"
End If
 
 
For X = 1 To 6
  If X < 4 Then
    EvalFactor(X).Units = "Mcal/day"
  Else
    EvalFactor(X).Units = "g/day"
  End If
Next X
 
 
If AnimalType <> "Replacement Heifer" Then
  EvalFactor(1).Total = NEl_Total
Else
  EvalFactor(1).Total = MEng_Total
End If
 
EvalFactor(1).Maint = EvalFactor(1).Total
 
If AnimalType <> "Replacement Heifer" Then
  EvalFactor(2).Maint = NEMaint
Else
  If NEmOverMEng > 0 Then
    EvalFactor(2).Maint = NEMaint / NEmOverMEng
  Else
    EvalFactor(2).Maint = 0
  End If
End If

解决方案 »

  1.   

    type
      EvalType = packed record
      ...
      ...
      end;其他的应该没问题吧
      

  2.   


    {不懂VB,大概是这样子}
    type
      EvalType = packed record
        Name: String; // ' name of evaluation factor (e.g. NE-Diet)
        Units: String; // ' units of evaluation factor (e.g. Mcal/day)
        Total: Single;
        Maint: Single;
        Preg: Single;
        Lact: Single;
        Gain: Single;
        Reserves: Single;
      end;var
      EvalFactor: array [1 .. 6] of EvalType;
      X: Integer;  if AnimalType <> 'Replacement Heifer' then
      begin
        EvalFactor[1].Name := 'NE Supplied';
        EvalFactor[2].Name := 'NE Required';
        EvalFactor[3].Name := 'NE (Diet - Req.)';
        EvalFactor[4].Name := 'MP Diet';
        EvalFactor[5].Name := 'MP Required';
        EvalFactor[6].Name := 'MP (Diet - Req.)';
      end
      else
      begin
        EvalFactor[1].Name := 'ME Supplied';
        EvalFactor[2].Name := 'ME Required';
        EvalFactor[3].Name := 'ME (Diet - Req.)';
        EvalFactor[4].Name := 'MP Diet';
        EvalFactor[5].Name := 'MP Required';
        EvalFactor[6].Name := 'MP (Diet - Req.)';
      end;  for X := 1 To 6 do
      begin
        If X < 4 then
          EvalFactor[X].Units := 'Mcal/day'
        else
          EvalFactor[X].Units := 'g/day';
      end;  If AnimalType <> 'Replacement Heifer' Then
        EvalFactor[1].Total := NEl_Total
      Else
        EvalFactor[1].Total := MEng_Total;  EvalFactor[1].Maint := EvalFactor[1].Total;  If AnimalType <> 'Replacement Heifer' Then
      begin
        EvalFactor[2].Maint := NEMaint
      end
      else
      begin
        if NEmOverMEng > 0 then
          EvalFactor[2].Maint := NEMaint / NEmOverMEng
        else
          EvalFactor[2].Maint := 0
      end;