Changeset 5 for trunk/FormMain.pas
- Timestamp:
- Apr 13, 2026, 9:08:21 AM (2 weeks ago)
- File:
-
- 1 edited
-
trunk/FormMain.pas (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/FormMain.pas
r4 r5 7 7 EditBtn, TAGraph, TASeries, Generics.Collections, Generics.Defaults, 8 8 DateUtils, Ean, Translator, ApplicationInfo, RegistryEx, PersistentForm, 9 Theme, Common ;9 Theme, Common, XML, DOM, XMLRead, XMLWrite; 10 10 11 11 type … … 110 110 111 111 uses 112 csvdocument ;112 csvdocument, BufferedFileStream; 113 113 114 114 resourcestring … … 124 124 SMonth = 'Month'; 125 125 SYear = 'Year'; 126 SWrongFileFormat = 'Wrong file format'; 126 127 127 128 { TFormMain } … … 140 141 141 142 Reports := TStringList.Create; 142 SearchFiles(Reports, ReportsDir, FileNameFilter); 143 for I := 0 to Reports.Count - 1 do 144 LoadEdcReport(Reports[I]); 145 Reports.Free; 143 try 144 SearchFiles(Reports, ReportsDir, FileNameFilter); 145 for I := 0 to Reports.Count - 1 do 146 LoadEdcReport(Reports[I]); 147 finally 148 Reports.Free; 149 end; 146 150 147 151 for I := 0 to Eans.Count - 1 do … … 151 155 CreateEan('', STotalConsumtion, ekConsumption); 152 156 153 IntervalTo := Eans[0].Values.Last.Time + 15 * OneMinute; 157 if (Eans.Count > 0) and (Eans[0].Values.Count > 0) then 158 IntervalTo := Eans[0].Values.Last.Time + 15 * OneMinute; 154 159 UpdateInterval; 155 160 UpdateInterface; … … 356 361 try 357 362 ListView1.Items.Clear; 358 for I := 0 to Eans.Count - 1 do begin 363 for I := 0 to Eans.Count - 1 do 364 with Eans[I] do begin 359 365 ListItem := ListView1.Items.Add; 360 ListItem.Caption := Eans[I].Number; 361 ListItem.SubItems.Add(Eans[I].Owner); 362 ListItem.SubItems.Add(MeasureToStr(Eans[I].GetTotalIn(IntervalFrom, IntervalTo))); 363 ListItem.SubItems.Add(MeasureToStr(Eans[I].GetTotalOut(IntervalFrom, IntervalTo))); 364 ListItem.SubItems.Add(IntToStr(Trunc(Eans[I].GetShared(IntervalFrom, IntervalTo)))); 365 ListItem.SubItems.Add(EanKindText[Eans[I].Kind]); 366 ListItem.Caption := Number; 367 ListItem.SubItems.Add(Owner); 368 ListItem.SubItems.Add(MeasureToStr(GetTotalIn(IntervalFrom, IntervalTo))); 369 ListItem.SubItems.Add(MeasureToStr(GetTotalOut(IntervalFrom, IntervalTo))); 370 ListItem.SubItems.Add(IntToStr(Trunc(GetShared(IntervalFrom, IntervalTo)))); 371 ListItem.SubItems.Add(EanKindText[Kind]); 372 ListItem.SubItems.Add(FloatToStr(PriceLow)); 373 ListItem.SubItems.Add(FloatToStr(PriceHigh)); 374 ListItem.SubItems.Add(FloatToStr(PriceSpot)); 366 375 end; 367 376 finally … … 397 406 procedure TFormMain.LoadOwners(FileName: string); 398 407 var 399 Owners: TStringList;400 408 Ean: TEan; 401 I: Integer; 402 begin 403 Owners := TStringList.Create; 404 Owners.LoadFromFile(FileName); 409 Doc: TXMLDocument; 410 RootNode: TDOMNode; 411 NewNode: TDOMNode; 412 Node2: TDOMNode; 413 const 414 EdcProjectName = 'EdcProject'; 415 EansName = 'Eans'; 416 EanName = 'Ean'; 417 begin 418 ReadXMLFile(Doc, FileName); 405 419 Eans.Clear; 406 for I := 0 to Owners.Count - 1 do begin 407 Ean := TEan.Create; 408 Ean.Number := Owners.Names[I]; 409 Ean.Owner := Owners.ValueFromIndex[I]; 410 Eans.Add(Ean); 411 end; 412 Owners.Free; 420 with Doc do 421 try 422 if Doc.DocumentElement.NodeName <> EdcProjectName then 423 raise Exception.Create(SWrongFileFormat); 424 RootNode := Doc.DocumentElement; 425 426 NewNode := RootNode.FindNode(EansName); 427 if Assigned(NewNode) then begin 428 Node2 := NewNode.FirstChild; 429 while Assigned(Node2) and (Node2.NodeName = EanName) do begin 430 Ean := TEan.Create; 431 Ean.Number := ReadString(Node2, 'Number', ''); 432 Ean.Owner := ReadString(Node2, 'Owner', ''); 433 Ean.DistributionTariff := ReadString(Node2, 'DistributionTariff', ''); 434 Ean.PriceLow := ReadDouble(Node2, 'PriceLow', 0); 435 Ean.PriceHigh := ReadDouble(Node2, 'PriceHigh', 0); 436 Ean.PriceSpot := ReadDouble(Node2, 'PriceSpot', 0); 437 Eans.Add(Ean); 438 Node2 := Node2.NextSibling; 439 end; 440 end; 441 finally 442 FreeAndNil(Doc); 443 end; 413 444 end; 414 445 … … 425 456 EanKind: TEanKind; 426 457 Number: string; 458 BufferedFileStream: TBufferedFileStream; 427 459 begin 428 460 CSVDoc := TCSVDocument.Create; 429 461 try 430 462 CSVDoc.Delimiter := ';'; 463 //BufferedFileStream := TBufferedFileStream.Create(FileName, fmOpenRead); 464 //CSVDoc.LoadFromStream(BufferedFileStream); 431 465 CSVDoc.LoadFromFile(FileName); 466 //BufferedFileStream.Free; 432 467 433 468 for C := 0 to ((CSVDoc.ColCount[0] - 3) div 2) - 1 do begin
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/edc-stats/chrome/site/your_project_logo.png)