Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠœΠΈΡ€ InterBase. АрхитСктура, администрированиС ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π² InterBase/FireBird/YaffilΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 42

Автор А Ковязин

frReport.LoadFromFile(OpenDialog.FileName);

frReport.PrepareReport;

frReport.ShowPreparedReport;

GoodsDataSet.DetailConditions :=

GoodsDataSet.DetailConditions + [dcWaitEndMasterScroll] ;

end;

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΌΠ΅Ρ‚ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ "ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ", ΠΎΠ½ смоТСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ любой шаблон ΠΎΡ‚Ρ‡Π΅Ρ‚Π° ΠΈ вывСсти Π΅Π³ΠΎ Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ. Учитывая, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π° ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ (ΠΈΠ»ΠΈ Π²Ρ‹, ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ количСство самых Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² Π±Π΅Π· нСобходимости измСнСния основного ΠΊΠΎΠ΄Π° прилоТСния, становится ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ прСимущСство использования FIBPlus совмСстно с FastReport. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ Π² run-time доступна Π² FastReport ΠΈ для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π² частности с IBX, ΠΎΠ΄Π½Π°ΠΊΠΎ FIBPlus Π΄Π΅Π»Π°Π΅Ρ‚ эту Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎΠΉ Π·Π° счСт использования макросов. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ макросов ΠΌΡ‹ рассмотрим Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅, Π° сСйчас лишь продСмонстрируСм, ΠΊΠ°ΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ макросы, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹.

Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ "pricel.frf" Π² "price2.frf", ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ "price2.frf" для рСдактирования Π² Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π½Π° Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡƒΡŽ страницу. Π’Π°ΠΌ ΠΌΡ‹ помСстим Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹: ComboBoxl, Editl, Labell ΠΈ Buttonl (рис. 2.46).





Рис 2.46. Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ Π΄ΠΈΠ°Π»ΠΎΠ³Π°, встроСнного Π² шаблон ΠΎΡ‚Ρ‡Π΅Ρ‚Π°

ИзмСним запрос Π² Query.SQL:

SELECT "Categories"."Name", "Categories"."GoodsCount"

FROM "Categories"

WHERE "Categories"."GoodsCount" @COND

COND Π² Π΄Π°Π½Π½ΠΎΠΌ случаС являСтся макросом FIBPlus, ΠΈ вмСсто Π½Π΅Π³ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ любой тСкст. Удобство ΠΆΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ макросы Π² FIBPlus Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, FastReport Ρ‚ΠΎΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π΅Π»ΠΎ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ самому ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ условия для Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ прайс-листа. Π—Π°ΠΏΠΎΠ»Π½ΠΈΠΌ ComboBoxl.Items символами сравнСния:

>

<

>=

< =

<>

=

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ достаточно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ FastReport, ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ "ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ" вмСсто нашСго макроса-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Для этого Π½Π°Π΄ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ свойство Params Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Query (рис. 2.47).





Рис 2.47. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для получСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ макроса COND

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρƒ нас ΠΎΠ΄ΠΈΠ½: COND. Π•Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· Π΄Π²ΡƒΡ… частСй: Π·Π½Π°ΠΊΠ° сравнСния ΠΈ значСния, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»Π΅ "GoodsCount". Π§Ρ‚ΠΎ ΠΈ Π±Ρ‹Π»ΠΎ сдСлано, ΠΊΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· рисунка Π²Ρ‹ΡˆΠ΅. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ запускС ΠΎΡ‚Ρ‡Π΅Ρ‚Π° ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ условиС для Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ (рис. 2.48).





Рис 2.48. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Π΄ΠΈΠ°Π»ΠΎΠ³ Π²ΠΎ врСмя получСния ΠΎΡ‚Ρ‡Π΅Ρ‚Π°

А Π½Π° рис. 2.49 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠΉΡΡ ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΎ катСгориях Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΠΎΠ»Π΅Π΅ сСми Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΉ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ².

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ€Π΅Π°ΠΊΡ†ΠΈΡŽ Π½Π° Ρ‰Π΅Π»Ρ‡ΠΎΠΊ ΠΏΠΎ любой ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎ Π½Π΅ΠΌΡƒ выводился ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π°Ρ… ΠΈΠ· этой ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ. Для этого Ρƒ всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² FastReport Π΅ΡΡ‚ΡŒ свойство Tag: String. Π’ ΠΎΠΊΠ½Π΅ preview ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ ΠΏΡ€ΠΈ этом выполнится ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ дСйствиС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, построится Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΡ‚Ρ‡Π΅Ρ‚). ЦСль свойства - ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ распознаваниС Π½Π°ΠΆΠ°Ρ‚ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. НапримСр, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ тСкст "12.25Ρ€", ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ идСнтификация Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°. Но Π² свойство Tag ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹Π» ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ тСкст "12.25Ρ€", Π½ΠΎΠΌΠ΅Ρ€ строки ΠΈΠ»ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅ ΠΈ ΠΏΡ€. ΠŸΡ€ΠΈ этом Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ событиС TfrReport.OnObjectClick.





Рис 2.49. Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ΅Π³ΠΎΡΡ динамичСского ΠΎΡ‚Ρ‡Π΅Ρ‚Π°

Π›ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π΅Ρ‚Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΡ‚Ρ‡Π΅Ρ‚Π° Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ frReport, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ Π»Π΅ΠΆΠΈΡ‚ Ρƒ нас Π½Π° Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ прилоТСния. Однако саму Ρ„ΠΎΡ€ΠΌΡƒ этого ΠΎΡ‚Ρ‡Π΅Ρ‚Π° Π½Π°Π΄ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π° дискС. Π€ΠΎΡ€ΠΌΠ° ΠΎΡ‚Ρ‡Π΅Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² нашСм ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅ master-detail (рис. 2.50).

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Π»ΠΎΠΆΠΈΡ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ Π½Π° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²:

SELECT "Categories"."Name", "Categories"."GoodsCount"

FROM "Categories"

WHERE "Categories"." Name " @NAME

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠΊΠ°ΠΆΠ΅ΠΌ FastReport, ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ слСдуСт ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ вмСсто макроса "@NAME" Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ Query. Π—Π΄Π΅ΡΡŒ Π½Π°ΠΌ придСтся Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ "ΡΡ…ΠΈΡ‚Ρ€ΠΈΡ‚ΡŒ" ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ этому макросу Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ FastReport. НазовСм эту ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Va .

К самой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΡ‹ присвоим Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΠΌ эту Ρ„ΠΎΡ€ΠΌΡƒ ΠΎΡ‚Ρ‡Π΅Ρ‚Π° ΠΈΠ· Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π° Π½Π° дискС Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ "detailed.frf".





Рис 2.50. Π¨Π°Π±Π»ΠΎΠ½ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Ρ‡Π΅Ρ‚Π°

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для TfrReport событиС OnObjectClick ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

procedure Tforml.frReportObjectClick(View: TfrView);

var str: string;

begin

str .= View.Memo.Text;

frReport.LoadFromFile('detailed.frf')

frReportl.Dictionary.Variables['Varl'] := str;

if frReport.PrepareReport then begin

frReport.OnObjectClick := nil; { Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ Ρ‰Π΅Π»Ρ‡ΠΊΠ΅ Π½Π° Π΄Π΅Ρ‚Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅ Π½Π΅ показывался Π΄Π΅Ρ‚Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΎΡ‚Ρ‡Π΅Ρ‚ }

frReport.ShowPreparedReport;

frReport.OnObjectClick := frReportObjectClick; { Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ событиС для Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π΅Ρ‚Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΡ‚Ρ‡Π΅Ρ‚Π° }

frReport.ShowReport;

end;

end;

НаиболСС ΠΏΠΎΠ»Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, описаниС всСх возмоТностСй, Π° Ρ‚Π°ΠΊΠΆΠ΅ послСдниС вСрсии FastReport ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ Web-сайтС http://www.fastreport.ru.

ИспользованиС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… инструмСнтов Π² design-time: FIBPIus Tools

ΠšΡ€ΠΎΠΌΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° FIBPIus Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ряд Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… инструмСнтов - FIBPIus Tools, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ возмоТности срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΈ эффСктивного использования FIBPIus.

Установка FIBPIus Tools

FIBPIus Tools - это экспСрты для Delphi ΠΈ C++ Builder, ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π² Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΌ, скомпилированном Π²ΠΈΠ΄Π΅, поэтому для ΠΈΡ… установки Π² срСдС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚.

На ΠΌΠΎΠΌΠ΅Π½Ρ‚ создания ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ‹ FIBPIus Tools для Borland Delphi 3-7 ΠΈ Borland C++ Builder 5-6. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ вСрсии ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² Borland, ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Π²Π°ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹Π΅ вСрсии FIBPIus Tools Π½Π° сайтС http://www.tlbplus.net/.

Рассмотрим установку Π² срСдС Delphi (рис. 2.51). НСобходимо Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ основного мСню Components -> Install Packages.





Рис 2.51. Установка FIBPIusTools Π² срСду Delphi

НаТмитС Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Add ΠΈ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ вашСй вСрсии Delphi ΠΏΠ°ΠΊΠ΅Ρ‚ (Ρ‚Π°Π±Π». 2.1).

Π’Π°Π±Π» 2.1. FIBPlusTools: ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ вСрсии Delphi/C++ Builder

ВСрсия Delphi/C++ Builder

НазваниС ΠΏΠ°ΠΊΠ΅Ρ‚Π° FIBPIus Tools

Delphi 3

PFIBPIusTools3.dpl

Delphi 4

pFIBPIusTools4.bpl

Delphi 5

pFIBPIusToolsS.bpl

Delphi 6

PFIBPIusTools6.bpl

Delphi 7

PFIBPIusTools7.bpl

C++ Builder 5

PFIBPIusTools_CB5.bpl

C++ Builder 6

pFIBPIusTools_CB6.bpl

ПослС установки Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ FIBPIus Π² основном мСню Delphi (рис. 2.52).





Рис 2.52. МСню FIBPIus Tools

ПослСдний ΠΏΡƒΠ½ΠΊΡ‚ Π² мСню FIBPIus фактичСски Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚, Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ установлСнной вСрсии.

Preferences

ΠŸΡƒΠ½ΠΊΡ‚ Preferences позволяСт Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ основных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (рис. 2.53).

На ΠΏΠ΅Ρ€Π²ΠΎΠΉ страницС Π΄ΠΈΠ°Π»ΠΎΠ³Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для свойств Options, PrepareOptions ΠΈ DetailsConditions для всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² класса TpFIBDataSet. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ для этих свойств. НапримСр, Ссли Π²Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Ρ„Π»Π°ΠΆΠΎΠΊ SetRequiredFields Ρ‚ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TpFIBDataSet Π½Π° Π²Π°ΡˆΡƒ Ρ„ΠΎΡ€ΠΌΡƒ, Π΅Π΅ свойство PrepareOptions Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ pfSetRequiredFields. НаиболСС Π²Π°ΠΆΠ½Ρ‹ΠΌ являСтся Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ умолчания, Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ Π² FIBPIus Tools Preferences, Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π²ΠΎ всСх прилоТСниях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ. Однако Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ умолчания. Π’ΠΎ Π΅ΡΡ‚ΡŒ Ссли послС помСщСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ свойства, Ρ‚ΠΎ это Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ коснСтся Preferences. Π’Π°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Preferences Π½Π΅ коснСтся Ρ‚Π΅Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ значСния свойств ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ Π·Π°Π΄Π°Π½Ρ‹.





Рис. 2.53. Π”ΠΈΠ°Π»ΠΎΠ³ настройки ΠΎΠΏΡ†ΠΈΠΉ TpFIBDataSet Π² design-time.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° поля "Prefix Generator name" ΠΈ "Suffix Generator name". Π—Π°Π΄Π°Π² ΠΈΡ… значСния, Π²Ρ‹ смоТСтС Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ для Π½Π°Π·Π²Π°Π½ΠΈΠΉ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π² свойствС AutoUpdateOptions Ρƒ TpFIBDataSet. Имя Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π² AutoUpdateOptions гСнСрируСтся ΠΈΠ· названия Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (UpdateTable), прСфикса ΠΈ суффикса.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ страницы Π΄ΠΈΠ°Π»ΠΎΠ³Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ свойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² TpFIBDataBase, TpFIBTransaction ΠΈ TpFIBQuery.

Π’ частности, Ссли Π²Ρ‹ всСгда Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Π½ΠΎΠ²Ρ‹ΠΌΠΈ вСрсиями InterBase, Ρ‚. Π΅. Π‘ вСрсиями 6 ΠΈ Π±ΠΎΠ»Π΅Π΅ (Π° Ρ‚Π°ΠΊΠΆΠ΅ Firebird), Ρ‚ΠΎ ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Π²Π°ΠΌ Π·Π°Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ SQL Dialect Π½Π° Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ΅ TpFIBDatabase Ρ€Π°Π²Π½Ρ‹ΠΌ 3, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ это свойство Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

SQL Navigator

Π­Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ интСрСсная Ρ‡Π°ΡΡ‚ΡŒ FIBPlus Tools, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰Π°Ρ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ² Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°Ρ…. ЀактичСски это инструмСнт Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ SQL Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ†Π΅Π»ΠΎΠ³ΠΎ прилоТСния (рис. 2.54):





Рис 2.54. Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ SQL Navigator

SQLNavigator позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° написании ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ SQL-ΠΊΠΎΠ΄Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ Scan all forms of active project. SQLNavigator ΠΏΠ΅Ρ€Π΅Π±Π΅Ρ€Π΅Ρ‚ всС Ρ„ΠΎΡ€ΠΌΡ‹ прилоТСния ΠΈ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ ΠΈΠ· Π½ΠΈΡ… Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ FIBPlus для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с SQL: TpFIBDataSet, TpFIBQuery, TpFIBUpdateObject ΠΈ TpFffiStoredProc. НаТмитС Π² спискС Π½Π° Π»ΡŽΠ±ΡƒΡŽ ΠΈΠ· ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ. Бписок справа Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Π½Π° этой Ρ„ΠΎΡ€ΠΌΠ΅. НаТатиС Π½Π° любой ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΌ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ свойства, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТится SQL-ΠΊΠΎΠ΄. Для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² класса TpFIBDataSet Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹ свойства: SelectSQL, InsertSQL, UpdateSQL, DeleteSQL ΠΈ RefreshSQL Для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² TpFIBQuery, TpFIBUpdateObject ΠΈ TpFIBStoiedPioc Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства SQL