Autor Téma: FastReport -> DataSet mám nil. Nevidím dôvod  (Přečteno 245 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 3519
  • Karma: 35
    • Verze Delphi: XE7 professional
Poor
Rated 1 time
Už sa tým trápim poriadne dlho. Neviem zistiť kde sa ten DataSet ničí/nastavuje na nil. Prikladám kód, včítane celého volania funkcií
Kód: Delphi [Vybrat]
  1. constructor TPrintMeterType.Create;
  2.   FSubDir := 'Register\';
  3.   inherited;
  4.     constructor TPrintFRBase.Create;
  5.       CreateFrxComp;
  6.         procedure TPrintFRBase.CreateFrxComp;
  7.          ……….
  8.          FqryBase := QryRead(nil);
  9.          FqryBase.SQL.Text := '…';
  10.          FfrxBaseDBds := TfrxDBDataset.Create(nil);
  11.          FfrxBaseDBds.DataSet := FqryBase;
  12.          FfrxBaseReport := TfrxReport.Create(nil);
  13.          FfrxBaseReport.DataSet := FfrxBaseDBds;
  14.  
  15.          FQry := QryRead(Nil);
  16.          FfrxDBds := TfrxDBDataset.Create(nil);
  17.          FfrxDBds.DataSet := FQry;
  18.          FfrxReport := TfrxReport.Create(nil);
  19.          FfrxReport.DataSet := FfrxDBds;
  20.          FfrxReport.PreviewOptions.Maximized := False;
  21.          FfrxReport.OnGetValue := SetValue;
  22.        end;
  23.       GetReportDir;
  24.       SQLText;
  25.         procedure TPrintMeterType.SQLText;
  26.           FQryText := '…';
  27.         end;
  28.       GetSQLText;
  29.         procedure TPrintFRBase.GetSQLText;
  30.           FQry.SQL.Text := FQryText;
  31.         end;
  32.       GetReportFile;
  33.         procedure TPrintMeterType.GetReportFile;
  34.           FReportFile := 'MeterTypes.fr3';
  35.           FReportTitle := 'Typy meračov';
  36.           inherited;
  37.             procedure TPrintFRBase.GetReportFile;
  38.               FfrxReport.LoadFromFile(FReportDir + FReportFile);
  39.             end;
  40.         end;
  41.     end;
  42.   SetUserNames;
  43.     procedure TPrintMeterType.SetUserNames;
  44.       inherited;
  45.         procedure TPrintFRBase.SetUserNames;
  46.           FfrxBaseDBds.UserName := 'FOC';
  47.         end;
  48.       FfrxDBds.UserName := 'Prime';
  49.     end;
  50.   ShowReport;
  51.     procedure TPrintFRBase.ShowReport;
  52.       Assert(FQry.SQL.Text <> '', 'FQry.SQL.Text is empty');
  53.       Assert(FfrxReport.DataSet <> nil, 'FfrxReport.DataSet is nil');  // Tu mi to padne
  54.  
  55.       if DatasetIstEmty then        Exit;
  56.       FfrxReport.Variables.Clear;
  57.       FfrxReport.ReportOptions.Name := FReportTitle;  // May be empty.
  58.  
  59.       try          FfrxReport.PrepareReport(True);
  60.       try        FfrxReport.ShowReport(True);
  61.  
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 3519
  • Karma: 35
    • Verze Delphi: XE7 professional
Re:FastReport -> DataSet mám nil. Nevidím dôvod
« Odpověď #1 kdy: 11-08-2018, 15:02:13 »
Ešte pridávam poznámku, že mi to fungovalo. Len so začal robiť zmeny v zmysle, že čo sa dá, to dávam čím vyššie - do predka.
Text som kopíroval počas krokovania.
« Poslední změna: 11-08-2018, 15:03:51 od Stanislav Hruška »
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 3519
  • Karma: 35
    • Verze Delphi: XE7 professional
Re:FastReport -> DataSet mám nil. Nevidím dôvod
« Odpověď #2 kdy: 11-08-2018, 15:52:23 »
Ale FfrxBaseReport.DataSet <> nil ???  Tvorím a obsluhujem ich rovnako. To už celkom nechápem. FfrxBaseReport je parent report pre FfrxReport.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 3519
  • Karma: 35
    • Verze Delphi: XE7 professional
Re:FastReport -> DataSet mám nil. Nevidím dôvod
« Odpověď #3 kdy: 11-08-2018, 19:38:36 »
Už som na to prišiel. Pri tvorbe Ffrx... musím dať vlastníka. Ak je nil, tak je problém. On si to v tom vlastníkovi skenuje a nastaví čo treba.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Jméno: E-mail:
Ověření:
Křestní jméno zpěváka Gotta: