Re: [fpc-pascal] SqlDB TSQLQuery sqoAutoApplyUpdates does not work with ExecSQL
Am 15.12.2022 um 11:15 schrieb Michael Van Canneyt via fpc-pascal: On Thu, 15 Dec 2022, Andreas Frieß via fpc-pascal wrote: On MSSQL i use a stroed procedure to count a value in a table and use the following statement in Lazarus 1. procedureTForm1.BuExecuteClick(Sender:TObject); 2. var 3. SQL:string; 4. begin 5. Memo1.Clear; 6. SQL:=''; 7. SQL:='EXECUTE [dbo].[GetNextZaehler] :TagNr,:ProduktNr '; 8. Query.Active:=false; 9. Query.Clear; 10. Query.SQL.Text:=SQL; 11. Query.ParamByName('TagNr').AsInteger:=10; 12. Query.ParamByName('ProduktNr').AsInteger:=100; 13. Query.Options:=[sqoAutoApplyUpdates,sqoAutoCommit];// <-- AutoApplyUpdates doesnt work !? 14. try 15. Query.Open; 16. ifnot(Query.EOFandQuery.BOF)thenbegin 17. Memo1.Append('Wert='+Query.FieldByName('StueckZaehler').AsInteger.ToString); 18. end 19. elsebegin 20. Memo1.Append('Kein Wert'); 21. end; 22. //Query.ApplyUpdates; // <-- If i use this it works But you are not modifying anything or posting any data, why do you need an applyupdates ? What do you want ApplyUpdates to do ? 23. Query.Close; 24. except 25. on E:Exceptiondobegin 26. Memo1.Append('BuExecuteClick Exception =>'+E.Message); 27. end; 28. end; 29. end; 30. I must extra write an ApplyUpdates, because the sqoAutoApplyUpdates is ignored by the ExecSQL of the query. There is no relation between ExecSQL and applyupdates, so your solution is definitely faulty. An ApplyUpdates only makes sense in the context of the Post operation. No, if you use a stored procedure on the MSSQL Server there can be changes on tables. Without the ApplyUpdates these changes are not persitent. If you close and reopen the connection ALL is lost. With ApplyUpdates it works. If you test the SP in the MSSQL-Studio it works, with Lazarus without the ApplyUpdates not. Michael. ___ fpc-pascal maillist - fpc-pascal-pd4fty7x32k2wbthl531ywd2fqjk+...@public.gmane.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal Code for Stored Procedure on MS-SQL Server including the tabledefinition USE [CounterTestDB] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[B_AktStueck]( [TagNr] [int] NOT NULL, [Produkt] [int] NOT NULL, [Stueckzaehler] [int] NOT NULL, CONSTRAINT [PK_B_AktStueck] PRIMARY KEY CLUSTERED ( [TagNr] ASC, [Produkt] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO ALTER TABLE [dbo].[B_AktStueck] ADD CONSTRAINT [DF_B_AktStueck_TagNr] DEFAULT ((0)) FOR [TagNr] GO ALTER TABLE [dbo].[B_AktStueck] ADD CONSTRAINT [DF_B_AktStueck_Produkt] DEFAULT ((0)) FOR [Produkt] GO ALTER TABLE [dbo].[B_AktStueck] ADD CONSTRAINT [DF_B_AktStueck_Stueckzaehler] DEFAULT ((0)) FOR [Stueckzaehler] GO CREATE PROCEDURE [dbo].[GetNextZaehler] -- Add the parameters for the stored procedure here @TagNr integer, @ProduktNr integer AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; DECLARE @NewCnt integer Set @NewCnt = 0; BEGIN TRAN Tran1 SELECT TOP 1 @NewCnt = [StueckZaehler] FROM [B_AktStueck] WHERE ([TagNr] = @TagNr) AND ([Produkt] = @ProduktNr) ORDER BY [TagNr] DESC print ' old CounterValue ' print @NewCnt if @NewCnt = 0 begin print '-- No entry -> created ' INSERT INTO [B_AktStueck] ([TagNr], [Produkt], [StueckZaehler]) VALUES (@TagNr, @ProduktNr, @NewCnt) end UPDATE [B_AktStueck] SET [StueckZaehler] = [StueckZaehler] + 1 WHERE ([TagNr] = @TagNr) AND ([Produkt] = @ProduktNr) COMMIT TRAN Tran1 SELECT TOP 1 [StueckZaehler] FROM [B_AktStueck] WHERE ([TagNr] = @TagNr) AND ([Produkt] = @ProduktNr) ORDER BY [TagNr] DESC END GO ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
[fpc-pascal] SqlDB TSQLQuery sqoAutoApplyUpdates does not work with ExecSQL
On MSSQL i use a stroed procedure to count a value in a table and use the following statement in Lazarus 1. procedureTForm1.BuExecuteClick(Sender:TObject); 2. var 3. SQL:string; 4. begin 5. Memo1.Clear; 6. SQL:=''; 7. SQL:='EXECUTE [dbo].[GetNextZaehler] :TagNr,:ProduktNr '; 8. Query.Active:=false; 9. Query.Clear; 10. Query.SQL.Text:=SQL; 11. Query.ParamByName('TagNr').AsInteger:=10; 12. Query.ParamByName('ProduktNr').AsInteger:=100; 13. Query.Options:=[sqoAutoApplyUpdates,sqoAutoCommit];// <-- AutoApplyUpdates doesnt work !? 14. try 15. Query.Open; 16. ifnot(Query.EOFandQuery.BOF)thenbegin 17. Memo1.Append('Wert='+Query.FieldByName('StueckZaehler').AsInteger.ToString); 18. end 19. elsebegin 20. Memo1.Append('Kein Wert'); 21. end; 22. //Query.ApplyUpdates; // <-- If i use this it works 23. Query.Close; 24. except 25. on E:Exceptiondobegin 26. Memo1.Append('BuExecuteClick Exception =>'+E.Message); 27. end; 28. end; 29. end; 30. I must extra write an ApplyUpdates, because the sqoAutoApplyUpdates is ignored by the ExecSQL of the query. in sqldb.pp the following code is executed procedure TCustomSQLQuery.ExecSQL; begin CheckPrepare; try Execute; // Always retrieve rows affected FStatement.RowsAffected; If sqoAutoCommit in Options then SQLTransaction.Commit; finally CheckUnPrepare; // if not Prepared and (assigned(Database)) and (assigned(Cursor)) then SQLConnection.UnPrepareStatement(Cursor); end; end; I see the autocommit is configured, but sqoAutoApplyUpdates is missing. It hink it should be procedure TCustomSQLQuery.ExecSQL; begin CheckPrepare; try Execute; // Always retrieve rows affected FStatement.RowsAffected; If sqoAutoCommit in Options then SQLTransaction.Commit; If (sqoAutoApplyUpdates in Options) then ApplyUpdates; finally CheckUnPrepare; // if not Prepared and (assigned(Database)) and (assigned(Cursor)) then SQLConnection.UnPrepareStatement(Cursor); end; end; to get the correct behavior. Actual only Post and Delete fire the ApplyUpdates correct if sqoAutoApplyUpdates is activated. Should i file a Bug or is the actual behavior by design ?! (and cannot be changed) Andreas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] fpreport: can not use two ObjectLists as datasource in one report
Am 19.03.2021 um 13:34 schrieb Michael Van Canneyt via fpc-pascal: On Fri, 19 Mar 2021, Andreas Frieß via fpc-pascal wrote: If it is not a bug, so a featurerequest must be possible, because other reports can handle this without a problem. You can definitely submit a feature request. For severity, simply select 'feature'. Done: 0038639 , but i am not able to set the severity to 'feature' ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] fpreport: can not use two ObjectLists as datasource in one report
Am 19.03.2021 um 11:07 schrieb Michael Van Canneyt via fpc-pascal: On Fri, 19 Mar 2021, Michael Van Canneyt via fpc-pascal wrote: On Fri, 19 Mar 2021, Andreas Frieß via fpc-pascal wrote: Make a Report Preview -> only the contend of the first dataset is shown. I will file a bug No need, because this is as designed. For clarity: it's as designed, but that doesn't mean I won't consider changing the design. Just don't report it as a bug, because it is not. Michael. For the record, is this written downwhat is 'by design' ? For me it is a bug, because i can design a unuseable not working second Databand and i got no message. Nor Designtime, nor runtime. If it is not a bug, so a featurerequest must be possible, because other reports can handle this without a problem. Andreas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] fpreport: can not use two ObjectLists as datasource in one report
Am 18.03.2021 um 16:06 schrieb Andreas Frieß via fpc-pascal: Am 18.03.2021 um 14:24 schrieb Michael Van Canneyt via fpc-pascal: In that case, you must put lReportOLData2 on a separate design page. So: * Add a design page (page 1) to the report. * Do what you need with lReportOLData1 on this page. * Add a second design page (page 2) to the report * Do what you need with lReportOLData2 on this page. That should be it. Michael. It is a joke, every ReportData need a new page. The issue is, fpreport handle the Databand not correct. All have no Masterband set A ) If i bound no Data to a Databand, automatic the dataset of the parent (Page) is used -> Ok yet -> Dataloop of parent is used B ) If i bound Data to a Databand and it is the same like the parent (page) -> Ok -> Dataloop of parent is used C ) If i bound Data to a Databand and it is not the same like the parent -> Not Ok -> the first it is handled like B - it should use their own dataloop You can make this with a fake working. Make a dummy Databand with a Dataset with ONE entry only. Then bound the datasets as childdatasets and it works. You see the problem with the FPReport Designer too. - Make a new report - add two datasets (eg, csv with valid data) - add PageheaderBand, TitleBand and PageFooterband - add a Databand bound the Data1 to it - add a Databand bound the Data2 to it Make a Report Preview -> only the contend of the first dataset is shown. I will file a bug Andreas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] fpreport: can not use two ObjectLists as datasource in one report
If i load the design created by the demo in the FPReportDesigner i see the expected layout. DBBand01 should show the the data of the first Objectlist, DBBand02 the data from the second Objectlist. Actual changed demo included. Am 18.03.2021 um 14:13 schrieb Andreas Frieß via fpc-pascal: The expected layout is in the demo. Test.json Description: application/json <> ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] fpreport: can not use two ObjectLists as datasource in one report
Am 18.03.2021 um 14:24 schrieb Michael Van Canneyt via fpc-pascal: On Thu, 18 Mar 2021, Andreas Frieß via fpc-pascal wrote: The expected layout is in the demo. 'Expected layout' for me is a PDF, screenshot image of some finished document, showing what you want to see printed. I have data inside of ObjectsList=OL (here in the demo two) and i want to report one OL by one. This should be done continuos and each OL have their own layout. There is no master-detail. After one OL is finished the next should be processed and appended, if the one page is finished, it should continued on the next page. This works for lReportOLData1 ok, but lReportOLData2 is never used/seen/reported. In that case, you must put lReportOLData2 on a separate design page. So: * Add a design page (page 1) to the report. * Do what you need with lReportOLData1 on this page. * Add a second design page (page 2) to the report * Do what you need with lReportOLData2 on this page. That should be it. Michael. It is a joke, every ReportData need a new page. I have tested it yet in the FPReportdesigner with a new project. I can add two ReportDatasources on a new report (eg. csv) and add to a report two Databands and connect every Databand with a datasource. If i press preview, i see the first data shown and the second is missing. I thinks this is a issue in fpreport not to handle this correct. With LazReport i have done this without a problem. Andreas There ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] fpreport: can not use two ObjectLists as datasource in one report
The expected layout is in the demo. I have data inside of ObjectsList=OL (here in the demo two) and i want to report one OL by one. This should be done continuos and each OL have their own layout. There is no master-detail. After one OL is finished the next should be processed and appended, if the one page is finished, it should continued on the next page. This works for lReportOLData1 ok, but lReportOLData2 is never used/seen/reported. Andreas Am 18.03.2021 um 13:05 schrieb Michael Van Canneyt via fpc-pascal: . I can't advise you on what bands you must place memo and how to advance the 2nd data list, because for that I would need to know the expected layout. Michael. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
[fpc-pascal] fpreport: can not use two ObjectLists as datasource in one report
I have a sample attached to show the problem. I want in the report (created a runtime) to use more than one report datasource. I create a databand and connect this with a TFPReportObjectListData object. Each TFPReportObjectListData object works. But i want to have the data of the first, then the data of the other object. But i am not able to combine this two Data in one Report. ** DataBand := TFPReportDataBand.Create(p); DataBand.Name:= 'DBBand01'; DataBand.Layout.Height := 10; DataBand.Data:= lReportOLData1; // First Data ! This is shown Memo := TFPReportMemo.Create(DataBand); Memo.Layout.Left := 5; Memo.Layout.Top := 0; Memo.Layout.Width := 60; Memo.Layout.Height := 5; Memo.Font.Name := defaultFont; Memo.Text := '[InfoA] - [ValueA]'; DataBand2 := TFPReportDataBand.Create(p); DataBand2.Name:= 'DBBand02'; DataBand2.Layout.Height := 10; DataBand2.Data:= lReportOLData2; // Second Data ! This is not shown Memo2 := TFPReportMemo.Create(DataBand2); Memo2.Layout.Left := 5; Memo2.Layout.Top := 0; Memo2.Layout.Width := 60; Memo2.Layout.Height := 5; Memo2.Font.Name := defaultFont; Memo2.Text := '[InfoB] - [ValueB]'; *--* Any Hint for this problem to solve ? <> ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] fcl-report demos not working on windows10/64 with win64 compiled - Font Arial not found
Hello, both fonts are on the system, see attached textfile. It was the content of the Windows Font Directory only. But where in the sample is setting this path on a windows machine? No one. I have inserted a printout of the actual Font search path. The path (for windows) is NOT SET by default. This is the first issue. And where should the fallback found ? It can not be found too, because no path to the system font dir was set. - D:\data\lazdev\trunk64\fpcsrc\packages\fcl-report\demos>fcldemo -d jsondata -f pdf Fontspath start - D:\data\lazdev\trunk64\fpcsrc\packages\fcl-report\demos\/fonts/ Fontspath end - 0 : Name -> Afghanistan 0 : Population -> 31628000 0 : Name -> Afghanistan 0 : Population -> 31628000 0 : Name -> Afghanistan 0 : Population -> 31628000 Exception at 00010004C44F: EReportFontNotFound: Font not found: "Arial". Heap dump by heaptrc unit of "D:\data\lazdev\trunk64\fpcsrc\packages\fcl-report\demos\fcldemo.exe" 4895 memory blocks allocated : 1547952/1562136 4895 memory blocks freed : 1547952/1562136 0 unfreed memory blocks : 0 True heap size : 262144 (320 used in System startup) True free heap : 261824 D:\data\lazdev\trunk64\fpcsrc\packages\fcl-report\demos> Am 27.12.2019 um 23:03 schrieb Michael Van Canneyt: Hello, Can we please tackle one problem at a time ? The first problem is: Why is the "liberation sans" not found ? Once we've established that, we can check why the fallback is not found, and perhaps the error message. Michael. On Fri, 27 Dec 2019, Andreas Frieß wrote: Hello Michael, if the font is not found, why is there not the correct indication of the missing font ? The errormessage is in this case completly wrong. If a fallback should be possible, it should work and not mask the problem and create a false errormessage. Maybe the font liberation Sans is not on a Windows10/64 machine, if this is true i should see the message -> fpreport: Could not find the font in the font cache. Or -> EReportFontNotFound: >> Font not found: "Liberation Sans". Andreas Am 27.12.2019 um 16:00 schrieb Michael Van Canneyt: As I said: The demos do not use Arial on purpose. Probably it is used as a fallback somewhere. So the question is: why is the demo falling back to Arial ? It means the actually used font (Liberation Sans, line 74 of rptjson) is not found. Michael. On Fri, 27 Dec 2019, Andreas Frieß wrote: The reason (with ReadStandardfonts inserted): --- D:\data\lazdev\trunk64\fpcsrc\packages\fcl-report\demos>fcldemo -d jsondata -f pdf 0 : Name -> Afghanistan 0 : Population -> 31628000 0 : Name -> Afghanistan 0 : Population -> 31628000 0 : Name -> Afghanistan 0 : Population -> 31628000 1 : Name -> Albania 1 : Population -> 2894000 2 : Name -> Algeria 2 : Population -> 38934000 3 : Name -> Angola 3 : Population -> 24228000 some lines skipped . 155 : Name -> Zambia 155 : Population -> 15721000 156 : Name -> Zimbabwe 156 : Population -> 15246000 Exception at 0001000631E0: Exception: fpreport: Could not find the font in the font cache. Heap dump by heaptrc unit of "D:\data\lazdev\trunk64\fpcsrc\packages\fcl-report\demos\fcldemo.exe" 74069 memory blocks allocated : 101484860/101702272 74069 memory blocks freed : 101484860/101702272 0 unfreed memory blocks : 0 True heap size : 2785280 (320 used in System startup) True free heap : 2784960 D:\data\lazdev\trunk64\fpcsrc\packages\fcl-report\demos> - Original (without ReadStandardfonts) = Original -- D:\data\lazdev\trunk64\fpcsrc\packages\fcl-report\demos>fcldemo -d jsondata -f pdf 0 : Name -> Afghanistan 0 : Population -> 31628000 0 : Name -> Afghanistan 0 : Population -> 31628000 0 : Name -> Afghanistan 0 : Population -> 31628000 Exception at 00010004C36F: EReportFontNotFound: Font not found: "Arial". Heap dump by heaptrc unit of "D:\data\lazdev\trunk64\fpcsrc\packages\fcl-report\demos\fcldemo.exe" 4894 memory blocks allocated : 1547732/1561920 4894 memory blocks freed : 1547732/1561920 0 unfreed memory blocks : 0 True heap size : 262144 (320 used in System startup) True free heap : 261824 Michael Van Canneyt wrote: > > > On Fri, 27 Dec 2019, Andreas Frieß wrote: > > > I have now built the fcl-fpreport demos on win64 on a Windows10/64 > > machine. But the demo is not running (comandline with -d jsondata -f > > pdf), because the font Arial is not found. It looks like the demos > > didnt use the gTTFontCache.ReadStandardFonts and so the standard > > font is not found. > > Why do you think Arial is needed ? > > All demos explicitly use a font, but never Arial. That is why > gTTFontCache
[fpc-pascal] fcl-report demos - expressions - have problem with [RecNo]
There is more not working in the report demos. The expressionparser have problems with a simple [RecNo] D:\data\lazdev\trunk64\fpcsrc\packages\fcl-report\demos>fcldemo -d expressions Exception at 000100096E0D: EExprParser: Expected ( bracket at position 12, but got -. Heap dump by heaptrc unit of "D:\data\lazdev\trunk64\fpcsrc\packages\fcl-report\demos\fcldemo.exe" 1708 memory blocks allocated : 149127/155288 1708 memory blocks freed : 149127/155288 0 unfreed memory blocks : 0 True heap size : 196608 (256 used in System startup) True free heap : 196352 - ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
[fpc-pascal] Fwd: Re: fcl-report demos not working on windows10/64 with win64 compiled - Font Arial not found
Hello Michael, if the font is not found, why is there not the correct indication of the missing font ? The errormessage is in this case completly wrong. If a fallback should be possible, it should work and not mask the problem and create a false errormessage. Maybe the font liberation Sans is not on a Windows10/64 machine, if this is true i should see the message -> fpreport: Could not find the font in the font cache. Or -> EReportFontNotFound: >> Font not found: "Liberation Sans". Andreas Am 27.12.2019 um 16:00 schrieb Michael Van Canneyt: As I said: The demos do not use Arial on purpose. Probably it is used as a fallback somewhere. So the question is: why is the demo falling back to Arial ? It means the actually used font (Liberation Sans, line 74 of rptjson) is not found. Michael. On Fri, 27 Dec 2019, Andreas Frieß wrote: The reason (with ReadStandardfonts inserted): --- D:\data\lazdev\trunk64\fpcsrc\packages\fcl-report\demos>fcldemo -d jsondata -f pdf 0 : Name -> Afghanistan 0 : Population -> 31628000 0 : Name -> Afghanistan 0 : Population -> 31628000 0 : Name -> Afghanistan 0 : Population -> 31628000 1 : Name -> Albania 1 : Population -> 2894000 2 : Name -> Algeria 2 : Population -> 38934000 3 : Name -> Angola 3 : Population -> 24228000 some lines skipped . 155 : Name -> Zambia 155 : Population -> 15721000 156 : Name -> Zimbabwe 156 : Population -> 15246000 Exception at 0001000631E0: Exception: fpreport: Could not find the font in the font cache. Heap dump by heaptrc unit of "D:\data\lazdev\trunk64\fpcsrc\packages\fcl-report\demos\fcldemo.exe" 74069 memory blocks allocated : 101484860/101702272 74069 memory blocks freed : 101484860/101702272 0 unfreed memory blocks : 0 True heap size : 2785280 (320 used in System startup) True free heap : 2784960 D:\data\lazdev\trunk64\fpcsrc\packages\fcl-report\demos> - Original (without ReadStandardfonts) = Original -- D:\data\lazdev\trunk64\fpcsrc\packages\fcl-report\demos>fcldemo -d jsondata -f pdf 0 : Name -> Afghanistan 0 : Population -> 31628000 0 : Name -> Afghanistan 0 : Population -> 31628000 0 : Name -> Afghanistan 0 : Population -> 31628000 Exception at 00010004C36F: EReportFontNotFound: Font not found: "Arial". Heap dump by heaptrc unit of "D:\data\lazdev\trunk64\fpcsrc\packages\fcl-report\demos\fcldemo.exe" 4894 memory blocks allocated : 1547732/1561920 4894 memory blocks freed : 1547732/1561920 0 unfreed memory blocks : 0 True heap size : 262144 (320 used in System startup) True free heap : 261824 Michael Van Canneyt wrote: > > > On Fri, 27 Dec 2019, Andreas Frieß wrote: > > > I have now built the fcl-fpreport demos on win64 on a Windows10/64 > > machine. But the demo is not running (comandline with -d jsondata -f > > pdf), because the font Arial is not found. It looks like the demos > > didnt use the gTTFontCache.ReadStandardFonts and so the standard > > font is not found. > > Why do you think Arial is needed ? > > All demos explicitly use a font, but never Arial. That is why > gTTFontCache.ReadStandardFonts should not be necessary. > > Most demos use the LiberationSans font. Some use DejaVuSans or the > Ubuntu font. You must of course have these fonts installed in your > system. The LiberationSans font is included in the fonts subdirectory > of the demo dir. > > So the question is, why does not the demo program find these fonts ? > > Michael. > ___ > fpc-pascal maillist - fpc-pascal-pd4fty7x32k2wbthl531ywd2fqjk+...@public.gmane.org > https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal ___ fpc-pascal maillist - fpc-pascal-pd4fty7x32k2wbthl531ywd2fqjk+...@public.gmane.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] fcl-report demos not working on windows10/64 with win64 compiled - Font Arial not found
The reason (with ReadStandardfonts inserted): --- D:\data\lazdev\trunk64\fpcsrc\packages\fcl-report\demos>fcldemo -d jsondata -f pdf 0 : Name -> Afghanistan 0 : Population -> 31628000 0 : Name -> Afghanistan 0 : Population -> 31628000 0 : Name -> Afghanistan 0 : Population -> 31628000 1 : Name -> Albania 1 : Population -> 2894000 2 : Name -> Algeria 2 : Population -> 38934000 3 : Name -> Angola 3 : Population -> 24228000 some lines skipped . 155 : Name -> Zambia 155 : Population -> 15721000 156 : Name -> Zimbabwe 156 : Population -> 15246000 Exception at 0001000631E0: Exception: fpreport: Could not find the font in the font cache. Heap dump by heaptrc unit of "D:\data\lazdev\trunk64\fpcsrc\packages\fcl-report\demos\fcldemo.exe" 74069 memory blocks allocated : 101484860/101702272 74069 memory blocks freed : 101484860/101702272 0 unfreed memory blocks : 0 True heap size : 2785280 (320 used in System startup) True free heap : 2784960 D:\data\lazdev\trunk64\fpcsrc\packages\fcl-report\demos> - Original (without ReadStandardfonts) = Original -- D:\data\lazdev\trunk64\fpcsrc\packages\fcl-report\demos>fcldemo -d jsondata -f pdf 0 : Name -> Afghanistan 0 : Population -> 31628000 0 : Name -> Afghanistan 0 : Population -> 31628000 0 : Name -> Afghanistan 0 : Population -> 31628000 Exception at 00010004C36F: EReportFontNotFound: Font not found: "Arial". Heap dump by heaptrc unit of "D:\data\lazdev\trunk64\fpcsrc\packages\fcl-report\demos\fcldemo.exe" 4894 memory blocks allocated : 1547732/1561920 4894 memory blocks freed : 1547732/1561920 0 unfreed memory blocks : 0 True heap size : 262144 (320 used in System startup) True free heap : 261824 Michael Van Canneyt wrote: > > > On Fri, 27 Dec 2019, Andreas Frieß wrote: > > > I have now built the fcl-fpreport demos on win64 on a Windows10/64 > > machine. But the demo is not running (comandline with -d jsondata -f > > pdf), because the font Arial is not found. It looks like the demos > > didnt use the gTTFontCache.ReadStandardFonts and so the standard > > font is not found. > > Why do you think Arial is needed ? > > All demos explicitly use a font, but never Arial. That is why > gTTFontCache.ReadStandardFonts should not be necessary. > > Most demos use the LiberationSans font. Some use DejaVuSans or the > Ubuntu font. You must of course have these fonts installed in your > system. The LiberationSans font is included in the fonts subdirectory > of the demo dir. > > So the question is, why does not the demo program find these fonts ? > > Michael. > ___ > fpc-pascal maillist - fpc-pascal@lists.freepascal.org > https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
[fpc-pascal] fcl-report demos not working on windows10/64 with win64 compiled - Font Arial not found
I have now built the fcl-fpreport demos on win64 on a Windows10/64 machine. But the demo is not running (comandline with -d jsondata -f pdf), because the font Arial is not found. It looks like the demos didnt use the gTTFontCache.ReadStandardFonts and so the standard font is not found. If i change in udapp.pp procedure TReportRunner.RunReport(AFileName : string); ... // ask to generate the font cache gTTFontCache.ReadStandardFonts; // implies gTTFontCache.BuildFontCache; ... the report is now built, but the rendere of pdf in fpreportpdfexport.pp have the same issue with not find font arial. It is not logical for me. gTTFontCache is built correct for the report, why is the renderer not found the font ? Is the renderer use another fontcache ?! Andreas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] fcl-fpreport not built complete, missing fpreport.dom
Actual Debian x64 with fpc & lazarus from svn (with fpcupdeluxe) if you compile fpreportdesign.lpr on a x64 system (i386 works) windows and linux -- Hint: (11030) Start of reading config file D:\data\lazdev\work64ft\fpc\bin\x86_64-win64\fpc.cfg Hint: (11031) End of reading config file D:\data\lazdev\work64ft\fpc\bin\x86_64-win64\fpc.cfg Free Pascal Compiler version 3.2.0-beta-r43633 [2019/12/03] for x86_64 Copyright (c) 1993-2018 by Florian Klaempfl and others (1002) Target OS: Win64 for x64 (3104) Compiling lclfpreport.pas (3104) Compiling lclfpreportbuild.pp Fatal: (10024) Unit fpreportdom searched but fpreport found Fatal: (1018) Compilation aborted Error: D:\data\lazdev\work64ft\fpc\bin\x86_64-win64\ppcx64.exe returned an error exitcode -- if i activate show debug infos and show unit infos in fpc.cfg i see (FPREPORTDB) (10048) Adding dependency: FPREPORTDB depends on DB (FPREPORTDB) (10056) Finished loading unit FPREPORTDB (LCLFPREPORTBUILD) (10048) Adding dependency: LCLFPREPORTBUILD depends on FPREPORTDB (LCLFPREPORTBUILD) (10027) Load from LCLFPREPORTBUILD (interface) unit FPREPORTDOM (FPREPORTDOM) (10055) Loading unit FPREPORTDOM (FPREPORTDOM) (10002) PPU Name: /home/andi/data/lazdev/trunk/fpc/units/x86_64-linux/fcl-report/fpreport. ppu (FPREPORTDOM) (10005) PPU Time: 2019/12/23 14:53:48 (FPREPORTDOM) (10003) PPU Flags: 4224 (FPREPORTDOM) (10004) PPU Crc: 083B0CC3 (FPREPORTDOM) (10004) PPU Crc: 50A62B54 (intfc) (FPREPORTDOM) (10004) PPU Crc: 6196D615 (indc) (FPREPORTDOM) Number of definitions: 3227 (FPREPORTDOM) Number of symbols: 10461 Fatal: (10024) Unit fpreportdom searched but fpreport found Fatal: (1018) Compilation aborted Error: /home/andi/data/lazdev/trunk/fpc/bin/x86_64-linux/ppcx64 returned an error exitcode see https://forum.lazarus.freepascal.org/index.php/topic,47627.msg344017.htm l#msg344017 and https://forum.lazarus.freepascal.org/index.php/topic,47889.msg344069.html#msg344069 Andreas Michael Van Canneyt wrote: > > > On Thu, 26 Dec 2019, Andreas Frieß wrote: > > > I have get fpc from actual svn trunk for x64 on windows and x64 on > > linux (debian) and i have seen, some parts of fcl-fpreport are not > > built and i found no ppu's for it. maybe the makefiles for fpreport > > have to be refreshed. > > > > I am missing fpreportdom.pp compiled, there is no fpreportdom.ppu. > > In the fpmake.pp it is commented out !!! But, if you want to > > compile in (win64, linux) Lazarus the standalone designer and/or > > the fpreport package, the ppu is searched. So it breaks building of > > Lazarus. > > fpreportdom is not needed, has never been since it is in FPC. > > Where is it used ? > > Michael. > ___ > fpc-pascal maillist - fpc-pascal@lists.freepascal.org > https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
[fpc-pascal] fcl-fpreport not built complete, missing fpreport.dom
I have get fpc from actual svn trunk for x64 on windows and x64 on linux (debian) and i have seen, some parts of fcl-fpreport are not built and i found no ppu's for it. maybe the makefiles for fpreport have to be refreshed. I am missing fpreportdom.pp compiled, there is no fpreportdom.ppu. In the fpmake.pp it is commented out !!! But, if you want to compile in (win64, linux) Lazarus the standalone designer and/or the fpreport package, the ppu is searched. So it breaks building of Lazarus. Start compiling package fcl-report for target x86_64-win64. Compiling fcl-report\BuildUnit_fcl_report.pp Compiling .\fcl-report\src\fpreportstreamer.pp Compiling .\fcl-report\src\fpreporthtmlparser.pp Compiling .\fcl-report\src\fpreport.pp Compiling .\fcl-report\src\fpreportdata.pp Compiling .\fcl-report\src\fpreportdb.pp Compiling .\fcl-report\src\fpreportdatacsv.pp Compiling .\fcl-report\src\fpreportdatadbf.pp Compiling .\fcl-report\src\fpreportdatajson.pp Compiling .\fcl-report\src\fpreportdatasqldb.pp Compiling .\fcl-report\src\fpjsonreport.pp Compiling .\fcl-report\src\fplazreport.pp Compiling .\fcl-report\src\fpreportbarcode.pp Compiling .\fcl-report\src\fpreportjson.pp Compiling .\fcl-report\src\fpextfuncs.pp Compiling .\fcl-report\src\fpreportcontnr.pp Compiling .\fcl-report\src\fpreportcanvashelper.pp Compiling .\fcl-report\src\fpreporthtmlutil.pp Compiling .\fcl-report\src\fpreportpdfexport.pp Compiling .\fcl-report\src\fpreporthtmlexport.pp Compiling .\fcl-report\src\fpreportfpimageexport.pp Compiling .\fcl-report\src\fpreportqrcode.pp Should i file a bug for FPC ? Andreas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
[fpc-pascal] Backport of Bugfix 0031517 possible
Hello, it looks the fix Bug 0031517 is more and more visible, if you compile an actual stable Lazarus with the actual stable fpc. You see with a Lazarus with more packages, the Error - No memory left - rises. See e.g. the thread http://forum.lazarus.freepascal.org/index.php/topic,40351.0.html about this. My question is, is it possible to make a backport of this fix? Should i reopen the Bugreport oder create a new one ? The soloution is now one year in trunk and i have seen no problems with it. Andreas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] fpreport rangeerrors with TFPReportColor
Depending on the Information of the list here i have created some patches and an Bug-Report https://bugs.freepascal.org/view.php?id=33217 The heats of my changes is a more typesafe conversion and to use QWord for the JSON. So nothing is broken and it rangechecksafe now. - a small snippet function QWordToReportColor(AQWord: QWord):TFPReportColor; begin Result := TFPReportColor(AQWord and $); end; The second, i foung a not created Font, if you are not using Parent-Fonts. Also fixed. Thx to all who have some things more clear to me AND why. Andreas Am 22.02.2018 um 08:05 schrieb Michael Van Canneyt: On Thu, 22 Feb 2018, Andreas Frieß wrote: Another possible Problem with the definition TFPColor (fpc) record with word <> TColor (lazarus) -$7FFF-1..$7FFF <> TFPReportColor (fpreport) UInt32 So you cannot use in Lazarus the 'well known' TColors. With TColor it is also Delphi compatible. Using TColor is not an option, it is windows specific and depeds on Graphics. Michael. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] fpreport rangeerrors with TFPReportColor
Another possible Problem with the definition TFPColor (fpc) record with word <> TColor (lazarus) -$7FFF-1..$7FFF <> TFPReportColor (fpreport) UInt32 So you cannot use in Lazarus the 'well known' TColors. With TColor it is also Delphi compatible. If the defines are Lazarus compatible. It works for both systems. I can make a patch if needed. But the teams have to IMHO to decide the best way :-) Andreas Am 21.02.2018 um 23:53 schrieb Michael Van Canneyt: On Wed, 21 Feb 2018, Mattias Gaertner wrote: On Wed, 21 Feb 2018 19:54:55 + Graeme Geldenhuys wrote: [...] > Because UInt32 is not a JSON dataformat. Well, then I'll say that FPC's JSON needs to be extended to support UInt32, as it is a perfectly valid Object Pascal data type. How should FPC's JSON support something, that is not supported by JSON? The problem is not in JSON. Native Javascript supports 2^52 (or so) integer values, so every UInt32 value should fit if written properly. FPC's JSON supports Int64 and even QWord in FPC, so a UInt32 is definitely supported. If the colors (a UInt32) is currently written as Longint (signed 32-bit) then of course a range check will follow, and this needs to be fixed. The easiest solution is simply to read/write it as Int64. Michael. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] fpreport rangeerrors with TFPReportColor
Andreas Frieß wrote: > when i compile in Lazarus the Reportdesigner with activated > RangeCheck it gives a lot of runtimeerror with rangeerrors. > For explanation what i mean in my previous post, UInt32 is not an integer or JSON compatible size (and actual rangecheck unsafe). ANdreas -- in systemh.inc maxLongint = $7fff; in objectpas.pp const MaxInt = MaxLongint; type Integer = longint; in fpreport.pp TFPReportColor = type UInt32; in systemh.inc Cardinal = LongWord; ... UInt32 = Cardinal; in fpreport.pp const { The format is always RRGGBB (Red, Green, Blue) - no alpha channel } clNone = TFPReportColor($8000); // a special condition: $80 00 00 00 .. AWriter.WriteInteger('FontColor', Font.Color); . Font.Color := AReader.ReadInteger('FontColor', Font.Color); .. in fpReportStreamer.pp function TFPReportJSONStreamer.ReadInteger(AName: String; ADefault: Integer): Integer; var d: TJSONData; begin d := FindChild(AName) as TJSONData; if d = nil then Result := ADefault else begin if d.JSONType = jtNumber then Result := d.AsInt64 else Result := ADefault; end; end; ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
[fpc-pascal] fpreport rangeerrors with TFPReportColor
when i compile in Lazarus the Reportdesigner with activated RangeCheck it gives a lot of runtimeerror with rangeerrors. The definition is TFPReportColor = type UInt32; Loading and saving in JSON is done by function ReadInteger(AName: String; ADefault: Integer): Integer; override; function WriteInteger(AName: String; ADefault: Integer): Integer; override; internally of write and read there is a cast from d.AsInt64 to integer. This means you have at reading a AsInt64 -> Integer -> UInt32. Actual i have a value of 2147483648 ($8000) wich make a rangecheckerror :-) Should the definition for TFPReportColor not better TFPColor ( I KNOW THE DIFFENCES) or QWord with the according routines. Because UInt32 is not a JSON dataformat. Integer seems to be to small, so QWord fits this better. TFPColor is more FPC-Compatible (with the overhead of the needed conversions). I am wrong ? Andreas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] googleapiconv raises ERESTAPI error
I think the same problem will appear in Lazarus with the gooleapis components (and examples), because they based on the fpc. ... Exception-Class >>ERESTAPI<< TTasklist: unsopported array element type Andreas Am 06.11.2016 um 16:00 schrieb Michael Van Canneyt: On Sun, 6 Nov 2016, Andreas Frieß wrote: Hello, i will try to use the googleapiconverter from the gooleapi examples directory. I got some excepions, so i reduced the problem to a generic one. I use the trunc of FPC and compile the googleapiconv without a problem (inside lazarus). If i run it direct from commandline with -A -k ig ot the following infos. The stored json file look wellformed and ok. > C:\Data\development\fpctrunk\fpc\packages\googleapi\examples\generator > >googleapiconv.exe -A -k Exception at 0043DF98: ERESTAPI: > Unknown class : "¼F ÿ¼F ý¼F »F °│F T┤FTTypeDef ê█E > TTypeDefä`F ÉF googlediscoverytopas TRestMethodParam > ê█E ÿ ê█E á TRestMethodParams É". Any hint 4 me ? There has been a change in the RTTI, which has not yet been corrected in the restbase unit. This needs to be done still, it is on my TODO list. Michael. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
[fpc-pascal] googleapiconv raises ERESTAPI error
Hello, i will try to use the googleapiconverter from the gooleapi examples directory. I got some excepions, so i reduced the problem to a generic one. I use the trunc of FPC and compile the googleapiconv without a problem (inside lazarus). If i run it direct from commandline with -A -k ig ot the following infos. The stored json file look wellformed and ok. > C:\Data\development\fpctrunk\fpc\packages\googleapi\examples\generator > >googleapiconv.exe -A -k Exception at 0043DF98: ERESTAPI: > Unknown class : "¼F ÿ¼F ý¼F »F °│F T┤FTTypeDef ê█E > TTypeDefä`F ÉF googlediscoverytopas TRestMethodParam > ê█E ÿ ê█E á TRestMethodParams É". Any hint 4 me ? Andreas ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
[fpc-pascal] html and chm help (lcl, fcl) translation in other languages ?
I know, that this this is not a theme yet. But for a lot of people it is interesting to have help in their foreign language. When i have more knowledge about the process of generating and using the helpsystem in fpc way of working, i will use a seperate directory and changed nameschema. THX for your help Felipe Monteiro de Carvalho schrieb: I think you can work on that even if there isn't yet a decision about your question. If it turns out to be different from what you made, just rename the files. I would suggest a new directory. Too many files in the same directory make it hard to find things. Andreas Frieß schrieb: when i search for the lazarus help system with html and the comming chm, i didn't find information about the creating this, for other languages. It is not clear for me, how to handle this. The study of the structure of the svn and the search inside of the wiki and the docs didn't make it clear for me 1st Question: Should this handled by extension of the xml-files like English: actnlist.xml German: actnlist.de.xml or creating a new 'docs-de' (beside the current 'docs')path ? i found only, fpdoc should be able to handle some languages by using an comandlineoption. 2nd Question: Are there more information about this theme available, or a designguide? (I know the source of the fcl/lcl documentaion) It is interesting for me, because i will spend time in documentation (in german for germans) for the project. I see with the LazInfos (in German only) the people want documentation in their native language. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
[fpc-pascal] html and chm help (lcl, fcl) translation in other languages ?
when i search for the lazarus help system with html and the comming chm, i didn't find information about the creating this, for other languages. It is not clear for me, how to handle this. The study of the structure of the svn and the search inside of the wiki and the docs didn't make it clear for me 1st Question: Should this handled by extension of the xml-files like English: actnlist.xml German: actnlist.de.xml or creating a new 'docs-de' (beside the current 'docs')path ? i found only, fpdoc should be able to handle some languages by using an comandlineoption. 2nd Question: Are there more information about this theme available, or a designguide? (I know the source of the fcl/lcl documentaion) It is interesting for me, because i will spend time in documentation (in german for germans) for the project. I see with the LazInfos (in German only) the people want documentation in their native language. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal