Index: UnitFeedDetail.dfm
===================================================================
--- UnitFeedDetail.dfm	(rÃ©vision 4)
+++ UnitFeedDetail.dfm	(rÃ©vision 5)
@@ -1345,7 +1345,7 @@
       end
       object LabelCa_Pd: TLabel
         Left = 8
-        Top = 204
+        Top = 212
         Width = 35
         Height = 13
         Caption = 'Ca / dP'
@@ -1377,12 +1377,19 @@
       end
       object LabelBE: TLabel
         Left = 8
-        Top = 136
+        Top = 140
         Width = 91
         Height = 13
         Caption = 'Electrolyte balance'
         Transparent = False
       end
+      object LabelBEUnit: TLabel
+        Left = 24
+        Top = 156
+        Width = 3
+        Height = 13
+        Transparent = False
+      end
       object DBEditCa: TDBEdit
         Left = 120
         Top = 16
@@ -1415,7 +1422,7 @@
       end
       object DBEditCa_Pd: TDBEdit
         Left = 120
-        Top = 200
+        Top = 208
         Width = 64
         Height = 21
         DataField = 'Ca/Pd'
@@ -1445,7 +1452,7 @@
       end
       object DBEditCl: TDBEdit
         Left = 120
-        Top = 115
+        Top = 112
         Width = 64
         Height = 21
         DataField = 'Cl'
@@ -1455,7 +1462,7 @@
       end
       object DBEditBE: TDBEdit
         Left = 120
-        Top = 152
+        Top = 144
         Width = 64
         Height = 21
         DataField = 'BE'
@@ -1975,8 +1982,8 @@
     Filter = 'XML files|*.xml'
     Options = [ofOverwritePrompt, ofHideReadOnly, ofNoChangeDir, ofEnableSizing]
     Title = 'Export data to Excel'
-    Left = 608
-    Top = 616
+    Left = 800
+    Top = 8
   end
   object RvDataSetConnectionComposition: TRvDataSetConnection
     RuntimeVisibility = rtDeveloper
@@ -7040,7 +7047,7 @@
     Left = 8
     Top = 648
     Bitmap = {
-      494C0101080009004C0020002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+      494C010108000900500020002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
       00000000000036000000280000008000000060000000010020000000000000C0
       0000000000000000000000000000000000000000000000000000000000000000
       0000000000000000000000000000000000000000000000000000000000000000
Index: UnitFeedsCharts.dfm
===================================================================
--- UnitFeedsCharts.dfm	(rÃ©vision 4)
+++ UnitFeedsCharts.dfm	(rÃ©vision 5)
@@ -222,7 +222,8 @@
             'Sodium'
             'Potassium'
             'Chlorine'
-            'Digestible phosphorus')
+            'Digestible phosphorus'
+            'Electrolyte balance')
         end
         object ComboBoxProximal0: TComboBox
           Left = 224
@@ -508,7 +509,8 @@
             'Sodium'
             'Potassium'
             'Chlorine'
-            'Digestible phosphorus')
+            'Digestible phosphorus'
+            'Electrolyte balance')
         end
         object ComboBoxProximal: TComboBox
           Left = 224
@@ -533,7 +535,7 @@
             'Sugars')
         end
         object ComboBoxType: TComboBox
-          Left = 16
+          Left = 18
           Top = 16
           Width = 200
           Height = 21
@@ -958,7 +960,7 @@
     Left = 8
     Top = 640
     Bitmap = {
-      494C0101020009002C0020002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+      494C010102000900300020002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
       0000000000003600000028000000800000002000000001002000000000000040
       0000000000000000000000000000000000000000000000000000000000000000
       00000000000000000000FEFEFEFFFCFCFCFFF5F5F5FFEAEAEAFFDADADAFFCBCB
Index: UnitFeedsList.pas
===================================================================
--- UnitFeedsList.pas	(rÃ©vision 4)
+++ UnitFeedsList.pas	(rÃ©vision 5)
@@ -42,6 +42,8 @@
     JvImgBtnView: TJvImgBtn;
     JvImgBtnEval: TJvImgBtn;
     JvImgBtnGraphs: TJvImgBtn;
+    TabSheetBE: TTabSheet;
+    DBGridBE: TDBGrid;
     procedure FormCreate(Sender: TObject);
     procedure DBGridFeedsDrawColumnCell(Sender: TObject; const Rect: TRect;
       DataCol: Integer; Column: TColumn; State: TGridDrawState);
@@ -367,13 +369,18 @@
       MineralsUnit := Format('%s %s', [ComboBoxMinerals.Items[Minerals], _('DM')]);
     end;
   with FormOptions do
-    TabSheetMS.Caption := TabSheetMS.Caption + Format(' (%s)', [ComboBoxProximal.Items[Proximal]]);
-  TabSheetProximal.Caption := TabSheetProximal.Caption + Format(' (%s)', [ProximalUnit]);
-  TabSheetEnergy.Caption := TabSheetEnergy.Caption + Format(' (%s)', [EnergyUnit]);
-  TabSheetEnergyUtilization.Caption := TabSheetEnergyUtilization.Caption + ' (%)';
-  TabSheetAATot.Caption := TabSheetAATot.Caption + Format(' (%s)', [AAUnit]);
-  TabSheetAADig.Caption := TabSheetAADig.Caption + Format(' (%s)', [AAUnit]);
-  TabSheetMinerals.Caption := TabSheetMinerals.Caption + Format(' (%s)', [MineralsUnit]);
+    TabSheetMS.Caption := Format('%s (%s)', [TabSheetMS.Caption, ComboBoxProximal.Items[Proximal]]);
+  TabSheetProximal.Caption := Format('%s (%s)', [TabSheetProximal.Caption, ProximalUnit]);
+  TabSheetEnergy.Caption := Format('%s (%s)', [TabSheetEnergy.Caption, EnergyUnit]);
+  TabSheetEnergyUtilization.Caption := Format('%s (%%)', [TabSheetEnergyUtilization.Caption]);
+  TabSheetAATot.Caption := Format('%s (%s)', [TabSheetAATot.Caption, AAUnit]);
+  TabSheetAADig.Caption := Format('%s (%s)', [TabSheetAADig.Caption, AAUnit]);
+  TabSheetMinerals.Caption := Format('%s (%s)', [TabSheetMinerals.Caption, MineralsUnit]);
+  if FormOptions.Expression = 0
+  then // sur frais
+    TabSheetBE.Caption := Format('%s (%s)', [TabSheetBE.Caption, _('mEq/kg')])
+  else // sur matière sèche
+    TabSheetBE.Caption := Format('%s (%s %s)', [TabSheetBE.Caption, _('mEq/kg'), _('DM')]);
   // Sauvegarder la WndProc actuelle du DBGrid
   DBGridNameOldWindowProc := DBGridName.WindowProc;
   DBGridMSOldWindowProc := DBGridMS.WindowProc;
Index: UnitFeedsList.dfm
===================================================================
--- UnitFeedsList.dfm	(rÃ©vision 4)
+++ UnitFeedsList.dfm	(rÃ©vision 5)
@@ -42,11 +42,13 @@
     OnChange = PageControlListsChange
     object TabSheetMS: TTabSheet
       Caption = 'Dry matter'
+      ExplicitTop = 24
+      ExplicitHeight = 610
       object DBGridMS: TDBGrid
         Left = 0
         Top = 0
         Width = 621
-        Height = 610
+        Height = 592
         Align = alClient
         Color = clBtnFace
         DataSource = DataModuleDeclaration.DataSourceFeeds
@@ -76,7 +78,7 @@
         Left = 0
         Top = 0
         Width = 621
-        Height = 610
+        Height = 592
         Align = alClient
         Color = clBtnFace
         DataSource = DataModuleDeclaration.DataSourceFeeds
@@ -159,7 +161,7 @@
         Left = 0
         Top = 0
         Width = 621
-        Height = 610
+        Height = 592
         Align = alClient
         Color = clBtnFace
         DataSource = DataModuleDeclaration.DataSourceFeeds
@@ -237,7 +239,7 @@
         Left = 0
         Top = 0
         Width = 621
-        Height = 610
+        Height = 592
         Align = alClient
         Color = clBtnFace
         DataSource = DataModuleDeclaration.DataSourceFeeds
@@ -303,7 +305,7 @@
         Left = 0
         Top = 0
         Width = 621
-        Height = 610
+        Height = 592
         Align = alClient
         Color = clBtnFace
         DataSource = DataModuleDeclaration.DataSourceFeeds
@@ -447,7 +449,7 @@
         Left = 0
         Top = 0
         Width = 621
-        Height = 610
+        Height = 592
         Align = alClient
         Color = clBtnFace
         DataSource = DataModuleDeclaration.DataSourceFeeds
@@ -611,7 +613,7 @@
         Left = 0
         Top = 0
         Width = 621
-        Height = 610
+        Height = 592
         Align = alClient
         Color = clBtnFace
         DataSource = DataModuleDeclaration.DataSourceFeeds
@@ -666,6 +668,37 @@
           end>
       end
     end
+    object TabSheetBE: TTabSheet
+      Caption = 'Electrolyte balance'
+      ImageIndex = 7
+      object DBGridBE: TDBGrid
+        Left = 0
+        Top = 0
+        Width = 621
+        Height = 592
+        Align = alClient
+        Color = clBtnFace
+        DataSource = DataModuleDeclaration.DataSourceFeeds
+        Options = [dgTitles, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgAlwaysShowSelection, dgConfirmDelete, dgCancelOnExit]
+        ReadOnly = True
+        TabOrder = 0
+        TitleFont.Charset = DEFAULT_CHARSET
+        TitleFont.Color = clWindowText
+        TitleFont.Height = -11
+        TitleFont.Name = 'Tahoma'
+        TitleFont.Style = []
+        OnDrawColumnCell = DBGridFeedsDrawColumnCell
+        OnDblClick = DBGridFeedsDblClick
+        OnTitleClick = DBGridFeedsTitleClick
+        Columns = <
+          item
+            Expanded = False
+            FieldName = 'BE'
+            Title.Alignment = taCenter
+            Visible = True
+          end>
+      end
+    end
   end
   object PanelButtons: TPanel
     Left = 0
@@ -845,7 +878,7 @@
     Left = 8
     Top = 648
     Bitmap = {
-      494C0101060009001C0020002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+      494C010106000900200020002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
       0000000000003600000028000000800000004000000001002000000000000080
       0000000000000000000000000000000000000000000000000000000000000000
       00000000000000000000FEFEFEFFFCFCFCFFF5F5F5FFEAEAEAFFDADADAFFCBCB
Index: UnitIngredientsList.pas
===================================================================
--- UnitIngredientsList.pas	(rÃ©vision 4)
+++ UnitIngredientsList.pas	(rÃ©vision 5)
@@ -559,16 +559,16 @@
       MineralsUnit := Format('%s %s', [ComboBoxMinerals.Items[Minerals], _('DM')]);
     end;
   with FormOptions do
-    TabSheetMS.Caption := TabSheetMS.Caption + Format(' (%s)', [ComboBoxProximal.Items[Proximal]]);
-  TabSheetProximal.Caption := TabSheetProximal.Caption + Format(' (%s)', [ProximalUnit]);
-  TabSheetEnergy.Caption := TabSheetEnergy.Caption + Format(' (%s)', [EnergyUnit]);
-  TabSheetEnergyUtilization.Caption := TabSheetEnergyUtilization.Caption + ' (%)';
-  TabSheetAATot.Caption := TabSheetAATot.Caption + Format(' (%s)', [AAUnit]);
-  TabSheetAA_MAT.Caption := TabSheetAA_MAT.Caption + ' (%)';
-  TabSheetdAA.Caption := TabSheetdAA.Caption + ' (%)';
-  TabSheetAADig.Caption := TabSheetAADig.Caption + Format(' (%s)', [AAUnit]);
-  TabSheetMinerals.Caption := TabSheetMinerals.Caption + Format(' (%s)', [MineralsUnit]);
-  TabSheetdP.Caption := TabSheetdP.Caption + ' (%)';
+    TabSheetMS.Caption := Format('%s (%s)', [TabSheetMS.Caption, ComboBoxProximal.Items[Proximal]]);
+  TabSheetProximal.Caption := Format('%s (%s)', [TabSheetProximal.Caption, ProximalUnit]);
+  TabSheetEnergy.Caption := Format('%s (%s)', [TabSheetEnergy.Caption, EnergyUnit]);
+  TabSheetEnergyUtilization.Caption := Format('%s (%%)', [TabSheetEnergyUtilization.Caption]);
+  TabSheetAATot.Caption := Format('%s (%s)', [TabSheetAATot.Caption, AAUnit]);
+  TabSheetAA_MAT.Caption := Format('%s (%%)', [TabSheetAA_MAT.Caption]);
+  TabSheetdAA.Caption := Format('%s (%%)', [TabSheetdAA.Caption]);
+  TabSheetAADig.Caption := Format('%s (%s)', [TabSheetAADig.Caption, AAUnit]);
+  TabSheetMinerals.Caption := Format('%s (%s)', [TabSheetMinerals.Caption, MineralsUnit]);
+  TabSheetdP.Caption := Format('%s (%%)', [TabSheetdP.Caption]);
   with DataModuleDeclaration do
   begin
     // Classes
Index: UnitFeedCharts.pas
===================================================================
--- UnitFeedCharts.pas	(rÃ©vision 4)
+++ UnitFeedCharts.pas	(rÃ©vision 5)
@@ -318,6 +318,8 @@
                 Value := ClientDataSetIngredientsdPphy.Value / 100 * ClientDataSetIngredientsP.Value * Ratio
               else // Granulés (dP)
                 Value := ClientDataSetIngredientsdP.Value / 100 * ClientDataSetIngredientsP.Value * Ratio;
+            6: // Bilan électrolytique
+              Value := ClientDataSetIngredientsBE.Value * Ratio;
             else
               Value := 0;
           end;
@@ -414,11 +416,19 @@
       else // sur matière sèche
         Chart0.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.AADecimals, Total, FormOptions.ComboBoxAA.Items[FormOptions.AA], _('DM')]));
     4: // Minéraux
-      if FormOptions.Expression = 0
-      then // sur frais
-        Chart0.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals]]))
-      else // sur matière sèche
-        Chart0.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals], _('DM')]));
+      if ComboBoxMinerals0.ItemIndex = 6
+      then // Bilan électrolytique
+        if FormOptions.Expression = 0
+        then // sur frais
+          Chart0.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), 1, Total, _('mEq/kg')]))
+        else // sur matière sèche
+          Chart0.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), 1, Total, _('mEq/kg'), _('DM')]))
+      else
+        if FormOptions.Expression = 0
+        then // sur frais
+          Chart0.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals]]))
+        else // sur matière sèche
+          Chart0.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals], _('DM')]));
   end;
 end;
 
@@ -597,6 +607,8 @@
             Cumul := ClientDataSetFeedsCl.Value;
           5: // Phosphore digestible
             Cumul := ClientDataSetFeedsPd.Value;
+          6: // Bilan électrolytique
+            Cumul := ClientDataSetFeedsBE.Value;
           else
             Cumul := 0;
         end;
@@ -781,6 +793,8 @@
                 Value := ClientDataSetIngredientsdPphy.Value / 100 * ClientDataSetIngredientsP.Value * Ratio
               else // Granulés (dP)
                 Value := ClientDataSetIngredientsdP.Value / 100 * ClientDataSetIngredientsP.Value * Ratio;
+            6: // Bilan électrolytique
+              Value := ClientDataSetIngredientsBE.Value * Ratio;
             else
               Value := 0;
           end;
@@ -911,11 +925,19 @@
         else // sur matière sèche
           Chart1.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.AADecimals, Total, FormOptions.ComboBoxAA.Items[FormOptions.AA], _('DM')]));
       4: // Minéraux
-        if FormOptions.Expression = 0
-        then // sur frais
-          Chart1.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals]]))
-        else // sur matière sèche
-          Chart1.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals], _('DM')]));
+        if ComboBoxMinerals1.ItemIndex = 6
+        then // Bilan électrolytique
+          if FormOptions.Expression = 0
+          then // sur frais
+            Chart1.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), 1, Total, _('mEq/kg')]))
+          else // sur matière sèche
+            Chart1.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), 1, Total, _('mEq/kg'), _('DM')]))
+        else
+          if FormOptions.Expression = 0
+          then // sur frais
+            Chart1.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals]]))
+          else // sur matière sèche
+            Chart1.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals], _('DM')]));
     end;
   end;
 end;
@@ -1095,6 +1117,8 @@
             Cumul := ClientDataSetFeedsCl.Value;
           5: // Phosphore digestible
             Cumul := ClientDataSetFeedsPd.Value;
+          6: // Bilan électrolytique
+            Cumul := ClientDataSetFeedsBE.Value;
           else
             Cumul := 0;
         end;
@@ -1279,6 +1303,8 @@
                 Value := ClientDataSetIngredientsdPphy.Value / 100 * ClientDataSetIngredientsP.Value * Ratio
               else // Granulés (dP)
                 Value := ClientDataSetIngredientsdP.Value / 100 * ClientDataSetIngredientsP.Value * Ratio;
+            6: // Bilan électrolytique
+              Value := ClientDataSetIngredientsBE.Value * Ratio;
             else
               Value := 0;
           end;
@@ -1409,11 +1435,19 @@
         else // sur matière sèche
           Chart2.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.AADecimals, Total, FormOptions.ComboBoxAA.Items[FormOptions.AA], _('DM')]));
       4: // Minéraux
-        if FormOptions.Expression = 0
-        then // sur frais
-          Chart2.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals]]))
-        else // sur matière sèche
-          Chart2.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals], _('DM')]));
+        if ComboBoxMinerals2.ItemIndex = 6
+        then // Bilan électrolytique
+          if FormOptions.Expression = 0
+          then // sur frais
+            Chart2.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), 1, Total, _('mEq/kg')]))
+          else // sur matière sèche
+            Chart2.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), 1, Total, _('mEq/kg'), _('DM')]))
+        else
+          if FormOptions.Expression = 0
+          then // sur frais
+            Chart2.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals]]))
+          else // sur matière sèche
+            Chart2.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals], _('DM')]));
     end;
   end;
 end;
@@ -1593,6 +1627,8 @@
             Cumul := ClientDataSetFeedsCl.Value;
           5: // Phosphore digestible
             Cumul := ClientDataSetFeedsPd.Value;
+          6: // Bilan électrolytique
+            Cumul := ClientDataSetFeedsBE.Value;
           else
             Cumul := 0;
         end;
@@ -1777,6 +1813,8 @@
                 Value := ClientDataSetIngredientsdPphy.Value / 100 * ClientDataSetIngredientsP.Value * Ratio
               else // Granulés (dP)
                 Value := ClientDataSetIngredientsdP.Value / 100 * ClientDataSetIngredientsP.Value * Ratio;
+            6: // Bilan électrolytique
+              Value := ClientDataSetIngredientsBE.Value * Ratio;
             else
               Value := 0;
           end;
@@ -1907,11 +1945,19 @@
         else // sur matière sèche
           Chart3.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.AADecimals, Total, FormOptions.ComboBoxAA.Items[FormOptions.AA], _('DM')]));
       4: // Minéraux
-        if FormOptions.Expression = 0
-        then // sur frais
-          Chart3.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals]]))
-        else // sur matière sèche
-          Chart3.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals], _('DM')]));
+        if ComboBoxMinerals3.ItemIndex = 6
+        then // Bilan électrolytique
+          if FormOptions.Expression = 0
+          then // sur frais
+            Chart3.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), 1, Total, _('mEq/kg')]))
+          else // sur matière sèche
+            Chart3.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), 1, Total, _('mEq/kg'), _('DM')]))
+        else
+          if FormOptions.Expression = 0
+          then // sur frais
+            Chart3.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals]]))
+          else // sur matière sèche
+            Chart3.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals], _('DM')]));
     end;
   end;
 end;
@@ -2091,6 +2137,8 @@
             Cumul := ClientDataSetFeedsCl.Value;
           5: // Phosphore digestible
             Cumul := ClientDataSetFeedsPd.Value;
+          6: // Bilan électrolytique
+            Cumul := ClientDataSetFeedsBE.Value;
           else
             Cumul := 0;
         end;
@@ -2275,6 +2323,8 @@
                 Value := ClientDataSetIngredientsdPphy.Value / 100 * ClientDataSetIngredientsP.Value * Ratio
               else // Granulés (dP)
                 Value := ClientDataSetIngredientsdP.Value / 100 * ClientDataSetIngredientsP.Value * Ratio;
+            6: // Bilan électrolytique
+              Value := ClientDataSetIngredientsBE.Value * Ratio;
             else
               Value := 0;
           end;
@@ -2405,11 +2455,19 @@
         else // sur matière sèche
           Chart4.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.AADecimals, Total, FormOptions.ComboBoxAA.Items[FormOptions.AA], _('DM')]));
       4: // Minéraux
-        if FormOptions.Expression = 0
-        then // sur frais
-          Chart4.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals]]))
-        else // sur matière sèche
-          Chart4.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals], _('DM')]));
+        if ComboBoxMinerals4.ItemIndex = 6
+        then // Bilan électrolytique
+          if FormOptions.Expression = 0
+          then // sur frais
+            Chart4.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), 1, Total, _('mEq/kg')]))
+          else // sur matière sèche
+            Chart4.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), 1, Total, _('mEq/kg'), _('DM')]))
+        else
+          if FormOptions.Expression = 0
+          then // sur frais
+            Chart4.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals]]))
+          else // sur matière sèche
+            Chart4.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals], _('DM')]));
     end;
   end;
 end;
Index: UnitIngredientDetail.pas
===================================================================
--- UnitIngredientDetail.pas	(rÃ©vision 4)
+++ UnitIngredientDetail.pas	(rÃ©vision 5)
@@ -209,6 +209,7 @@
     LabelCl: TLabel;
     DBEditBE: TDBEdit;
     LabelBE: TLabel;
+    LabelBEUnit: TLabel;
     procedure FormCreate(Sender: TObject);
     procedure FormShow(Sender: TObject);
     procedure ActionModifyExecute(Sender: TObject);
@@ -333,15 +334,9 @@
                   CellData(Row, FloatToStrF(ClientDataSetIngredients.Fields[i].AsFloat, ffFixed, 15, FormOptions.MineralsDecimals, USFormatSettings), 'Number')
                 else
                   CellData(Row, '', 'String');
-              125:
+              125..127:
                 if not ClientDataSetIngredients.Fields[i].IsNull
                 then
-                  CellData(Row, FloatToStrF(ClientDataSetIngredients.Fields[i].AsFloat, ffFixed, 15, 2, USFormatSettings), 'Number')
-                else
-                  CellData(Row, '', 'String');
-              126..127:
-                if not ClientDataSetIngredients.Fields[i].IsNull
-                then
                   CellData(Row, FloatToStrF(ClientDataSetIngredients.Fields[i].AsFloat, ffFixed, 15, 1, USFormatSettings), 'Number')
                 else
                   CellData(Row, '', 'String');
@@ -382,7 +377,7 @@
                   CellData(Row, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals], 'String')
                 else // sur matière sèche
                   CellData(Row, Format('%s %s', [FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals], _('DM')]), 'String');
-              125: // %
+              125: // Bilan électrolytique
                 if FormOptions.Expression = 0
                 then // sur frais
                   CellData(Row, _('mEq/kg'), 'String')
@@ -848,9 +843,9 @@
   GroupBoxMinerals.Caption := Format('%s (%s)', [GroupBoxMinerals.Caption, MineralsUnit]);
   if FormOptions.Expression = 0
   then // sur frais
-    LabelBE.Caption := Format('%s (%s)', [LabelBE.Caption, _('mEq/kg')])
+    LabelBEUnit.Caption := Format('(%s)', [_('mEq/kg')])
   else // sur matière sèche
-    LabelBE.Caption := Format('%s (%s %s)', [LabelBE.Caption, _('mEq/kg'), _('DM')]);
+    LabelBEUnit.Caption := Format('(%s %s)', [_('mEq/kg'), _('DM')]);
   LabelDigP.Caption := Format('%s (%%)', [LabelDigP.Caption]);
   GroupBoxEnergy.Caption := Format('%s (%s)', [GroupBoxEnergy.Caption, EnergyUnit]);
   LabelRatio.Caption := Format('%s (%%)', [LabelRatio.Caption]);
Index: UnitMain.pas
===================================================================
--- UnitMain.pas	(rÃ©vision 4)
+++ UnitMain.pas	(rÃ©vision 5)
@@ -653,7 +653,7 @@
         ClientDataSetIngredientsNa.DisplayFormat := MineralsFormat;
         ClientDataSetIngredientsK.DisplayFormat := MineralsFormat;
         ClientDataSetIngredientsCl.DisplayFormat := MineralsFormat;
-        ClientDataSetIngredientsBE.DisplayFormat := DecimalFormat(2);
+        ClientDataSetIngredientsBE.DisplayFormat := DecimalFormat(1);
         ClientDataSetIngredientsdP.DisplayFormat := DecimalFormat(1);
         ClientDataSetIngredientsdPphy.DisplayFormat := DecimalFormat(1);
       end;
@@ -903,9 +903,9 @@
         ClientDataSetFeedsNa.DisplayFormat := MineralsFormat;
         ClientDataSetFeedsK.DisplayFormat := MineralsFormat;
         ClientDataSetFeedsCl.DisplayFormat := MineralsFormat;
-        ClientDataSetFeedsBE.DisplayFormat := DecimalFormat(2);
+        ClientDataSetFeedsBE.DisplayFormat := DecimalFormat(1);
         ClientDataSetFeedsPd.DisplayFormat := MineralsFormat;
-        ClientDataSetFeedsCa_Pd.DisplayFormat := DecimalFormat(1);
+        ClientDataSetFeedsCa_Pd.DisplayFormat := DecimalFormat(2);
         ClientDataSetFeedsPd_ENc.DisplayFormat := DecimalFormat(2);
         ClientDataSetFeedsPd_ENt.DisplayFormat := DecimalFormat(2);
         ClientDataSetFeedsPhytaseConcentration.DisplayFormat := DecimalFormat(0);
Index: UnitDeclaration.pas
===================================================================
--- UnitDeclaration.pas	(rÃ©vision 4)
+++ UnitDeclaration.pas	(rÃ©vision 5)
@@ -622,6 +622,9 @@
       + 'dPro REAL, '
       + 'Ca REAL, '
       + 'P REAL, '
+      + 'Na REAL, '
+      + 'K REAL, '
+      + 'Cl REAL, '
       + 'dP REAL, '
       + 'dPphy REAL)');
     DBUser.ExecSQL('CREATE INDEX IdxClasses ON Ingredients (Class)');
@@ -3515,6 +3518,7 @@
     ClientDataSetFeedsNa.Clear;
     ClientDataSetFeedsK.Clear;
     ClientDataSetFeedsCl.Clear;
+    ClientDataSetFeedsBE.Clear;
     ClientDataSetFeedsPd.Clear;
   end
   else
@@ -4023,6 +4027,11 @@
           ClientDataSetFeedsCl.Clear
         else
           ClientDataSetFeedsCl.Value := ClientDataSetFeedsCl.Value + ClientDataSetIngredientsCl.Value * Ratio;
+      if ClientDataSetFeedsNa.IsNull or ClientDataSetFeedsK.IsNull or ClientDataSetFeedsCl.IsNull
+      then
+        ClientDataSetFeedsBE.Clear
+      else
+        ClientDataSetFeedsBE.Value := CalcBilanElectrolytique(InputMinerals(ClientDataSetFeedsNa.Value, RapMS, FormOptions.Expression, FormOptions.Minerals), InputMinerals(ClientDataSetFeedsK.Value, RapMS, FormOptions.Expression, FormOptions.Minerals), InputMinerals(ClientDataSetFeedsCl.Value, RapMS, FormOptions.Expression, FormOptions.Minerals));
       if not ClientDataSetFeedsPd.IsNull
       then
         if ClientDataSetFeedsPresentation.Value = 0
@@ -4264,6 +4273,9 @@
       if not ClientDataSetFeedsCl.IsNull
       then
         ClientDataSetFeedsCl.Value := ClientDataSetFeedsCl.Value / RapMS;
+      if not ClientDataSetFeedsEB.IsNull
+      then
+        ClientDataSetFeedsEB.Value := ClientDataSetFeedsEB.Value / RapMS;
       if not ClientDataSetFeedsPd.IsNull
       then
         ClientDataSetFeedsPd.Value := ClientDataSetFeedsPd.Value / RapMS;
Index: UnitFeedDetail.pas
===================================================================
--- UnitFeedDetail.pas	(rÃ©vision 4)
+++ UnitFeedDetail.pas	(rÃ©vision 5)
@@ -211,6 +211,7 @@
     DBEditK: TDBEdit;
     DBEditCl: TDBEdit;
     DBEditBE: TDBEdit;
+    LabelBEUnit: TLabel;
     procedure FormCreate(Sender: TObject);
     procedure FormShow(Sender: TObject);
     procedure ActionModifyExecute(Sender: TObject);
@@ -317,7 +318,7 @@
                   CellData(Row, FloatToStrF(ClientDataSetFeeds.Fields[i].AsFloat, ffFixed, 15, FormOptions.EnergyDecimals, USFormatSettings), 'Number')
                 else
                   CellData(Row, '', 'String');
-              4, 5, 18, 20, 22, 24, 26, 28, 30..34, 103:
+              4, 5, 18, 20, 22, 24, 26, 28, 30..34, 101:
                 if not ClientDataSetFeeds.Fields[i].IsNull
                 then
                   CellData(Row, FloatToStrF(ClientDataSetFeeds.Fields[i].AsFloat, ffFixed, 15, 1, USFormatSettings), 'Number')
@@ -329,7 +330,7 @@
                   CellData(Row, FloatToStrF(ClientDataSetFeeds.Fields[i].AsFloat, ffFixed, 15, FormOptions.AADecimals, USFormatSettings), 'Number')
                 else
                   CellData(Row, '', 'String');
-              75..76, 104..105:
+              75..76, 103..105:
                 if not ClientDataSetFeeds.Fields[i].IsNull
                 then
                   CellData(Row, FloatToStrF(ClientDataSetFeeds.Fields[i].AsFloat, ffFixed, 15, 2, USFormatSettings), 'Number')
@@ -347,12 +348,6 @@
                   CellData(Row, FloatToStrF(ClientDataSetFeeds.Fields[i].AsFloat, ffFixed, 15, FormOptions.MineralsDecimals, USFormatSettings), 'Number')
                 else
                   CellData(Row, '', 'String');
-              101:
-                if not ClientDataSetIngredients.Fields[i].IsNull
-                then
-                  CellData(Row, FloatToStrF(ClientDataSetIngredients.Fields[i].AsFloat, ffFixed, 15, 2, USFormatSettings), 'Number')
-                else
-                  CellData(Row, '', 'String');
             end;
             // Unit
             case i of
@@ -390,13 +385,13 @@
                   CellData(Row, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals], 'String')
                 else // sur matière sèche
                   CellData(Row, Format('%s %s', [FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals], _('DM')]), 'String');
-              101: // %
+              101: // Bilan électrolytique
                 if FormOptions.Expression = 0
                 then // sur frais
                   CellData(Row, _('mEq/kg'), 'String')
                 else // sur matière sèche
                   CellData(Row, Format('%s %s', [_('mEq/kg'), _('DM')]), 'String');
-              109:
+              109: // Phytase
                 CellData(Row, _('IU/kg'), 'String');
             end;
           end;
@@ -788,9 +783,9 @@
 //  LabelCa_Pd.Caption := Format('%s (%%)', [LabelCa_Pd.Caption]);
   if FormOptions.Expression = 0
   then // sur frais
-    LabelBE.Caption := Format('%s (%s)', [LabelBE.Caption, _('mEq/kg')])
+    LabelBEUnit.Caption := Format('(%s)', [_('mEq/kg')])
   else // sur matière sèche
-    LabelBE.Caption := Format('%s (%s %s)', [LabelBE.Caption, _('mEq/kg'), _('DM')]);
+    LabelBEUnit.Caption := Format('(%s %s)', [_('mEq/kg'), _('DM')]);
 //  GroupBoxAzote.Caption := Format('%s (%%)', [GroupBoxAzote.Caption]);
   LabeldN.Caption := Format('%s (%%)', [LabeldN.Caption]);
   if FormOptions.Energy = 0
Index: UnitIngredientsList.dfm
===================================================================
--- UnitIngredientsList.dfm	(rÃ©vision 4)
+++ UnitIngredientsList.dfm	(rÃ©vision 5)
@@ -85,6 +85,10 @@
     end
     object TabSheetProximal: TTabSheet
       Caption = 'Proximate analysis'
+      ExplicitLeft = 0
+      ExplicitTop = 0
+      ExplicitWidth = 0
+      ExplicitHeight = 0
       object DBGridProximal: TDBGrid
         Left = 0
         Top = 0
@@ -168,6 +172,10 @@
     end
     object TabSheetEnergyUtilization: TTabSheet
       Caption = 'Energy utilization'
+      ExplicitLeft = 0
+      ExplicitTop = 0
+      ExplicitWidth = 0
+      ExplicitHeight = 0
       object DBGridRatios: TDBGrid
         Left = 0
         Top = 0
@@ -246,6 +254,10 @@
     end
     object TabSheetEnergy: TTabSheet
       Caption = 'Energy values'
+      ExplicitLeft = 0
+      ExplicitTop = 0
+      ExplicitWidth = 0
+      ExplicitHeight = 0
       object DBGridEnergy: TDBGrid
         Left = 0
         Top = 0
@@ -312,6 +324,10 @@
     end
     object TabSheetAATot: TTabSheet
       Caption = 'Total amino acids'
+      ExplicitLeft = 0
+      ExplicitTop = 0
+      ExplicitWidth = 0
+      ExplicitHeight = 0
       object DBGridAATot: TDBGrid
         Left = 0
         Top = 0
@@ -456,6 +472,10 @@
     end
     object TabSheetAA_MAT: TTabSheet
       Caption = 'Total amino acids / crude protein'
+      ExplicitLeft = 0
+      ExplicitTop = 0
+      ExplicitWidth = 0
+      ExplicitHeight = 0
       object DBGridAA_MAT: TDBGrid
         Left = 0
         Top = 0
@@ -620,6 +640,10 @@
     end
     object TabSheetdAA: TTabSheet
       Caption = 'Digestibility of amino acids'
+      ExplicitLeft = 0
+      ExplicitTop = 0
+      ExplicitWidth = 0
+      ExplicitHeight = 0
       object DBGriddAA: TDBGrid
         Left = 0
         Top = 0
@@ -784,6 +808,10 @@
     end
     object TabSheetAADig: TTabSheet
       Caption = 'Digestible amino acids'
+      ExplicitLeft = 0
+      ExplicitTop = 0
+      ExplicitWidth = 0
+      ExplicitHeight = 0
       object DBGridAADig: TDBGrid
         Left = 0
         Top = 0
@@ -948,6 +976,10 @@
     end
     object TabSheetMinerals: TTabSheet
       Caption = 'Minerals'
+      ExplicitLeft = 0
+      ExplicitTop = 0
+      ExplicitWidth = 0
+      ExplicitHeight = 0
       object DBGridMinerals: TDBGrid
         Left = 0
         Top = 0
@@ -1002,6 +1034,10 @@
     end
     object TabSheetdP: TTabSheet
       Caption = 'Phosphorus digestibility'
+      ExplicitLeft = 0
+      ExplicitTop = 0
+      ExplicitWidth = 0
+      ExplicitHeight = 0
       object DBGriddP: TDBGrid
         Left = 0
         Top = 0
@@ -1271,7 +1307,7 @@
     Left = 8
     Top = 648
     Bitmap = {
-      494C0101040009002C0020002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+      494C010104000900300020002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
       0000000000003600000028000000800000004000000001002000000000000080
       0000000000000000000000000000000000000000000000000000000000000000
       0000000000000000000000000000000000000000000000000000000000000000
Index: UnitFeedCharts.dfm
===================================================================
--- UnitFeedCharts.dfm	(rÃ©vision 4)
+++ UnitFeedCharts.dfm	(rÃ©vision 5)
@@ -107,7 +107,8 @@
             'Sodium'
             'Potassium'
             'Chlorine'
-            'Digestible phosphorus')
+            'Digestible phosphorus'
+            'Electrolyte balance')
         end
         object ComboBoxProximal0: TComboBox
           Left = 224
@@ -398,7 +399,8 @@
               'Sodium'
               'Potassium'
               'Chlorine'
-              'Digestible phosphorus')
+              'Digestible phosphorus'
+              'Electrolyte balance')
           end
           object ComboBoxProximal1: TComboBox
             Left = 224
@@ -523,7 +525,8 @@
               'Sodium'
               'Potassium'
               'Chlorine'
-              'Digestible phosphorus')
+              'Digestible phosphorus'
+              'Electrolyte balance')
           end
           object ComboBoxProximal2: TComboBox
             Left = 224
@@ -716,7 +719,8 @@
               'Sodium'
               'Potassium'
               'Chlorine'
-              'Digestible phosphorus')
+              'Digestible phosphorus'
+              'Electrolyte balance')
           end
           object ComboBoxProximal3: TComboBox
             Left = 224
@@ -909,7 +913,8 @@
               'Sodium'
               'Potassium'
               'Chlorine'
-              'Digestible phosphorus')
+              'Digestible phosphorus'
+              'Electrolyte balance')
           end
           object ComboBoxProximal4: TComboBox
             Left = 224
@@ -1081,7 +1086,7 @@
     Left = 8
     Top = 640
     Bitmap = {
-      494C0101020009002C0020002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+      494C010102000900300020002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
       0000000000003600000028000000800000002000000001002000000000000040
       0000000000000000000000000000000000000000000000000000000000000000
       00000000000000000000FEFEFEFFFCFCFCFFF5F5F5FFEAEAEAFFDADADAFFCBCB
Index: UnitFeedsCharts.pas
===================================================================
--- UnitFeedsCharts.pas	(rÃ©vision 4)
+++ UnitFeedsCharts.pas	(rÃ©vision 5)
@@ -130,6 +130,7 @@
   procedure AddBarValue;
   begin
     with DataModuleDeclaration do
+    begin
       case ComboBoxType0.ItemIndex of
         0: // Analyse proximale
           case ComboBoxProximal0.ItemIndex of
@@ -499,8 +500,13 @@
               if not ClientDataSetFeedsPd.IsNull
               then SeriesBar.AddBar(ClientDataSetFeedsPd.Value, s, clTeeColor)
               else SeriesBar.AddNull(s);
+            6: // Bilan électrolytique
+              if not ClientDataSetFeedsBE.IsNull
+              then SeriesBar.AddBar(ClientDataSetFeedsBE.Value, s, clTeeColor)
+              else SeriesBar.AddNull(s);
           end;
       end;
+    end;
   end;
 
 begin
@@ -551,12 +557,21 @@
     5: // Profils acides aminés
       Chart0.SubTitle.Text.Add('%');
     6: // Minéraux
-      with FormOptions do
-        if Expression = 0
-        then // sur frais
-          Chart0.SubTitle.Text.Add(ComboBoxMinerals.Items[Minerals])
-        else // sur matière sèche
-          Chart0.SubTitle.Text.Add(Format('%s %s', [ComboBoxMinerals.Items[Minerals], _('DM')]));
+      if ComboBoxMinerals0.ItemIndex = 6
+      then // Bilan électrolytique
+        with FormOptions do
+          if Expression = 0
+          then // sur frais
+            Chart0.SubTitle.Text.Add(_('mEq/kg'))
+          else // sur matière sèche
+            Chart0.SubTitle.Text.Add(Format('%s %s', [_('mEq/kg'), _('DM')]))
+      else
+        with FormOptions do
+          if Expression = 0
+          then // sur frais
+            Chart0.SubTitle.Text.Add(ComboBoxMinerals.Items[Minerals])
+          else // sur matière sèche
+            Chart0.SubTitle.Text.Add(Format('%s %s', [ComboBoxMinerals.Items[Minerals], _('DM')]));
   end;
   case ComboBoxType0.ItemIndex of
     0: // Analyse proximale
@@ -570,7 +585,11 @@
     5: // Profils acides aminés
       Chart0.LeftAxis.AxisValuesFormat := FormOptions.DecimalFormat(0);
     6: // Minéraux
-      Chart0.LeftAxis.AxisValuesFormat := FormOptions.MineralsFormat;
+      if ComboBoxMinerals0.ItemIndex = 6
+      then // Bilan électrolytique
+        Chart0.LeftAxis.AxisValuesFormat := FormOptions.DecimalFormat(1)
+      else
+        Chart0.LeftAxis.AxisValuesFormat := FormOptions.MineralsFormat;
   end;
   SeriesBar.Clear;
   SeriesBar.ValueFormat := Chart0.LeftAxis.AxisValuesFormat;
@@ -811,6 +830,8 @@
               Cumul := ClientDataSetFeedsCl.Value;
             5: // Phosphore digestible
               Cumul := ClientDataSetFeedsPd.Value;
+            6: // Bilan électrolytique
+              Cumul := ClientDataSetFeedsBE.Value;
             else
               Cumul := 0;
           end;
@@ -997,6 +1018,8 @@
                   Value := ClientDataSetIngredientsdPphy.Value / 100 * ClientDataSetIngredientsP.Value * Ratio
                 else // Granulés (dP)
                   Value := ClientDataSetIngredientsdP.Value / 100 * ClientDataSetIngredientsP.Value * Ratio;
+              6: // Bilan électrolytique
+                Value := ClientDataSetIngredientsBE.Value * Ratio;
               else
                 Value := 0;
             end;
@@ -1127,11 +1150,19 @@
           else // sur matière sèche
             ChartFeed1.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.AADecimals, Total, FormOptions.ComboBoxAA.Items[FormOptions.AA], _('DM')]));
         4: // Minéraux
-          if FormOptions.Expression = 0
-          then // sur frais
-            ChartFeed1.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals]]))
-          else // sur matière sèche
-            ChartFeed1.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals], _('DM')]));
+          if ComboBoxMinerals.ItemIndex = 6
+          then // Bilan électrolytique
+            if FormOptions.Expression = 0
+            then // sur frais
+              ChartFeed1.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), 1, Total, _('mEq/kg')]))
+            else // sur matière sèche
+              ChartFeed1.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), 1, Total, _('mEq/kg'), _('DM')]));
+          else
+            if FormOptions.Expression = 0
+            then // sur frais
+              ChartFeed1.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals]]))
+            else // sur matière sèche
+              ChartFeed1.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals], _('DM')]));
       end;
       ClientDataSetComposition.Filtered := False;
       ClientDataSetComposition.Filter := '';
@@ -1319,6 +1350,8 @@
               Cumul := ClientDataSetFeedsCl.Value;
             5: // Phosphore digestible
               Cumul := ClientDataSetFeedsPd.Value;
+            6: // Bilan électrolytique
+              Cumul := ClientDataSetFeedsBE.Value;
             else
               Cumul := 0;
           end;
@@ -1505,6 +1538,8 @@
                   Value := ClientDataSetIngredientsdPphy.Value / 100 * ClientDataSetIngredientsP.Value * Ratio
                 else // Granulés (dP)
                   Value := ClientDataSetIngredientsdP.Value / 100 * ClientDataSetIngredientsP.Value * Ratio;
+              6: // Bilan électrolytique
+                Value := ClientDataSetIngredientsBE.Value * Ratio;
               else
                 Value := 0;
             end;
@@ -1635,11 +1670,19 @@
           else // sur matière sèche
             ChartFeed2.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.AADecimals, Total, FormOptions.ComboBoxAA.Items[FormOptions.AA], _('DM')]));
         4: // Minéraux
-          if FormOptions.Expression = 0
-          then // sur frais
-            ChartFeed2.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals]]))
-          else // sur matière sèche
-            ChartFeed2.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals], _('DM')]));
+          if ComboBoxMinerals.ItemIndex = 6
+          then // Bilan électrolytique
+            if FormOptions.Expression = 0
+            then // sur frais
+              ChartFeed2.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), 1, Total, _('mEq/kg')]))
+            else // sur matière sèche
+              ChartFeed2.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), 1, Total, _('mEq/kg'), _('DM')]));
+          else
+            if FormOptions.Expression = 0
+            then // sur frais
+              ChartFeed2.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals]]))
+            else // sur matière sèche
+              ChartFeed2.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals], _('DM')]));
       end;
       ClientDataSetComposition.Filtered := False;
       ClientDataSetComposition.Filter := '';
@@ -1827,6 +1870,8 @@
               Cumul := ClientDataSetFeedsCl.Value;
             5: // Phosphore digestible
               Cumul := ClientDataSetFeedsPd.Value;
+            6: // Bilan électrolytique
+              Cumul := ClientDataSetFeedsBE.Value;
             else
               Cumul := 0;
           end;
@@ -2013,6 +2058,8 @@
                   Value := ClientDataSetIngredientsdPphy.Value / 100 * ClientDataSetIngredientsP.Value * Ratio
                 else // Granulés (dP)
                   Value := ClientDataSetIngredientsdP.Value / 100 * ClientDataSetIngredientsP.Value * Ratio;
+              6: // Bilan électrolytique
+                Value := ClientDataSetIngredientsBE.Value * Ratio;
               else
                 Value := 0;
             end;
@@ -2143,11 +2190,19 @@
           else // sur matière sèche
             ChartFeed3.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.AADecimals, Total, FormOptions.ComboBoxAA.Items[FormOptions.AA], _('DM')]));
         4: // Minéraux
-          if FormOptions.Expression = 0
-          then // sur frais
-            ChartFeed3.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals]]))
-          else // sur matière sèche
-            ChartFeed3.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals], _('DM')]));
+          if ComboBoxMinerals.ItemIndex = 6
+          then // Bilan électrolytique
+            if FormOptions.Expression = 0
+            then // sur frais
+              ChartFeed3.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), 1, Total, _('mEq/kg')]))
+            else // sur matière sèche
+              ChartFeed3.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), 1, Total, _('mEq/kg'), _('DM')]));
+          else
+            if FormOptions.Expression = 0
+            then // sur frais
+              ChartFeed3.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals]]))
+            else // sur matière sèche
+              ChartFeed3.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals], _('DM')]));
       end;
       ClientDataSetComposition.Filtered := False;
       ClientDataSetComposition.Filter := '';
@@ -2335,6 +2390,8 @@
               Cumul := ClientDataSetFeedsCl.Value;
             5: // Phosphore digestible
               Cumul := ClientDataSetFeedsPd.Value;
+            6: // Bilan électrolytique
+              Cumul := ClientDataSetFeedsBE.Value;
             else
               Cumul := 0;
           end;
@@ -2521,6 +2578,8 @@
                   Value := ClientDataSetIngredientsdPphy.Value / 100 * ClientDataSetIngredientsP.Value * Ratio
                 else // Granulés (dP)
                   Value := ClientDataSetIngredientsdP.Value / 100 * ClientDataSetIngredientsP.Value * Ratio;
+              6: // Bilan électrolytique
+                Value := ClientDataSetIngredientsBE.Value * Ratio;
               else
                 Value := 0;
             end;
@@ -2651,11 +2710,19 @@
           else // sur matière sèche
             ChartFeed4.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.AADecimals, Total, FormOptions.ComboBoxAA.Items[FormOptions.AA], _('DM')]));
         4: // Minéraux
-          if FormOptions.Expression = 0
-          then // sur frais
-            ChartFeed4.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals]]))
-          else // sur matière sèche
-            ChartFeed4.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals], _('DM')]));
+          if ComboBoxMinerals.ItemIndex = 6
+          then // Bilan électrolytique
+            if FormOptions.Expression = 0
+            then // sur frais
+              ChartFeed4.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), 1, Total, _('mEq/kg')]))
+            else // sur matière sèche
+              ChartFeed4.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), 1, Total, _('mEq/kg'), _('DM')]));
+          else
+            if FormOptions.Expression = 0
+            then // sur frais
+              ChartFeed4.SubTitle.Text.Add(Format('%s %1.*f %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals]]))
+            else // sur matière sèche
+              ChartFeed4.SubTitle.Text.Add(Format('%s %1.*f %s %s', [_('Total:'), FormOptions.MineralsDecimals, Total, FormOptions.ComboBoxMinerals.Items[FormOptions.Minerals], _('DM')]));
       end;
       ClientDataSetComposition.Filtered := False;
       ClientDataSetComposition.Filter := '';
Index: UnitIngredientDetail.dfm
===================================================================
--- UnitIngredientDetail.dfm	(rÃ©vision 4)
+++ UnitIngredientDetail.dfm	(rÃ©vision 5)
@@ -1609,12 +1609,19 @@
       end
       object LabelBE: TLabel
         Left = 8
-        Top = 136
+        Top = 140
         Width = 91
         Height = 13
         Caption = 'Electrolyte balance'
         Transparent = False
       end
+      object LabelBEUnit: TLabel
+        Left = 24
+        Top = 156
+        Width = 3
+        Height = 13
+        Transparent = False
+      end
       object DBEditCa: TDBEdit
         Left = 120
         Top = 16
@@ -1687,7 +1694,7 @@
       end
       object DBEditBE: TDBEdit
         Left = 120
-        Top = 152
+        Top = 144
         Width = 64
         Height = 21
         DataField = 'BE'
@@ -6258,8 +6265,8 @@
     Filter = 'XML files|*.xml'
     Options = [ofOverwritePrompt, ofHideReadOnly, ofNoChangeDir, ofEnableSizing]
     Title = 'Export data to Excel'
-    Left = 568
-    Top = 616
+    Left = 800
+    Top = 8
   end
   object ActionListButtons: TActionList
     Images = ImageListIcons
@@ -6308,7 +6315,7 @@
     Left = 8
     Top = 648
     Bitmap = {
-      494C010107000900400020002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+      494C010107000900500020002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
       0000000000003600000028000000800000004000000001002000000000000080
       0000000000000000000000000000000000000000000000000000000000000000
       0000000000000000000000000000000000000000000000000000000000000000
