Projekat

Općenito

Profil

Akcije

Podrška #31670

Zatvoren

RNAL, prebacivanje izvještaja na SQL / ODT reporting sistem

Dodano od Saša Vranić prije više od 12 godina. Izmjenjeno prije više od 12 godina.

Status:
Zatvoreno
Prioritet:
Visok
Odgovorna osoba:
Saša Vranić
Početak:
30.09.2013
Završetak:
% završeno:

100%

Procjena vremena:

Fajlovi

rnal_rpt_menu.png (13,1 KB) rnal_rpt_menu.png Saša Vranić, 28.10.2013 15:42

Povezani tiketi 1 (0 otvoreno1 zatvoren)

korelira sa F18 - Podrška #31663: RNAL, isključivanje DBF tabela (branch nodbf)OdbačenoSaša Vranić30.09.2013

Akcije
Akcije #1

Izmjenjeno od Saša Vranić prije više od 12 godina

  • Naslov promijenjeno iz F18, prebacivanje izvještaja na SQL / ODT reporting sistem u RNAL, prebacivanje izvještaja na SQL / ODT reporting sistem
Akcije #2

Izmjenjeno od Saša Vranić prije više od 12 godina

sada se treba baciti na izvještajni dio...

Akcije #3

Izmjenjeno od Saša Vranić prije više od 12 godina

ovdje sada imamo jednu situaciju a to je da imamo štampu iz

  • pripremnog DBF fajla
  • iz SQL baze sa servera

znači, moram napraviti neku centralnu funkciju koja će puniti neku matricu ili slično... ili ipak možda bolje lokalni dbf

_print.dbf

Akcije #4

Izmjenjeno od Saša Vranić prije više od 12 godina

znači, ako štampamo iz pripreme

  • pripr -> _print.dbf

ako sa servera

  • sql qry -> _print.dbf
Akcije #5

Izmjenjeno od Saša Vranić prije više od 12 godina

implementirane 2 nove klase

  • F18_PRINT_UTIL
  • RNAL_PRINT_PREPARE

commit

Akcije #6

Izmjenjeno od Saša Vranić prije više od 12 godina

čitava ideja se svoji na sljedeće, ako imamo štampati neki dokument to se koristi ovako:

1) primjer kod štampanja sa jednom tabelom (recimo FAKT)

function print_fakt_dokument( idfirma, idtipdok, brdok )
local oPRINT
local _params := hb_hash()
local _dbf_print

// uzet ćemo za primjer da su parametri funkcije ti koji određuju da li će se štampati iz dbf-a ili sql-a

if PCOUNT() > 0
     _dbf_print := .f.   // štampat ćemo iz SQL-a
else
     _dbf_print := .t.   // štampat ćemo iz DBF-a
endif

if _dbf_print
     _params["table_name"] := F_FAKT_PRIPR   //koristi se ALIAS
     _params["order"] := "1"         // order tabele
else
     _params["table_name"] := "fmk.fakt_fakt" 
     _params["order"] := { "idfirma", "idtipdok", "brdok", "rbr" }
     _params["condition"] := { "idfirma = " + idfirma, "idtipdok = " + idtipdok, "brdok = " + brdok }    // sql uslov
endif

oPRINT := F18_PRINT_UTIL():new()  
oPRINT:dbf_print := _dbf_print
oPRINT:params := _params
oPRINT:prepare_print_table()   // kreira se print tabela _PRINT.DBF

// sada možemo neparaviti index itd...
select _print   (area: 255)
index on ...... tag "1" 
index on .....  tag "2" 

go top
do while !EOF() .....

       // sada imamo praktično onaj dio koda koji smo koristili ranije za čupanje podataka iz PRIPR (area) u print tabele (T_DOKS, T_....)

2) primjer korištenja sa više print tabela

( takav je recimo slučaj kod RNAL-a), imamo više tabela na osnovu kojih treba da izvučemo podatke

U tu svrhu pravimo više print tabela i dodjeljujemo im unikatna imema (alijase)

function print_rnal_dokument( doc_no )
local oPRINT
local _params := hb_hash()
local _dbf_print

// uzet ćemo za primjer da su parametri funkcije ti koji određuju da li će se štampati iz dbf-a ili sql-a

if PCOUNT() > 0
     _dbf_print := .f.   // štampat ćemo iz SQL-a
else
     _dbf_print := .t.   // štampat ćemo iz DBF-a
endif

// pravimo prvu tabelu TMP_DOCS.DBF

if _dbf_print
     _params["table_name"] := F__DOCS   //koristi se ALIAS
     _params["order"] := "1"         // order tabele
else
     _params["table_name"] := "fmk.rnal_docs" 
     _params["order"] := { "doc_no" }
     _params["condition"] := { "doc_no = " + ALLTRIM( STR( doc_no ) ) }
endif
_params["area"] := 255    // ordeđujemo area
_params["alias"] := "tmp_docs"   // određujemo naziv alijasa....

oPRINT := F18_PRINT_UTIL():new()  
oPRINT:dbf_print := _dbf_print
oPRINT:params := _params
oPRINT:prepare_print_table()   // kreira se print tabela TMP_DOCS.DBF

// kreiramo drugu tabelu  TMP_DOC_IT

if _dbf_print
     _params["table_name"] := F__DOC_IT   //koristi se ALIAS
     _params["order"] := "1"         // order tabele
else
     _params["table_name"] := "fmk.rnal_doc_it" 
     _params["order"] := { "doc_no", "doc_it_no" }
     _params["condition"] := { "doc_no = " + ALLTRIM( STR( doc_no ) ) }
endif
_params["area"] := 256    // sljedeći area
_params["alias"] := "tmp_doc_it"   // određujemo naziv alijasa....

oPRINT := F18_PRINT_UTIL():new()  
oPRINT:dbf_print := _dbf_print
oPRINT:params := _params
oPRINT:prepare_print_table()   // kreira se print tabela TMP_DOC_IT.DBF

// nakon toga možemo praviti indexe

select tmp_docs
index on .....

select tmp_doc_it
index on ..... 

i koristimo tabele za kreiranje izvještaja

ovim smo dobili emuliranje postojećeg stanja, bilo koja da se štampa koristi uvijek imamo baratanje sa DBF tabelama...

to mnogo uprosti i omogućuje da koristimo postojeći kod

Akcije #7

Izmjenjeno od Saša Vranić prije više od 12 godina

Štampu

  • naloga
  • obračunskog lista
  • naljepnica

prilagodio...

Akcije #8

Izmjenjeno od Saša Vranić prije više od 12 godina

Klasa F18_PRINT_UTIL radi

  • na osnovu dobivenih informacija u parametrima

1) ako je DBF varijanta:

- uzima strukturu zadate tabele i pravi novu tabelu te filuje podatke iz zadate tabele

2) ako je SQL varijanta

- uzima strukturu tabele sa servera
- kreira se tabela i puni sa podacima sa servera
Akcije #9

Izmjenjeno od Saša Vranić prije više od 12 godina

sada se treba baciti na prebacivanje izvještaja, tu nema puno mudrovanja

Akcije #10

Izmjenjeno od Saša Vranić prije više od 12 godina

Akcije #11

Izmjenjeno od Saša Vranić prije više od 12 godina

prva 4 izvještaja su praktično identična, što znači da će moći jedan template da se koristi

M. montaža je već ODT

znači, sveukupno 5 izvještaja treba napraviti

Akcije #12

Izmjenjeno od Saša Vranić prije više od 12 godina

izvještaj RAL

commit

pregled učinka operatera

commit

pregled naloga po raznim uslovima - 4 izvještaja

commit

Akcije #13

Izmjenjeno od Saša Vranić prije više od 12 godina

izvještaj za poslovođe

commit

Akcije #14

Izmjenjeno od Saša Vranić prije više od 12 godina

commit

izvještaj - pregled proizvodnje

Akcije #15

Izmjenjeno od Saša Vranić prije više od 12 godina

  • Status promijenjeno iz Dodijeljeno u Zatvoreno
  • % završeno promijenjeno iz 0 u 100
Akcije

Također dostupno kao Atom PDF