Changeset 14 for trunk/UCore.pas


Ignore:
Timestamp:
Mar 19, 2013, 8:38:28 PM (11 years ago)
Author:
chronos
Message:
  • Přidáno: Možnost nastavit si formát jména výstupního souboru.
  • Opraveno: Omezení nastavení časového intervalu na povolené hodnoty.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/UCore.pas

    r13 r14  
    5757    MenuItem7: TMenuItem;
    5858    MenuItem8: TMenuItem;
     59    MenuItem9: TMenuItem;
    5960    PopupMenuTray: TPopupMenu;
    6061    TrayIcon1: TTrayIcon;
     
    7071    procedure DataModuleDestroy(Sender: TObject);
    7172  private
    72     { private declarations }
     73    function GetFileName: string;
    7374  public
    7475    RegistryContext: TRegistryContext;
     
    8182    ReportTimeFrom: TDateTime;
    8283    ReportTimeTo: TDateTime;
     84    OutputFormat: string;
     85    SelectedAccountIndex: Integer;
    8386    procedure LoadAccount(Account: TAccount);
    8487    procedure LoadAccounts;
     
    101104  SReport = 'Dump %s';
    102105  SSavedToFile = 'Dump saved to file %s';
     106  SDumpFormat = 'Dump %d %t.%f';
    103107
    104108{ TAccount }
     
    121125    Name := UTF8Encode(ReadStringWithDefault('Name', UTF8Decode('Učet')));
    122126    Time := ReadDateTimeWithDefault('Time', 0);
    123     Token :=UTF8Encode( ReadStringWithDefault('Token', ''));
     127    Token := UTF8Encode(ReadStringWithDefault('Token', ''));
    124128    Balance := ReadFloatWithDefault('Balance', 0);
    125129    Number := UTF8Encode(ReadStringWithDefault('Number', ''));
     
    227231  SaveToRegistry(RegistryContext);
    228232  FreeAndNil(Accounts);
     233end;
     234
     235function TCore.GetFileName: string;
     236begin
     237  Result := OutputFormat;
     238  Result := StringReplace(Result, '%f', DataFormatURL[DataFormat], [rfReplaceAll]);
     239  Result := StringReplace(Result, '%d', DateToStr(Now), [rfReplaceAll]);
     240  Result := StringReplace(Result, '%t', TimeToStr(Now), [rfReplaceAll]);
     241  Result := StringReplace(Result, '%a', CurrentAccount.Number, [rfReplaceAll]);
     242  Result := StringReplace(Result, '%n', CurrentAccount.Name, [rfReplaceAll]);
     243  Result := StringReplace(Result, '%%', '%', [rfReplaceAll]);
    229244end;
    230245
     
    302317    WriteInteger('ReportId', ReportId);
    303318    WriteString('Language', CoolTranslator1.Language.Code);
     319    WriteString('FileNameFormat', OutputFormat);
     320    WriteInteger('SelectedAccountIndex', SelectedAccountIndex);
    304321  finally
    305322    Free;
     
    321338    ReportId := ReadIntegerWithDefault('ReportId', MonthOf(Now));
    322339    CoolTranslator1.Language := CoolTranslator1.Languages.SearchByCode(ReadStringWithDefault('Language', 'cs'));
     340    OutputFormat := UTF8Encode(ReadStringWithDefault('FileNameFormat', UTF8Decode(SDumpFormat)));
     341    SelectedAccountIndex := ReadIntegerWithDefault('SelectedAccountIndex', 0);
    323342  finally
    324343    Free;
     
    353372    FioAPI.Token := CurrentAccount.Token;
    354373    if FioAPI.DownloadLast(List) then begin
    355       FileName := TargetDirectory + DirectorySeparator + Format(SReport, [FormatDateTime('yyyy-mm-dd hh-nn-ss', Now) +
    356         ExtensionSeparator + DataFormatURL[FioAPI.Format]]);
     374      FileName := TargetDirectory + DirectorySeparator + GetFileName;
    357375      List.SaveToFile(UTF8Decode(FileName));
    358376      ShowMessage(Format(SSavedToFile, [FileName]));
     
    376394    FioAPI.Token := CurrentAccount.Token;
    377395    if FioAPI.DownloadMonthly(ReportYear, ReportId, List) then begin
    378       FileName := TargetDirectory + DirectorySeparator + Format(SReport, [IntToStr(ReportYear) +
    379         '-' + IntToStr(ReportId) +
    380         ExtensionSeparator + DataFormatURL[FioAPI.Format]]);
     396      FileName := TargetDirectory + DirectorySeparator + GetFileName;
    381397      List.SaveToFile(UTF8Decode(FileName));
    382398      ShowMessage(Format(SSavedToFile, [FileName]));
     
    400416    FioAPI.Token := CurrentAccount.Token;
    401417    if FioAPI.DownloadInterval(ReportTimeFrom, ReportTimeTo, List) then begin
    402       FileName := TargetDirectory + DirectorySeparator + Format(SReport, [FormatDateTime('yyyy-mm-dd', ReportTimeFrom) +
    403         ' ' + FormatDateTime('yyyy-mm-dd', ReportTimeTo) +
    404         ExtensionSeparator + DataFormatURL[FioAPI.Format]]);
     418      FileName := TargetDirectory + DirectorySeparator + GetFileName;
    405419      List.SaveToFile(UTF8Decode(FileName));
    406420      ShowMessage(Format(SSavedToFile, [FileName]));
Note: See TracChangeset for help on using the changeset viewer.