Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
kb:pg:migracija_crystal_reports_obrazaca [2019/03/12 11:07]
nessa
kb:pg:migracija_crystal_reports_obrazaca [2020/01/14 00:43] (current)
milano
Line 16: Line 16:
    - Pokrenuti program **Formula Checker**    - Pokrenuti program **Formula Checker**
   - Odabrati opciju '//​obradi i podfoldere//'​   - Odabrati opciju '//​obradi i podfoldere//'​
-  - Kliknuti na sličicu Postgres slona \\ Direktorijum JET baze koja sadrži upite na koje se izveštaji oslanjaju zadaje se klikom na dugme foldera iznad sličice PGS slona.{{:​kb:​slike:​formulachecker.png?​818x203}}+  - Kliknuti na sličicu Postgres slona \\ Direktorijum JET baze koja sadrži upite na koje se izveštaji oslanjaju zadaje se klikom na dugme foldera iznad sličice PGS slona.{{ ​ :​kb:​slike:​formulachecker.png?​818x203 ​ }}
   - Na kraju procesa u //Data //folderu ili u folderu sa izveštajima će biti napravljen fajl **Izvestaj_o_izvestajima.txt. ** \\ Sadržaj tog fajla će biti spisak izveštaja sa pripadajućim SQL komandama za dobijanje podataka iz PGS baze. \\  \\ Ovi podaci biće neophodni za definisanje Command objekta u Crystal Designer-u ! \\  \\ Na primer: \\  \\ <font inherit/​Courier New,​Courier,​monospace;;​inherit;;​inherit>​E:​\Razvoj\Assets\Reports_4\Artikli i Usluge\Kartica artikla (prosirena).rpt</​font>​   - Na kraju procesa u //Data //folderu ili u folderu sa izveštajima će biti napravljen fajl **Izvestaj_o_izvestajima.txt. ** \\ Sadržaj tog fajla će biti spisak izveštaja sa pripadajućim SQL komandama za dobijanje podataka iz PGS baze. \\  \\ Ovi podaci biće neophodni za definisanje Command objekta u Crystal Designer-u ! \\  \\ Na primer: \\  \\ <font inherit/​Courier New,​Courier,​monospace;;​inherit;;​inherit>​E:​\Razvoj\Assets\Reports_4\Artikli i Usluge\Kartica artikla (prosirena).rpt</​font>​
  
Line 24: Line 24:
 tabela rptProveraArtikla:​ ODBC —> SELECT * FROM {?​dbSchemaName}rptProveraArtiklaMP({?​inElID},​{?​inSklID},​{?​inDatStart},​{?​inDatEnd},​{?​InFal}::​boolean) tabela rptProveraArtikla:​ ODBC —> SELECT * FROM {?​dbSchemaName}rptProveraArtiklaMP({?​inElID},​{?​inSklID},​{?​inDatStart},​{?​inDatEnd},​{?​InFal}::​boolean)
  
-  - Otvoriti prvi izveštaj, desni klik na Database Fields pa opcija Set Datasource Location… \\ {{:​kb:​slike:​setdatasourcelocation.png?​nolink&​297x210}} +  - Otvoriti prvi izveštaj, desni klik na Database Fields pa opcija Set Datasource Location… \\ {{  :​kb:​slike:​setdatasourcelocation.png?​nolink&​297x210 ​ }} 
-  - U novom prozoru u gornjem polju '​Current Data Source'​ kliknuti na ime tabele/​upita koji se koristi, a u donjem polju '​Replace with' kliknuti na '​Create New Connection'​ i unutar toga ODBC (RDO). Pojaviće se forma za odabir ODBC konekcije pa treba odabrati prethodno napravljeni PGS ODBC konektor __sa isključenom opcijom TrueIsMinus1__ ​ (npr. PostgreSQL35W):​ \\ {{:​kb:​slike:​setdatasourcelocation2.png?​774x587}} +  - U novom prozoru u gornjem polju '​Current Data Source'​ kliknuti na ime tabele/​upita koji se koristi, a u donjem polju '​Replace with' kliknuti na '​Create New Connection'​ i unutar toga ODBC (RDO). Pojaviće se forma za odabir ODBC konekcije pa treba odabrati prethodno napravljeni PGS ODBC konektor __sa isključenom opcijom TrueIsMinus1__ ​ (npr. PostgreSQL35W):​ \\ {{  :​kb:​slike:​setdatasourcelocation2.png?​774x587 ​ }} 
-  - Nakon toga treba kliknuti na Add Command u ODBC (RDO) odeljku pa na dugme '​Update'​. Pojaviće se forma za unos SQL komande i parametara. U polje za SQL treba copy–paste komandu iz fajla Izvestaj_o_izvestajima.txt pa za svaki parametar u {?…} zagradama treba dodati odgovarajući bez tih zagrada klikom na dugme Create… \\ {{:​kb:​slike:​setdatasourcelocation3.png?​894x731}}+  - Nakon toga treba kliknuti na Add Command u ODBC (RDO) odeljku pa na dugme '​Update'​. Pojaviće se forma za unos SQL komande i parametara. U polje za SQL treba copy–paste komandu iz fajla Izvestaj_o_izvestajima.txt pa za svaki parametar u {?…} zagradama treba dodati odgovarajući bez tih zagrada klikom na dugme Create… ​\\  ​\\ {{  :​kb:​slike:​setdatasourcelocation3.png?​nolink&894x731 ​ }}
  
-Value Type za parametre koji su dodatno uokvireni u apostrofe i za dbSchemaName je String, a za ostale je najbolje pogledati kroz QA za svaki slučaj. ​\\  ​\\ +Uglavnom su parametri čiji naziv počinje sa **InDat** ​ tipa **DateTime**,​ parametri koji se kastuju sa **CBool** () ili ::​**boolean** ​ su tipa **Boolean**,​ a ostali su tipa **Number**. 
-Parametar **dbSchemaName **se od 7.3.2019. više ne koristi, a ako se koristi __default value za njega ne treba zadavati__**. \\ + 
-Kada se izveštaj pravi na bazi koja je **raščlanjena **u DSN podešavanje na strani 2 u polje "​Connect Settings"​ treba upisati **SET SESSION search_path TO btek,​bcus,​bpub,​public,​pg_catalog**;​ {{:​kb:​pg:​connectsettings.png?​nolink&​465x459}} ​Uglavnom su parametri čiji naziv počinje sa InDat tipa DateTime, parametri koji se kastuju sa CBool() ili ::boolean su tipa Boolean, a ostali su tipa Number. ​\\ + \\ 
-Na kraju, kada se dodaju svi parametri u spisak, posle klika na OK pojaviće se forma za unos parametara (iz nepoznatog razloga pojavi se 2 puta) pa ako sve prođe kako treba u polju '​Current Data Source'​ će za Table Name pisati Command umesto imena tabele/​upita. \\  \\ {{:​kb:​slike:​setdatasourcelocation4.png?​335x304}} Ako izveštaj ima **podizveštaje ** koji koriste svoje upite onda u polju '​Current Data Source'​ treba za svaki od njih ponoviti postupak zamene upita SQL komandom iz fajla Izvestaj_o_izvestajima.txt+Value Type za parametre koji su dodatno uokvireni u apostrofe i za **dbSchemaName**  ​je **String**, a za ostale je najbolje pogledati kroz QA za svaki slučaj. \\ 
 +Parametar **dbSchemaName **se od 7.3.2019. više **ne koristi**, a ako se koristi __default value za njega ne treba zadavati__**.** 
 + 
 + \\ **VAŽNA NAPOMENA! ​ **Polje //Parameter Name// ​ je **case sensitive** ​ (osetljivo na velika i mala slova) i mora u potpunosti da odgovara nazivu parametra u Crstal Reports obrascu (sekcija //​Parameters//​). \\ 
 +U suprotnom, prilikom verifikacije baze podataka ne gine greška tipa: 
 + 
 +<​code>​ 
 +Parameters exit but IPD isn't set. Please call SQLDescribeParam 
 +</​code>​ 
 + 
 +ili 
 + 
 +<​code>​ 
 +column "<​ime parametra>"​ does not exist at character 95 
 +</​code>​ 
 + 
 + \\ **Kada se izveštaj pravi na bazi koja je **raščlanjena **u DSN podešavanje na strani 2 u polje "​Connect Settings"​ treba upisati **SET SESSION search_path TO btek,​bcus,​bpub,​public,​pg_catalog**; ​** 
 + 
 +**{{  :​kb:​pg:​connectsettings.png?​nolink&​465x459 ​ }}** \\ 
 +Na kraju, kada se dodaju svi parametri u spisak, posle klika na **OK**  ​pojaviće se forma za unos parametara (iz nepoznatog razloga pojavi se 2 puta) pa ako sve prođe kako treba u polju '**Current Data Source**' će za **Table Name**  ​pisati ​**Command**  ​umesto imena tabele/​upita. \\  \\ **{{  :​kb:​slike:​setdatasourcelocation4.png?​335x304 ​ }}** 
 + 
 +**Ako izveštaj ima **podizveštaje ** koji koriste svoje upite onda u polju '​Current Data Source'​ treba za svaki od njih ponoviti postupak zamene upita SQL komandom iz fajla Izvestaj_o_izvestajima.txt
  
 Ponoviti postupak za sve ostale izveštaje, ali ne zatvarati program Crystal Reports-a tako da se ne mora svaki put praviti nova ODBC (RDO) konekcija. Ponoviti postupak za sve ostale izveštaje, ali ne zatvarati program Crystal Reports-a tako da se ne mora svaki put praviti nova ODBC (RDO) konekcija.
  
  
  • kb/pg/migracija_crystal_reports_obrazaca.txt
  • Last modified: 2020/01/14 00:43
  • by milano