Changeset 6 for trunk/UFormMain.pas


Ignore:
Timestamp:
Mar 14, 2013, 9:24:41 PM (11 years ago)
Author:
chronos
Message:
  • Přidáno: Okno s nastavením parametrů komunikace.
  • Přidáno: Pamatování si nastavení voleb.
  • Přidáno: Nyní lze stahovat nové operace, výpis dle časového rozmezí a měsíční výpisy.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/UFormMain.pas

    r5 r6  
    11unit UFormMain;
    22
    3 {$mode objfpc}{$H+}
     3{$mode delphi{$H+}
    44
    55interface
     
    77uses
    88  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
    9   ExtCtrls, Menus, ActnList, httpsend, UFioAPI;
     9  ExtCtrls, Menus, ActnList, Spin, EditBtn, UFioAPI, URegistry, Registry,
     10  DateUtils;
    1011
    1112type
     
    1415
    1516  TFormMain = class(TForm)
    16     ADownload: TAction;
     17    ADownloadInterval: TAction;
     18    ADownloadMonthly: TAction;
     19    ASettings: TAction;
     20    ADownloadNew: TAction;
    1721    AExit: TAction;
    1822    AShow: TAction;
    1923    ActionList1: TActionList;
    2024    Button1: TButton;
     25    Button2: TButton;
     26    Button3: TButton;
     27    Button4: TButton;
     28    Button5: TButton;
     29    DateEditStart: TDateEdit;
     30    DateEditTo: TDateEdit;
     31    GroupBox1: TGroupBox;
     32    GroupBox2: TGroupBox;
     33    GroupBox3: TGroupBox;
    2134    ImageList1: TImageList;
    22     LabeledEdit1: TLabeledEdit;
    23     Memo1: TMemo;
     35    Label1: TLabel;
     36    Label2: TLabel;
     37    Label3: TLabel;
     38    Label4: TLabel;
    2439    MenuItem1: TMenuItem;
    2540    MenuItem2: TMenuItem;
    2641    PopupMenuTray: TPopupMenu;
     42    SpinEditYear: TSpinEdit;
     43    SpinEditId: TSpinEdit;
    2744    TrayIcon1: TTrayIcon;
    28     procedure ADownloadExecute(Sender: TObject);
     45    procedure ADownloadIntervalExecute(Sender: TObject);
     46    procedure ADownloadMonthlyExecute(Sender: TObject);
     47    procedure ADownloadNewExecute(Sender: TObject);
    2948    procedure AExitExecute(Sender: TObject);
     49    procedure ASettingsExecute(Sender: TObject);
    3050    procedure AShowExecute(Sender: TObject);
     51    procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
     52    procedure FormCreate(Sender: TObject);
    3153  private
    3254    { private declarations }
    3355  public
    34     { public declarations }
     56    RegistryContext: TRegistryContext;
     57    Token: string;
     58    Format: TFioDataFormat;
     59    TargetDirectory: string;
     60    ReportYear: Integer;
     61    ReportId: Integer;
     62    ReportTimeFrom: TDateTime;
     63    ReportTimeTo: TDateTime;
     64    procedure LoadInterface;
     65    procedure SaveInterface;
     66    procedure SaveToRegistry(Context: TRegistryContext);
     67    procedure LoadFromRegistry(Context: TRegistryContext);
    3568  end;
    3669
     
    4275{$R *.lfm}
    4376
     77uses
     78  UFormSettings;
     79
     80resourcestring
     81  SDownloadNotSuccess = 'StaÅŸení nebylo úspěšné';
     82
     83
    4484{ TFormMain }
    4585
     
    4989end;
    5090
     91procedure TFormMain.FormClose(Sender: TObject; var CloseAction: TCloseAction);
     92begin
     93  SaveInterface;
     94  SaveToRegistry(RegistryContext);
     95end;
     96
     97procedure TFormMain.FormCreate(Sender: TObject);
     98begin
     99  RegistryContext := RegContext(HKEY_CURRENT_USER, '\Software\Chronosoft\FioInfo');
     100  LoadFromRegistry(RegistryContext);
     101  LoadInterface;
     102end;
     103
     104procedure TFormMain.LoadInterface;
     105begin
     106  DateEditStart.Date := ReportTimeFrom;
     107  DateEditTo.Date := ReportTimeTo;
     108  SpinEditYear.Value := ReportYear;
     109  SpinEditId.Value := ReportId;
     110end;
     111
     112procedure TFormMain.SaveInterface;
     113begin
     114  ReportTimeFrom := DateEditStart.Date;
     115  ReportTimeTo := DateEditTo.Date;
     116  ReportYear := SpinEditYear.Value;
     117  ReportId := SpinEditId.Value;
     118end;
     119
     120procedure TFormMain.SaveToRegistry(Context: TRegistryContext);
     121begin
     122  with TRegistryEx.Create do
     123  try
     124    RootKey := Context.RootKey;
     125    OpenKey(Context.Key, True);
     126    WriteString('TargetDir', TargetDirectory);
     127    WriteInteger('DataFormat', Integer(Format));
     128    WriteString('Token', Token);
     129    WriteDate('ReportTimeFrom', ReportTimeFrom);
     130    WriteDateTime('ReportTimeTo', ReportTimeTo);
     131    WriteInteger('ReportYear', ReportYear);
     132    WriteInteger('ReportId', ReportId);
     133  finally
     134    Free;
     135  end;
     136end;
     137
     138procedure TFormMain.LoadFromRegistry(Context: TRegistryContext);
     139begin
     140  with TRegistryEx.Create do
     141  try
     142    RootKey := Context.RootKey;
     143    OpenKey(Context.Key, True);
     144    TargetDirectory := ReadStringWithDefault('TargetDir', ExtractFileDir(Application.ExeName));
     145    Format := TFioDataFormat(ReadIntegerWithDefault('DataFormat', Integer(dfXML)));
     146    Token := ReadStringWithDefault('Token', '');
     147    ReportTimeFrom := ReadDateTimeWithDefault('ReportTimeFrom', Now);
     148    ReportTimeTo := ReadDateTimeWithDefault('ReportTimeTo', Now);
     149    ReportYear := ReadIntegerWithDefault('ReportYear', YearOf(Now));
     150    ReportId := ReadIntegerWithDefault('ReportId', MonthOf(Now));
     151  finally
     152    Free;
     153  end;
     154end;
     155
    51156procedure TFormMain.AExitExecute(Sender: TObject);
    52157begin
    53   Application.Terminate;
    54 end;
    55 
    56 procedure TFormMain.ADownloadExecute(Sender: TObject);
     158  Close;
     159end;
     160
     161procedure TFormMain.ASettingsExecute(Sender: TObject);
     162begin
     163  FormSettings.Load;
     164  if FormSettings.ShowModal = mrOk then begin
     165    FormSettings.Save;
     166    SaveToRegistry(RegistryContext);
     167  end;
     168end;
     169
     170procedure TFormMain.ADownloadNewExecute(Sender: TObject);
    57171var
    58172  FioAPI: TFioAPI;
     173  List: TStringList;
    59174begin
    60175  FioAPI := TFioAPI.Create;
    61   try
    62     FioAPI.Token := LabeledEdit1.Text;
    63     FioAPI.Format := 'xml';
    64     FioAPI.DownloadInterval(EncodeDate(2013, 03, 01), EncodeDate(2013, 03, 14),
    65       Memo1.Lines);
     176  List := TStringList.Create;
     177  try
     178    FioAPI.Format := Format;
     179    FioAPI.Token := Token;
     180    if FioAPI.DownloadLast(List) then begin
     181      List.SaveToFile('VÃœpis ' + FormatDateTime('yyyy-mm-dd hh-nn-ss', Now) +
     182        ExtensionSeparator + DataFormatURL[FioAPI.Format]);
     183    end else ShowMessage(SDownloadNotSuccess);
    66184  finally
    67185    FioAPI.Free;
     186    List.Free;
     187  end;
     188end;
     189
     190procedure TFormMain.ADownloadMonthlyExecute(Sender: TObject);
     191var
     192  FioAPI: TFioAPI;
     193  List: TStringList;
     194begin
     195  FioAPI := TFioAPI.Create;
     196  List := TStringList.Create;
     197  try
     198    FioAPI.Format := Format;
     199    FioAPI.Token := Token;
     200    if FioAPI.DownloadMonthly(SpinEditYear.Value, SpinEditId.Value, List) then begin
     201      List.SaveToFile('VÃœpis měsíční ' + IntToStr(SpinEditYear.Value) +
     202        '-' + IntToStr(SpinEditId.Value) +
     203        ExtensionSeparator + DataFormatURL[FioAPI.Format]);
     204    end else ShowMessage(SDownloadNotSuccess);
     205  finally
     206    FioAPI.Free;
     207    List.Free;
     208  end;
     209end;
     210
     211procedure TFormMain.ADownloadIntervalExecute(Sender: TObject);
     212var
     213  FioAPI: TFioAPI;
     214  List: TStringList;
     215begin
     216  FioAPI := TFioAPI.Create;
     217  List := TStringList.Create;
     218  try
     219    FioAPI.Format := Format;
     220    FioAPI.Token := Token;
     221    if FioAPI.DownloadInterval(DateEditStart.Date, DateEditTo.Date, List) then begin
     222      List.SaveToFile('VÃœpis ' + FormatDateTime('yyyy-mm-dd', DateEditStart.Date) +
     223        ' ' + FormatDateTime('yyyy-mm-dd', DateEditTo.Date) +
     224        ExtensionSeparator + DataFormatURL[FioAPI.Format]);
     225    end else ShowMessage(SDownloadNotSuccess);
     226  finally
     227    FioAPI.Free;
     228    List.Free;
    68229  end;
    69230end;
Note: See TracChangeset for help on using the changeset viewer.