Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2020
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.65 KB | None | 0 0
  1. var
  2. SpecNazwa: string;
  3. numer: integer;
  4. detailCount: integer;
  5. first: boolean;
  6. wys:double;
  7. m43OrygL,
  8. m45OrygL,
  9. m41OrygW,
  10. m42OrygW,
  11. m43OrygW,
  12. m44OrygW,
  13. m45OrygW,
  14. m80OrygL,
  15. m86OrygL,
  16. m86OrygW,
  17. m87OrygW,
  18. m87OrygL,
  19. mDataSOrygL,
  20. m82OrygW,
  21. m81OrygW,
  22. m80OrygW,
  23. m91OrygW,
  24. m91OrygL,
  25. m92OrygW,
  26. m92OrygL,
  27. mOcenaSOrygW,
  28. mDataSOrygW,
  29. MasterData7OrygW,
  30. MasterData9OrygW,
  31. MasterData4OrygW,
  32. MasterData10OrygW: Extended;
  33.  
  34. CONST
  35. MAX_LICZBA_REKORDOW_NA_PIERWSZEJ_STRONIE = 25;
  36. MAX_LICZBA_REKORDOW_NA_KOLEJNYCH_STRONACH = 31;
  37.  
  38. procedure FixSql(query: TfrxIBXQuery; id :string; ids :string);
  39. begin
  40. if (RaportParam.Czysql = true) then
  41. begin
  42. query.SQL.text := SetTextQuery(query.SQL.text,'/*FR_APR1*/',GenerujSQL(id,ids));
  43. query.open;
  44. if (query.isempty = true) then WDErr();
  45. end else if ids <> '' then
  46. begin
  47. query.SQL.text := SetTextQuery(query.SQL.text,'/*FR_APR2*/',GenerujSQL(id,ids));
  48. query.open;
  49. if (query.isempty = true) then WDErr();
  50. end else
  51. WDErr();
  52. end;
  53.  
  54. procedure OnEscKeyUp(Sender: TfrxComponent; var Key: Word; Shift: Integer);
  55. begin
  56. if Key = 27 then
  57. begin
  58. Err.ModalResult := mrCancel;
  59. DialogPage1.ModalResult := mrCancel;
  60. end
  61. end;
  62.  
  63. function DajUstawienieWydrukowanieProtokoluOznaczaWydanie: boolean;
  64. begin
  65. result := (qrPakonf.FieldByName('PAKONF_DZIEKPROTOKOL').AsInteger = 1);
  66. end;
  67.  
  68. procedure ObslugaDrukowania(ZmieniajStatus: boolean);
  69. var
  70. Numer, Rok, temp :string;
  71. begin
  72. Page1.Visible := <aPage1>;
  73. Page2.Visible := <aPage2>;
  74. qrProtokol.First;
  75. while not qrProtokol.Eof do
  76. begin
  77. UstawStatusKartyProtokoluNaWydrukowany(<qrProtokol."KARTAPROT_ID">,false);
  78. if ZmieniajStatus then
  79. UstawStatusKartyProtokoluNaWydany(<qrProtokol."KARTAPROT_ID">,false);
  80. qrProtokol.Next;
  81. end;
  82. qrProtokol.First;
  83. end;
  84.  
  85. procedure frxReport1OnStartReport(Sender: TfrxComponent);
  86. begin
  87. qrProtokolStud.Query.UniDirectional := True;
  88. first := true;
  89. if VarToStr(<Drukowanie>) = '1' then
  90. begin
  91. qrPakonf.Open;
  92. //DialogPage1.Visible := false;
  93. fixsql(qrProtokol,'kp.KARTAPROT_ID', Raportparam.rekordid);
  94. ObslugaDrukowania(DajUstawienieWydrukowanieProtokoluOznaczaWydanie());
  95. end else
  96. begin
  97. if (RaportParam.rekordid <> '') then
  98. begin
  99. if (RaportParam.CzyWWW) then
  100. set('aProgram',''''+'Wirtualny Dziekanat'+'''')
  101. else
  102. set('aProgram',''''+Raportparam.aProgram+'''');
  103. qrKonfProt.Open;
  104. if (RaportParam.CzyWWW) then
  105. begin
  106. DialogPage1.Visible := false;
  107. {KONFIGURACJA RAPORTU POD WWW}
  108. Page1.Visible := true; // Pionowy
  109. Page2.Visible := false; // Poziomy
  110. set('aPage1',Page1.Visible);
  111. set('aPage2',Page2.Visible);
  112. set('aPokazujOceny', true); // Drukuje oceny i daty na protokle
  113. set('aDziel',0); // Podział na specjalności
  114. set('aPowt', false); // Wyróżnia studentów powtarzających przedmiot
  115. set('aRozn', false); // Wyróżnia studentów uzupełniajacych różnice programowe
  116. set('aCzyAllProw', cbAllProw.Checked); //Drukuje tylko głównego prowadzącego
  117. set('aDuplex', false); //wydruk z dodatkowa pusta - dopelniajaca do parzystej ilosci wszystkich stron
  118. set('aWyrozniejStudPowt', VarToStr(<qrKonfProt."KONFPROTOKOL_WYROZNIAJSTUDPOWT">) = 'T'); //wyroznianie na protokole studentow realizujacych przedmiot jako warunek
  119. {KONFIGURACJA RAPORTU POD WWW}
  120. fixsql(qrProtokol,'kp.KARTAPROT_ID', Raportparam.rekordid);
  121. end;
  122. end else
  123. WDErr();
  124. end;
  125. end;
  126.  
  127. procedure WDErr;
  128. begin
  129. if(RaportParam.CzyWWW) then
  130. begin
  131. WD_Err.Visible := true;
  132. Page1.Visible := false;
  133. end else
  134. begin
  135. Err.visible:=true;
  136. end;
  137. end;
  138.  
  139. procedure DialogPage1OnActivate(Sender: TfrxComponent);
  140. begin
  141. cbWzor.ItemIndex := 0;
  142.  
  143. if VarToStr(<qrKonfProt."KONFPROTOKOL_WYROZNIAJSTUDPOWT">) = 'T' then
  144. cbPowt.Checked := true
  145. else
  146. cbPowt.Checked := false;
  147.  
  148. if VarToStr(<qrKonfProt."KONFPROTOKOL_WYRSTUDZROZNICAPR">) = 'T' then
  149. cbRozn.Checked := true
  150. else
  151. cbRozn.Checked := false;
  152.  
  153. if VarToStr(<qrKonfProt."KONFPROTOKOL_DZIELNASPEC">) = 'T' then
  154. cbDziel.Checked := true
  155. else
  156. cbDziel.Checked := false;
  157. end;
  158.  
  159. procedure BitBtn3OnClick(Sender: TfrxComponent);
  160. var
  161. temp : string;
  162. begin
  163. Page1.Visible := rb1.Checked;
  164. Page2.Visible := rb2.Checked;
  165. if cbDuplikat.Checked then
  166. set('aDuplikat',''''+'Duplikat'+'''')
  167. else
  168. set('aDuplikat',''''+''+'''');
  169. if cbDziel.Checked then
  170. set('aDziel',1)
  171. else
  172. set('aDziel',0);
  173. set('aPokazujOceny', cbOceny.Checked);
  174. set('aPowt', cbPowt.Checked);
  175. set('aRozn', cbRozn.Checked);
  176. set('aDuplex', rbDuplex.Checked);
  177. fixsql(qrProtokol,'kp.KARTAPROT_ID', Raportparam.rekordid);
  178. qrProtokol.Last;
  179. qrProtokol.First;
  180. if RaportParam.Listowy = 'T' then
  181. if MessageBox('Znaleziono '+IntToStr(qrProtokol.RecordCount)+' protokołów do wydruku.'+#13+'Kontynuować?',
  182. 'ProAkademia - pytanie',4 +32) = 7 then
  183. Report.Terminated := true;
  184. set('aPage1',Page1.Visible);
  185. set('aPage2',Page2.Visible);
  186. set('aCzyAllProw', cbAllProw.Checked);
  187. end;
  188.  
  189. procedure ustawSzerokoscKolumn(
  190. ilterm: integer;
  191. m1,
  192. m2, m3, m4,
  193. m2a, m3a, m4a : TfrxMemoView;
  194. m1w,
  195. m2w, m3w, m3l, m4w, m4l,
  196. m2aw, m3aw, m3al, m4aw, m4al,
  197. md1w, md2w: Extended;
  198. md1, md2: TfrxMasterData);
  199. begin
  200.  
  201. m1.Width := m1w/ilterm;
  202. {}
  203. m2.Width := m2w/ilterm;
  204. m3.Width := m3w/ilterm;
  205. m4.Width := m4w/ilterm;
  206. md1.Width := md1w/ilterm;
  207. {}
  208. m2a.Width := m2aw/ilterm;
  209. m3a.Width := m3aw/ilterm;
  210. m4a.Width := m4aw/ilterm;
  211. md2.Width := md2w/ilterm;
  212.  
  213. if (ilterm > 1) then
  214. begin
  215. m3.Left := m3l - (m2w - m2w/ilterm);
  216. m4.Left := m4l - (m3w - m3w/ilterm) - (m2w - m2w/ilterm);
  217. m3a.Left := m3al - (m2aw - m2aw/ilterm);
  218. m4a.Left := m4al - (m3aw - m3aw/ilterm) - (m2aw - m2aw/ilterm);
  219. end else
  220. begin
  221. m3.Left := m3l;
  222. m4.Left := m4l;
  223. m3a.Left := m3al;
  224. m4a.Left := m4al;
  225. end;
  226. end;
  227.  
  228. procedure przypiszDomyslneWartosci;
  229. begin
  230. m43OrygL := Memo43.Left;
  231. m45OrygL := Memo45.Left;
  232. m86OrygL := Memo86.Left;
  233. m41OrygW := Memo41.Width;
  234. m42OrygW := Memo42.Width;
  235. m43OrygW := Memo43.Width;
  236. m44OrygW := Memo44.Width;
  237. m45OrygW := Memo45.Width;
  238. m80OrygL := Memo80.Left;
  239. m86OrygW := Memo86.Width;
  240. m87OrygW := Memo87.Width;
  241. m87OrygL := Memo87.Left;
  242. mDataSOrygL := mDataS.Left;
  243. m82OrygW := Memo82.Width;
  244. m81OrygW := Memo81.Width;
  245. m80OrygW := Memo80.Width;
  246. mOcenaSOrygW := mOcenaS.Width;
  247. mDataSOrygW := mDataS.Width;
  248. m91OrygW := Memo91.Width;
  249. m91OrygL := Memo91.Left;
  250. m92OrygW := Memo92.Width;
  251. m92OrygL := Memo92.Left;
  252. MasterData7OrygW := MasterData7.Width;
  253. MasterData9OrygW := MasterData9.Width;
  254. MasterData4OrygW := MasterData4.Width;
  255. MasterData10OrygW := MasterData10.Width;
  256. end;
  257.  
  258. procedure PageHeaderOnBeforePrint(Sender: TfrxComponent);
  259. var
  260. temp: integer;
  261. begin
  262. if first then
  263. begin
  264. przypiszDomyslneWartosci;
  265. first := false;
  266. end;
  267. qrProtokolTermin.Open;
  268. qrProtokolTermin.last;
  269. qrProtokolTermin.first;
  270.  
  271. if <aPage1> then
  272. begin
  273. ustawSzerokoscKolumn(qrProtokolTermin.RecordCount, Memo41,
  274. Memo42, Memo43, Memo86,
  275. Memo44, Memo45, Memo87,
  276. m41OrygW,
  277. m42OrygW, m43OrygW, m43OrygL, m86OrygW, m86OrygL,
  278. m44OrygW, m45OrygW, m45OrygL, m87OrygW, m87OrygL,
  279. MasterData7OrygW, MasterData9OrygW,
  280. MasterData7, MasterData9);
  281. DuplexBlankPage2.Visible := false;
  282. if StrToInt(<Page>) > 1 then DetailHeader.Visible := false else DetailHeader.Visible := true;
  283. end else
  284. if <aPage2> then
  285. begin
  286. ustawSzerokoscKolumn(qrProtokolTermin.RecordCount, Memo82,
  287. Memo81, Memo80, Memo91,
  288. mOcenaS, mDataS, Memo92,
  289. m82OrygW,
  290. m81OrygW, m80OrygW, m80OrygL, m91OrygW, m91OrygL,
  291. mOcenaSOrygW, mDataSOrygW, mDataSOrygL, m92OrygW, m92OrygL,
  292. MasterData4OrygW, MasterData10OrygW,
  293. MasterData4, MasterData10);
  294. DuplexBlankPage4.Visible := false;
  295. if StrToInt(<Page>) > 1 then DetailHeader1.Visible := false else DetailHeader1.Visible := true;
  296. end;
  297.  
  298. if ((StrToInt(<Page>) mod 2) = 1) and <aDuplex> then
  299. begin
  300. if <aPage1> then
  301. begin
  302. if VarToStr(TfrxComponent(Sender).Name) = 'DetailData1' then
  303. DuplexBlankPage2.Visible := true
  304. else
  305. DuplexBlankPage1.Visible := true;
  306. PageHeader1.Visible := true;
  307. Stopka.Visible := true;
  308. end else if Page2.Visible then
  309. begin
  310. if VarToStr(TfrxComponent(Sender).Name) = 'DetailData2' then
  311. DuplexBlankPage4.Visible := true
  312. else
  313. DuplexBlankPage3.Visible := true;
  314. PageHeader2.Visible := true;
  315. Stopka1.Visible := true;
  316. end;
  317. end else if ((StrToInt(<Page>) mod 2) = 0) and <aDuplex> then
  318. begin
  319. if <aPage1> then
  320. begin
  321. if VarToStr(TfrxComponent(Sender).Name) = 'DetailData1' then
  322. DuplexBlankPage2.Visible := false
  323. else
  324. DuplexBlankPage1.Visible := false;
  325. if StrToInt(<Page>) = 2 then
  326. temp := MAX_LICZBA_REKORDOW_NA_PIERWSZEJ_STRONIE
  327. else
  328. temp := MAX_LICZBA_REKORDOW_NA_KOLEJNYCH_STRONACH;
  329. if (numer < temp) then
  330. begin
  331. PageHeader1.Visible := false;
  332. Stopka.Visible := false;
  333. end;
  334. end else if <aPage2> then
  335. begin
  336. if VarToStr(TfrxComponent(Sender).Name) = 'DetailData2' then
  337. DuplexBlankPage4.Visible := false
  338. else
  339. DuplexBlankPage3.Visible := false;
  340. if StrToInt(<Page>) = 2 then
  341. temp := MAX_LICZBA_REKORDOW_NA_PIERWSZEJ_STRONIE - 11
  342. else
  343. temp := MAX_LICZBA_REKORDOW_NA_KOLEJNYCH_STRONACH - 11;
  344. if (numer < temp) then
  345. begin
  346. PageHeader2.Visible := false;
  347. Stopka1.Visible := false;
  348. end;
  349. end;
  350. end;
  351. numer := 0;
  352. end;
  353.  
  354. procedure ECTSOnBeforePrint(Sender: TfrxComponent);
  355. begin
  356. if (VarToStr(<qrProtokol."PPLANU_PKTECTS">) = '') or
  357. (VarToStr(<qrProtokol."PPLANU_PKTECTS">) = '0') then
  358. begin
  359. if Page1.Visible then
  360. begin
  361. memo32.Visible:=false;
  362. memo33.Visible:=false;
  363. end else if Page2.Visible then
  364. begin
  365. memo73.Visible:=false;
  366. memo74.Visible:=false;
  367.  
  368. end;
  369. end
  370. else
  371. begin
  372. if Page1.Visible then
  373. begin
  374. memo32.Visible:=true;
  375. memo33.Visible:=true;
  376. end else if Page2.Visible then
  377. begin
  378. memo73.Visible:=true;
  379. memo74.Visible:=true;
  380.  
  381. end;
  382. end
  383. end;
  384.  
  385. procedure MemoWyroznijOnBeforePrint(Sender: TfrxComponent);
  386. var fstyl: integer;
  387. begin
  388. fstyl := 0;
  389. if <aPowt> and (VarToStr(<qrProtokolStud."PPLS_POPRAWKA">) = 'T') then
  390. fstyl := fstyl + fsBold;
  391. if <aRozn> and (VarToStr(<qrProtokolStud."PPLS_ROZNPROGR">) = 'T') then
  392. fstyl := fstyl + fsItalic;
  393. TfrxMemoView(Sender).Font.Style := fstyl;
  394. end;
  395.  
  396. procedure RokOnBeforePrint(Sender: TfrxComponent);
  397. var
  398. tmp : int;
  399. begin
  400. tmp := (StrToInt(<qrProtokol."PPLANU_SEMESTR">) + 1) div 2;
  401. set('aRok',''''+inttostr(tmp)+'''');
  402. end;
  403.  
  404. procedure DataPodpisOnBeforePrint(Sender: TfrxComponent);
  405. begin
  406. if not <aPokazujOceny> then
  407. TfrxMemoView(Sender).text := '';
  408. end;
  409.  
  410. procedure OcenaOnBeforePrint(Sender: TfrxComponent);
  411. begin
  412. if not <aPokazujOceny> then
  413. TfrxMemoView(Sender).text := ''
  414. else
  415. begin
  416. qrOcenyMS.Close;
  417. qrOcenyMS.Open;
  418. qrOcenyMS.Last;
  419. qrOcenyMS.First;
  420. end;
  421. end;
  422.  
  423. procedure Memo14OnBeforePrint(Sender: TfrxComponent);
  424. begin
  425. if vartostr(<qrProtokol."FZAL_KOD">) = 'EGZ' then
  426. TfrxMemoView(Sender).Text := 'PROTOKÓŁ EGZAMINACYJNY';
  427. end;
  428.  
  429. procedure ProwOnBeforePrint(Sender: TfrxComponent);
  430. var
  431. temp : string;
  432. begin
  433. if not <aCzyAllProw> then
  434. set('aProwadzacy',''''+VarToStr(<qrProtokol."NAZWIMIEPROWGLOWNY">)+'''')
  435. else
  436. begin
  437. temp := VarToStr(<qrProtokol."NAZWIMIEPROWGLOWNY">)+#13+VarToStr(<qrProtokol."NAZWIMIEPROWPOZOSTALI">);
  438. memo9.Text := temp ;
  439. memo54.Text := temp ;
  440. set('aProwadzacy',memo54.Text);
  441. end;
  442. end;
  443.  
  444. procedure Memo4OnBeforePrint(Sender: TfrxComponent);
  445. begin
  446. if vartostr(<qrProtokol."FZAL_KOD">) = 'EGZ' then
  447. TfrxMemoView(Sender).Text := 'Egzamin ..............................................';
  448. end;
  449.  
  450. procedure Memo34OnBeforePrint(Sender: TfrxComponent);
  451. var
  452. p : integer;
  453. begin
  454. p := Pos(vartostr(<qrProtokol."SPEC_NAZWASP_KARTA_TOK">),vartostr(<qrProtokol."SPEC_NAZWASP">));
  455. if p <> 0 then
  456. begin
  457. TfrxMemoView(Sender).Text := Copy(vartostr(<qrProtokol."SPEC_NAZWASP">),0,p-1)+'<b>'
  458. +vartostr(<qrProtokol."SPEC_NAZWASP_KARTA_TOK">)+'</b>'+
  459. Copy(vartostr(<qrProtokol."SPEC_NAZWASP">),p+Length(vartostr(<qrProtokol."SPEC_NAZWASP_KARTA_TOK">)),
  460. Length(vartostr(<qrProtokol."SPEC_NAZWASP">)));
  461. end;
  462. end;
  463.  
  464. procedure Memo11OnBeforePrint(Sender: TfrxComponent);
  465. var
  466. p : integer;
  467. begin
  468. p := Pos(vartostr(<qrProtokol."SKR_NUM_KARTA_TOK">),vartostr(<qrProtokol."SKR_NUM">));
  469. if p <> 0 then
  470. begin
  471. TfrxMemoView(Sender).Text := Copy(vartostr(<qrProtokol."SKR_NUM">),0,p-1)+'<b>'
  472. +vartostr(<qrProtokol."SKR_NUM_KARTA_TOK">)+'</b>'+
  473. Copy(vartostr(<qrProtokol."SKR_NUM">),p+Length(vartostr(<qrProtokol."SKR_NUM_KARTA_TOK">)),
  474. Length(vartostr(<qrProtokol."SKR_NUM">)));
  475. end;
  476. end;
  477.  
  478. begin
  479.  
  480. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement