Changeset 9 for trunk/FormMain.pas


Ignore:
Timestamp:
Apr 14, 2026, 12:57:08 PM (2 weeks ago)
Author:
chronos
Message:
  • Modified: Loading of spot prices and calculation prices for each EAN.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/FormMain.pas

    r8 r9  
    4141    Label5: TLabel;
    4242    Label6: TLabel;
    43     ListView1: TListView;
    44     ListView2: TListView;
     43    ListViewOverview: TListView;
     44    ListViewData: TListView;
     45    ListViewSpotPrices: TListView;
    4546    MainMenu1: TMainMenu;
    4647    Memo1: TMemo;
     
    5556    PersistentForm1: TPersistentForm;
    5657    PopupMenuOverview: TPopupMenu;
     58    TabSheetSpotPrices: TTabSheet;
    5759    TabSheetOverview: TTabSheet;
    5860    TabSheetData: TTabSheet;
     
    8385    procedure TabSheetDataShow(Sender: TObject);
    8486    procedure TabSheetLogShow(Sender: TObject);
     87    procedure TabSheetSpotPricesShow(Sender: TObject);
    8588    procedure TimeEdit1Change(Sender: TObject);
    8689    procedure Translator1Translate(Sender: TObject);
     
    9194    Period: TPeriod;
    9295    ReportsDir: string;
     96    SpotPricesDir: string;
    9397    ProjectFileName: string;
    9498    ShowResult: Boolean;
     
    100104    procedure ReloadListViewOverview;
    101105    procedure ReloadListViewData;
     106    procedure ReloadListViewSpotPrices;
    102107    procedure ReloadChart;
    103108    function GetIntervalLength: TDateTime;
     
    209214procedure TFormMain.MenuItemImportReportsClick(Sender: TObject);
    210215begin
    211   EdcProject.Import(ReportsDir);
     216  EdcProject.ImportReports(ReportsDir);
    212217
    213218  if (EdcProject.Eans.Count > 0) and (EdcProject.Eans[0].Values.Count > 0) then
     
    219224procedure TFormMain.MenuItemImportSpotPricesClick(Sender: TObject);
    220225begin
    221   EdcProject.SpotPrices.LoadSpotPrices(StrToDate('1.4.2026'));
     226  EdcProject.SpotPrices.Import(SpotPricesDir);
     227  //EdcProject.SpotPrices.LoadSpotPricesFromWeb(StrToDate('1.4.2026'));
     228  ShowActiveTab;
    222229end;
    223230
     
    234241procedure TFormMain.MenuItemRemoveClick(Sender: TObject);
    235242begin
    236   if Assigned(ListView1.Selected) then
    237     EdcProject.Eans.Remove(ListView1.Selected.Data);
     243  if Assigned(ListViewOverview.Selected) then
     244    EdcProject.Eans.Remove(ListViewOverview.Selected.Data);
    238245  ReloadListViewOverview;
    239246end;
     
    272279end;
    273280
     281procedure TFormMain.TabSheetSpotPricesShow(Sender: TObject);
     282begin
     283  ReloadListViewSpotPrices;
     284end;
     285
    274286procedure TFormMain.TimeEdit1Change(Sender: TObject);
    275287var
     
    305317function TFormMain.MeasureToStr(Value: Double): string;
    306318begin
    307   Result := IntToStr(Trunc(MeasureToFloat(Value, GetIntervalLength * 24)));
     319  Result := CurrToStr(MeasureToFloat(Value, GetIntervalLength * 24));
    308320end;
    309321
     
    325337      Memo1.Lines.Add(SResult + ': ' + IntToStr(Trunc(TotalOut)));
    326338      if TotalIn <> 0 then
    327       Memo1.Lines.Add(SShared + ': ' + IntToStr(Trunc(GetShared(IntervalFrom, IntervalTo))) + ' %');
     339      Memo1.Lines.Add(SShared + ': ' + IntToStr(Trunc(GetSharedPercent(IntervalFrom, IntervalTo))) + ' %');
    328340      Memo1.Lines.Add('');
    329341    end;
     
    338350  I: Integer;
    339351begin
    340   ListView1.BeginUpdate;
     352  ListViewOverview.BeginUpdate;
    341353  try
    342     ListView1.Items.Clear;
     354    ListViewOverview.Items.Clear;
    343355    for I := 0 to EdcProject.Eans.Count - 1 do
    344356    with EdcProject.Eans[I] do begin
    345       ListItem := ListView1.Items.Add;
     357      ListItem := ListViewOverview.Items.Add;
    346358      ListItem.Caption := Number;
    347359      ListItem.Data := EdcProject.Eans[I];
    348360      ListItem.SubItems.Add(Owner);
    349361      ListItem.SubItems.Add(MeasureToStr(GetTotalIn(IntervalFrom, IntervalTo)));
    350       ListItem.SubItems.Add(MeasureToStr(GetTotalOut(IntervalFrom, IntervalTo)));
    351       ListItem.SubItems.Add(IntToStr(Trunc(GetShared(IntervalFrom, IntervalTo))));
     362      ListItem.SubItems.Add(MeasureToStr(GetShared(IntervalFrom, IntervalTo)));
     363      ListItem.SubItems.Add(IntToStr(Trunc(GetSharedPercent(IntervalFrom, IntervalTo))));
    352364      ListItem.SubItems.Add(EanKindText[Kind]);
    353365      ListItem.SubItems.Add(FloatToStr(PriceLow));
    354366      ListItem.SubItems.Add(FloatToStr(PriceHigh));
    355367      ListItem.SubItems.Add(FloatToStr(PriceSpot));
    356       ListItem.SubItems.Add(IntToStr(GetSavings(IntervalFrom, IntervalTo)));
     368      ListItem.SubItems.Add(CurrToStr(GetPrice(IntervalFrom, IntervalTo, EdcProject.SpotPrices)));
     369      ListItem.SubItems.Add(CurrToStr(GetSavings(IntervalFrom, IntervalTo, EdcProject.SpotPrices)));
     370      ListItem.SubItems.Add(DistributionTariff);
    357371    end;
    358372  finally
    359     ListView1.EndUpdate;
     373    ListViewOverview.EndUpdate;
    360374  end;
    361375end;
     
    367381  Ean: TEan;
    368382begin
    369   ListView2.Items.Clear;
     383  ListViewData.Items.Clear;
    370384  if ComboBoxEanData.ItemIndex = -1 then Exit;
    371385  Ean := TEan(ComboBoxEanData.Items.Objects[ComboBoxEanData.ItemIndex]);
    372386
    373387  if Assigned(Ean) then begin
    374     ListView2.BeginUpdate;
     388    ListViewData.BeginUpdate;
    375389    try
    376390      for I := 0 to Ean.Values.Count - 1 do
    377391      with Ean.Values[I] do
    378392      if (Time >= IntervalFrom) and (Time < IntervalTo) then begin
    379         ListItem := ListView2.Items.Add;
     393        ListItem := ListViewData.Items.Add;
    380394        ListItem.Caption := DateTimeToStr(Time);
    381395        ListItem.SubItems.Add(FloatToStr(ValueIn));
     
    384398      end;
    385399    finally
    386       ListView2.EndUpdate;
    387     end;
     400      ListViewData.EndUpdate;
     401    end;
     402  end;
     403end;
     404
     405procedure TFormMain.ReloadListViewSpotPrices;
     406var
     407  ListItem: TListItem;
     408  I: Integer;
     409begin
     410  ListViewSpotPrices.Items.Clear;
     411
     412  ListViewSpotPrices.BeginUpdate;
     413  try
     414    for I := 0 to EdcProject.SpotPrices.Count - 1 do
     415    with EdcProject.SpotPrices[I] do
     416    if (Time >= IntervalFrom) and (Time < IntervalTo) then
     417    begin
     418      ListItem := ListViewSpotPrices.Items.Add;
     419      ListItem.Caption := DateTimeToStr(Time);
     420      ListItem.SubItems.Add(FloatToStr(Value));
     421    end;
     422  finally
     423    ListViewSpotPrices.EndUpdate;
    388424  end;
    389425end;
     
    506542    Period := TPeriod(ReadIntegerWithDefault('Period', Integer(Period)));
    507543    ReportsDir := ReadStringWithDefault('ReportsDir', ReportsDir);
     544    SpotPricesDir := ReadStringWithDefault('SpotPricesDir', SpotPricesDir);
    508545    ProjectFileName := ReadStringWithDefault('ProjectFileName', ProjectFileName);
    509546    PageControl1.TabIndex := ReadIntegerWithDefault('ActiveTab', PageControl1.TabIndex);
     
    528565    WriteInteger('Period', Integer(Period));
    529566    WriteString('ReportsDir', ReportsDir);
     567    WriteString('SpotPricesDir', SpotPricesDir);
    530568    WriteString('ProjectFileName', ProjectFileName);
    531569    WriteInteger('ActiveTab', PageControl1.TabIndex);
Note: See TracChangeset for help on using the changeset viewer.