Tiskanje strani v spojenem dokumentu

Ko izberete spajanje dokumentov, lahko v zadnjem koraku spajanja spojite celoten dokument in s tem dobite velik dokument s spojenimi vsemi izbranimi elementi.

Pojavi pa se težava, ko želite v tem dokumentu natisniti samo določene strani, saj to ne deluje. Ko dokument odprete lahko vidite, da ima dokument recimo 124 strani, vi pa bi želeli izpisati samo strani od 13-24.

Izberete tiskanje in vpišete območje strani 13-24, pa se ne zgodi nič. 🙁

To je težava in menim, da bi jo MS lahko bolje rešil, vendar imamo pač kar imamo. V spojenem dokumentu ne morete tiskati strani od – do. Težava je namreč v dejstvu, da je takšen dokument spojen iz več odsekov.

Spojeni dokument je namreč nastal tako, da sta spojili nek pred-pripravljen vzorec (recimo 5 strani) z nekim seznamom (recimo seznam 20 oseb). S tem ste dobili dokument, ki je velik 100 strani (5 strani x 20 oseb = 100 strani). V tem dokumentu so podatki o prvi osebi zapisani na straneh 1-5, podatki o drugi osebi od 6-10, podatki o 13-ti osebi pa od 61-65. Verjetno je torej res dokaj nesmiselno izpisovati dokument od 47-53 strani. S tem bi namreč izpisali zadnje štiri strani za 10-to osebo in prve 3 strani 11-te osebe.

V takšnem dokumentu torej ne izpisujete posameznih strani temveč posamezne odseke in to izberete kot ‘s5-s7’ – torej, kot odsek (section) 5 do odseka 7. V našem konkretnem primeru bi to pomenilo, da želite izpisati vse liste za osebe 5, 6 in 7 oz. izpisali bi strani 21-35. (21-25 = oseba 5, 26-30 = oseba 6 in 31-35 = oseba 7).

Takšen izbor torej ne deluje:

Izbira posameznih strani NE DELUJE

Takšen izbor (odsekov) pa deluje:

Izbor odsekov oz. tiskanje odsekov pa deluje

Da bi v dokumentu lažje videli v katerem odseku se nahajate lahko wordu zaukažete, da spodaj v statusni vrstici prikazuje tudi številko odseka, kar naredite tako, da desno kliknete na statusno vrstico, s čimer se vam odpre hitri meni in na tem meiju izberite, da želite prikazovati tudi številke odsekov.

Za lažje delo lahko Word-u zaukažete naj v statusni vrstici prikazuje tudi odseke.

Running C++ Builder 6.0 on new win 10

As my main source of income is still written in C++ Builder 6.0, I am stuck with it. Today I updated my system to Windows 10 (build 1709) and Builder refuses to run.

I was left with registry form and registration was not the solution. I just couldn’t register it.

To make the story short. Here is the solution:

  1. Open registry
  2. Delete LM value from HKCU\Software\Borland\C++Builder\6.0
  3. Export the whole key HKEY_CURRENT_USER\Software\Borland
  4. In exported file change \Software\ ==> \Software\Wow6432Node\
  5. Import changed registry file
  6. Reregister Borland C++ Builder

At it is working again! 🙂

PS: The solution is to move (copy) the whole Borland subtree to HKCU\Software\Wow6432Node\ subtree, because it is an old x86 app.

Davčne blagajne

V januarju 2016 bo v Sloveniji obvezna uporaba davčnih blagajn za vse gotovinska plačila. Na spletni strani FURS-a si lahko preberete vse tehnične specifikacije potrebne za davčno potrjevanje računov.

Kako poteka davčno potrjevanje računov

V osnovi je to zelo preprost in uporaben sistem. Pred izpisom (izdajo računa) se morate namreč povezati na strežnik davčne uprave in nanj prenesti podatke o računu, FURS pa vam vrne edinstveno številko EOR (Edinstvena Oznaka Računa), ki jo morate izpisati na računu in s katero dokazujete, da ste račun tudi zares poslali na FURS.

Ozadje

Seveda pa se podrobnosti vedno skrivajo v ozadju in povezava na FURS niti ni tako trivialno preprosta oz. povezava je preprosta, saj gre za standarden internetni protokol, vendar pa je tja potrebno poslati digitalno podpisan račun in tukaj se stvari malce zapletejo.

Zastonj rešitev na dlani

Da bi se ne bilo potrebno vsakumur ukvarjati s:

  • podrobnostmi digitalnega podpisa,
  • podrobnostmi izračuna zaščitne številke (ZOI)
  • podrobnostmi izrisa QR kode

sem na GITHub-u odprl rešitev, ki je vsakomur na voljo povsem brezplačno. Za uporabo rešitve potrebujete le računalnik z operacijskim sistemom Windows. Ker je v SLO še kar nekaj blagajn, ki tečejo na operacijskem sistemu Windows XP, je podprt tudi slednji.

Minimalne zahteve za uporabo te povsem zastonj rešitve je:

  1. Win XP, SP 3, .NET 4.0 – ali seveda katerikoli novejši WIN sistem
  2. Uporaba .NET razvojnega okolja (C#, VB.NET ali pa tudi kakšnega bolj eksotičnega, a teh verjetno ni veliko 🙂 )

Izgled testnega programa
Izgled testnega programa

Kaj pa če ne uporabljate .NET razvojnega okolja

V tem primeru pa seveda ponujene knjižnice ne morete neposredno izkoristiti, a dokler vaš program teče v WIN okolju je problem rešen. Ponudim vam lahko namreč sledeč možnosti povezave:

  1. EXE program, ki ga pokličete iz vašega programa in slednji
    • Pregleda račun ali slednji vsebuje vse zahtevane elemente
    • Izračuna zaščitno kodo (ZOI)
    • Obda račun z zahtevano ovojnico
    • Ga digitalno podpiše in pošlje na FURS
    • Od FURS-a sprejme odgovor in ga posreduje v vaš program
    • Podroben opis EXE programa najdete tukaj.
  2. WIN service, ki nadzoruje dve poljubni mapi in čim vi odložite podatke o računu v prvo mapo, jih program vzame, obdela, pošlje na FURS (enako kot v primeru EXE programa) in rezultat izpiše v izhodno mapo
  3. V kolikor želite uporabiti knjižnico sami in elemente zvezati neposredno v vaš program, vam lahko ponudim ActiveX komponento, ki naredi vse našteto
  4. Če imate zares veliko blagajn pa lahko vse skupaj zavrtite na nekem strežniku in ponudim vam lahko ASP.NET spletne storitve ki izvedejo vse omenjeno.

V kolikor torej potrebujete rešitev pišite na info@matjazev.net in rešitev boste dobili na dlani 😉

Lepljenje podatkov v že oblikovane celice

Danes sem na spletišču Slo-tech zasledil vprašanje, ki je kar pogosto, pa se ga dosedaj še nisem dotaknil.

Vprašanje je, kako vnaprej formirati številke da imajo v celici nek predpisan izgled. Primer je npr. telefonska številka, za katero večinoma želimo, da je prikazana v obliki (031) 668 532, čeravno je sama številka pač 031668532.

Oblikovanje takšnega izgleda je trivialno in ga bralci mojega bloga že poznateVendar pa se pojavi problem, ko v tako oblikovano celico prekopirate podatek iz druge celice.

Kopiranje

Po privzetem Excel vedno kopira tako vsebino, kot obliko celice in v našem primeru pač prekopira tudi obliko izvorne celice in zato se oblika v celici poruši.

Moj odgovor na tovrstne zagate je vedno, da vsebino vnašajte na enem mestu, končno (pravo, lepo) obliko pa prikazujte v drugih celicah, ki se na prve samo skljucujejo. S tem lepo ločite vnos in prikaz.

Seveda pa to ne gre vedno in mnogokrat preprost želite vnašati v celice, ki jih navkljub vsemu želite imeti drugače oblikovane. V tem primeru imate dve možnosti:

  1. Vedno pazite da izberete opcijo ‘Prilepi vrednosti’ in v tem primeru pač ne morete uporabiti bljižnice CTRL+V
  2. Na bljižnico CTRL+V postavite makro, ki izvede lepljenje po vrednosti. V tem primeru je problem, ker morate makro vedno priložiti in tudi oseba, ki uporablja takšen zvezek mora dovoliti izvajanje makrov.

Makro za lepljenje vrednosti

Makro za lepljenje samo vrednosti je zelo preprost:

Sub PrilepiSamoVrednosti()
 Selection.PasteSpecial Paste:=xlPasteValues, _
                        Operation:=xlNone, _
                        SkipBlanks:=False, _
                        Transpose:=False
End Sub

Vse kar je potrebno še storiti je, da temu makru določite bljižnico CTRL+V in vedno kadar boste uporabili CTRL+V (lepljenje) bo Excel poklical ta makro in prilepil samo vrednosti, ne pa tudi oblike.

Določanje bljižnice makra:

  1. Pritisnite ALT+F8 – odpre se seznam vseh markov
  2. V seznamu izberite makro ‘ PrilepiSamoVrednosti’ in pritisnite gumb Možnosti
  3. V kvadratek ob ‘CTRL+’ vpišite V

To je to.

Gmail koledar zna pošiljati SMS-e

Danes me je opomnik koledarja spet zmotil. Seveda sem ga prekinil in potem pa nanj pozabil. Malce sem razmišljal, da bi mi zelo ustrezalo, če bi namesto klasičnega opomnika dobil raje SMS.

Ne bodi len! Seveda sem se takoj zagnal na internet in pogledal, katera aplikacija mi zna za opomnik poslati SMS. Malce iščem med aplikacijami in njihovimi cenami/zmožnostmi… nakar opazim omembo Google koledarja 🙂

In res! Google koledar lahko – med vsemi ostalimi možnostmi – kot opomnik pošlje tudi SMS in to seveda zastonj.

Kako vključiti SMS pošiljanje opomnikov?

  1. Zaženete aplikacijo Google koledar in v gornjem desnem kotu Nastavitve.
    gmail_sms1
  2. Med nastavitvami koledarja boste našli tudi ‘Mobilne nastavitve’
    gmail_sms2
  3. Tu izberete državo in vpišete vašo telefonsko številko ter zahtevate varnostno kodo
    gmail_sms3
  4. Google vam po SMS-u pošlje varnostno kodo, ki jo vpišete v spodnje polje in to je to.
  5. Sedaj lahko kot opomnike uporabljate tudi SMS-e
    gmail_sms4

Skupinsko delo ali pomoč na daljavo

Po daljši odsotnosti, vam bom v današnjem prispevku predstavil dve zelo uporabni spletni storitvi, ki vam lahko pomagata pri skupinskem delu in/ali delu na daljavo.

Osebno obe orodji uporabljam, kadar pomagam uporabnikom na daljavo oz. kadar se pogovarjamo po telefonu pa je potrebno zraven še kaj narisati in/ali napisati.

Skupinsko pisanje – MoPad

V kolikor se znajdete v situaciji, ko je potrebno nekaj zapisati, uporabniki pa so raztreseni po pisarnah ali celo mestih (državah 😉 ) lahko uporabite orodje MoPad (https://etherpad.mozilla.org/)

Uporaba orodja (spletne strani) je skrajno preprosta. Ko pridete na omenjeno spletno stran imate na izbiro dva gumba. Z enim odprete javno beležko z drugim pa lahko stvari še malce bolj omejite oz. ustvarite delovno skupino.

Ko torej odprete novo beležko, s tem dobite edinstven spletni naslov (URL), ki seveda vsebuje osnovno ime spletne strani, ter avtomatično generirano ime vaše beležke (npr: https://etherpad.mozilla.org/bxYEgcJ3RU)

Vse kar morate narediti je da uporabnikom oz. sodelavcem posredujete omenjen spletni naslov in vsi bodo takoj videli vašo beležko in lahko pisali vanjo.

skupinsko_delo_1

Kot lahko hitro vidite je zaslon razdeljen na 4 dele:

  1. Zgoraj imate orodja za preprosto urejanje besedila
  2. Večji del zaseda beležka, kamor lahko pišete
  3. Desno zgoraj lahko vsak uporabnik zapiše svoje ime in s tem dobi svojo barvo
  4. Desno spodaj pa lahko uporabniki tudi govorite »chatate«, ne da bi pri tem pokvarili besedilo v beležki

Skupinsko risanje – WhiteBoard Fox

Arhitekturno enakovredno orodje za risanje pa se imenuje WhiteBoardFox in domuje na naslovu (http://whiteboardfox.com/). Ideja je povsem enakovredna že predstavljeni, le da v tem primeru uporabniki ne vpisujemo teksta (no seveda ga tuli lahko), temveč skupaj rišemo.

Tudi uporaba je enakovredna. Odprete novo risalno ploščo (delavno tablo) in njen naslov posredujete ostalim. S tem se lahko tudi ostali pridružijo skupini in skupaj ustvarite skico.

skupinsko_delo_2

In še najlepše…

Ker vse deluje v spletnem brskalniku lahko orodji uporabljate tako na računalniku, kot tablicah, telefonih in ostalih napravah, ki so povezane v splet in imajo spletne brskalnike.

Avtomatično številčenje v Word-u (III. del)

V prvem in drugem delu sem pokazal kako v Wordu deluje avtomatično številčenje, v zadnjem blogu te serije, pa bom pokazal kako številčiti poljubne elemente in seveda kako v Word-u številčiti slike kot 10a, 10b.

Poljubno številčenje

Za uporabo avtomatičnega številčenja nam ni potrebno poseči po bolj ali manj skritih oknih Worda, temveč lahko polje preprosto vstavimo sami. Ko želimo nek element oštevilčiti se postavimo na trak Vstavljanje in iz opcije Hitri deli izberemo Polje…

Odpre so novo okno za vstavljanje polj:word_stevilcenje6
V oknu poiščemo polje SEQ, mu zgoraj dodamo poljubno oznako (npr. člen) in že imamo novo avtomatično številčenje. V tem primeru bi torej lahko avtomatično številčili člene v nekem pravnem dokumentu.

Obstaja pa še hitrejše vrivanje formul in to preprosto tako, da pritisnete kombinacijo CTRL + F9 in formulo vpišete.

Številčenje slik kot 10a, 10b

Pri vprašanju številčenja slik s pod-zaporedjem a, b, c moramo torej najprej rešiti problem trenutne prekinitve številčenja. Ko Word naleti na sliko, ki naj bi jo številčil s številko 11, mu moramo to prepovedati.

To lahko dosežemo z uporabo stikal polj (parametrov polj). Vsako polje v Wordu lahko namreč ima eno ali več stikal, ki natančneje določajo obnašanje polja. Polje SEQ tako recimo pozna stikala \c, \h, \n, \r in \s.

Stikalo, ki zanima nas je \c saj je to stikalo, ko Wordu zaukaže naj v tem primeru ne išče naslednje številke, temveč naj vzame trenutno številko:

Polje Rezultat
Slika { SEQ Slika }…. Slika 1….
Slika { SEQ Slika }…. Slika 2….
Preglednica { SEQ Preglednica }…. Preglednica 1….
Slika { SEQ Slika \c }A…. Pazi! Slika 2A….
Preglednica { SEQ Preglednica }…. Preglednica 2….
Graf { SEQ Graf }…. Graf 1….
Slika { SEQ Slika \c }B….  Pazi Slika 2B….
Graf { SEQ Graf \c }A….  Pazi! Graf 1A….
Preglednica { SEQ Preglednica }…. Preglednica 2….

Z uporabo tega stikala lahko torej prvič sliko normalno številčimo in ji dodamo črko a:

Slika { SEQ Slika }a: Pregled v januarju

Naslednjič pa uporabimo stikalo \c in dodamo črko b:
Slika { SEQ Slika }b: Pregled v februarju

Ter s tem dobimo iskani rezultat! 😉

Avtomatično številčenje v Word-u (II. del)

V prejšnjem delu smo si ogledali kako avtomatično številčiti slike v Word-u. Odprti pa sta ostali vprašanji:

  1. Kje so tu kakšna polja?
  2. Kako to sploh deluje?

Kje so tu kakšna polja?

Ko v dokument vstavimo nov napis nam Word pravzaprav vrine polje, kar je lepo in hitro vidno, če mu zaukažemo, naj nam polja prikaže.

Word seveda polja skriva in prikazuje njihov rezultat, saj je to tisto kar nas kot uporabnike zanima!

Polja razkrijete preprosto tako, da pritisnete kombinacijo ALT + F9. Z omenjeno kombinacijo polja izmenično prikazujete ~ skrivate. Če imate torej v dokumentu podnaslovljeno sliko, to izgleda takole:

word_stevilcenje3
Ko polja prikažete pa takole:

 

word_stevilcenje4S tem sem torej razložil od kot se pojavijo polja oz. zakaj takšna polja sploh osvežujemo.

Kako to sploh deluje?

Kot vidite zgoraj, Word v dokument vriva polje SEQ. Besedica SEQ izhaja oz angleščine oz. besedice sequence oz. zaporedje, kot to imenujemo na sončni strani Alp.

V kolikor bi v dokument vstavili tudi avtomatično osveževanje tabel in gantogramov, bi se nam po dokumentu pojavile sledeča polja:

 

word_stevilcenje5

Iz tega je lepo razvidno kako Word-u uspe elemente avtomatično številčiti. Vsakič ko naleti na polje SEQ pogleda napis, ki ji sledi in ta napis privzame kot element številčenja. Ko prvič naleti na nek dokument mu postavi vrednost 1, naslednjič 2, potem 3…

Postopek je torej sledeč:

Polje Rezultat
Slika { SEQ Slika }…. Slika 1….
Slika { SEQ Slika }…. Slika 2….
Preglednica { SEQ Preglednica }…. Preglednica 1….
Slika { SEQ Slika }…. Slika 3….
Preglednica { SEQ Preglednica }…. Preglednica 2….
Graf { SEQ Graf }…. Graf 1….
Slika { SEQ Slika }…. Slika 4….
Graf { SEQ Graf }…. Graf 2….
Preglednica { SEQ Preglednica }…. Preglednica 2….

 

Naslednjič pa bom odgovoril na originalno vprašanje uporabnice foruma ‘Kako doseči, da Word številči slike kot 10a in 10b‘.

 

Avtomatično številčenje v Word-u (I. del)

Oh, zmanjkalo mi je časa za redno pisanje bloga, saj sem se ukvarjal z zanimivim projektom za podjetje EGP, kjer je bila moja naloga optimizirati tisk. Zelo zanimivo, kako nastane škatlica oz. tisk na njej…

Toda seveda to ni poanta bloga, zato se vrnimo k temu, kar vam imam namen pokazati danes oz. vam bom prikazal v par naslednjih prispevkih. K pisanju je pripomoglo vprašanje uporabnice mojega foruma, ki jo je zanimalo, kako bi lahko v Word-u oblikovala dokument tako, da bi imele slike številčenje 10a, 10b in podobno. Seveda je tu govora o avtomatičnem številčenju :).

Kot vedno bomo torej najprej spoznali osnove.

Kako torej podnasloviti slike, da se bo do avtomatično številčile?

Preprosto.

  1. V Wordu označite sliko in pritisnite desni miškin gumb.
  2. Glede na verzijo Worda se vam bo odprl hitri menu z več ali manj izbirami. word_stevilcenje1
  3. Iz menija izberite opcijo Vstavi napis… In zopet se vam bo, glede na verzijo Worda, odprlo novo okno, ki je bolj ali manj podobno sledečemu: word_stevilcenje2
  4. V vsakem primeru pa boste imeli možnost napisati naslov slike (prvo vnosno polje Napis). Nikakor seveda ne izbrišite napisa ‘Slika 1’!
  5. Izbrali boste lahko drugačno oznako, saj ob številčenju seveda niste omejeni samo na slike (izbor Oznaka)
  6. In izbrali boste lahko položaj napisa; torej ali bo napis nad sliko ali pod njo (izbor Položaj).
  7. Ob teh opcijah pa imate, kot vidite, na voljo še nekaj preostalih opcij med katerimi sta uporabni predvsem dve:
  • Nova oznaka – z njo si izberete novo oznako za nek vaš element (npr. Gantagram)
  • Oštevilčenje – kjer lahko poveste ali bo v oznako slike vključena tudi številka poglavja. Včasih namreč želimo oz. potrebujemo dokument, kjer ima vsako poglavje številčene slike od 1 dalje.

Ko torej takole dodate napise k slikam, lahko slike (z napisi skupaj!) prosto premikate po dokumentu oz. jih vrivate / brišete … pa bo številčenje vedno pravilno. Seveda ne pozabite osvežiti številčenja oz. osvežiti polj! To naredite s tipko F9 (Osveži polja):

  1. Izberite celoten dokument (CTRL + A)
  2. Osvežite polja (F9).

Kakšna polja?

Vprašanje, ki se pojavi je: »Zakaj moramo osvežiti polja oz. kje so kakšna polja?«.

Na to vprašanje pa vam bom odgovoril naslednjič, ko bom razložil na kakšen način takšno avtomatično številčenje sploh deluje.

Številčenje v SQL podatkovnih bazah IV

Naslednji način pridobivanja številke (prvi del, drugi del, tretji del) pa je poenotena tabela za avtomatično številčenje različnih (poljubnih) elementov. Spet velja, da je to smiselno za MSSql in SQLite podatkovni bazi, saj Oracle pač uporablja sekvence.

Definirajmo torej enotno tablo za številčenje. Tabela bo imela 3 polja. Prvo polje je pač primarni ključ. Za to rešitev ga ne potrebujemo, vendar pa sem osebno pristaš pravila, da mora imeti vsaka tabela primarni ključ. Drugo polje je nek opis števca saj je želja, da se za vsak različen števec neodvisno številči. Tretje polje pa je pač števec sam. tabela s podatki bi torej izgledala takole:

ID   OPIS       ŠTEVILO
1    Dobavnica      1
2    Predračun      1
3    Predračun      2
4    Račun          1
5    Predračun      3
6    Račun          2
7    Dobavnica      2
8    Dobavnica      3
9    Dobavnica      4
10   Predračun      4
11   Dobavnica      5
12   Račun          3
13   Dobavnica      6

Definicija tabele

MSSql:

CREATE TABLE SEKVENCA
( ID        INT   IDENTITY(1,1)  NOT NULL
, OPIS      VARCHAR(15) NOT NULL
, STEVILO   INT         NOT NULL
);

SQLite:
CREATE TABLE SEKVENCA
( ID        INTEGER     NOT NULL
, OPIS      VARCHAR(15) NOT NULL
, STEVILO   INTEGER     NOT NULL

, PRIMARY KEY(ID)
);

Pridobivanje nove številke:

MSSql:

BEGIN TRANSACTION;
INSERT INTO SEKVENCA (OPIS, STEVILO) VALUES('racun', (SELECT COALESCE(MAX(STEVILO) + 1, 1) FROM SEKVENCA WHERE OPIS = 'racun'));
COMMIT TRANSACTION;

SQLite:
BEGIN TRANSACTION;
INSERT INTO SEKVENCA (OPIS, STEVILO) VALUES('racun', (SELECT COALESCE(MAX(STEVILO) + 1, 1) FROM SEKVENCA WHERE OPIS = 'racun'));
COMMIT TRANSACTION;

OPOMBA: Uporaba transakcije je obvezna! Na pogled se zdi, da se izvaja INSERT stavek, ki je avtonamna akcija, toda znotraj INSERT stavka se izvaja še SELECT stavek in vmes se lahko vsebina podatkov spremeni!