Both sides previous revision Previous revision Next revision | Previous revision |
kb:pg:migracija_crystal_reports_obrazaca [2019/02/06 12:04] – [CR i Postgres ODBC] nessa | kb:pg:migracija_crystal_reports_obrazaca [2020/01/13 23:43] (current) – milano |
---|
- 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> |
| |
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. \\ \\ **Default **value za** dbSchemaName **za neraščlanjene baze je uvek **"public."** (bez znaka navoda), a za raščlanjene je prazan string. \\ | 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**. |
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,bpub,bcus,public,pg_catalog**; | |
| |
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}} | 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__**.** |
| |
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 | \\ **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. |
| |
| |