|
|
Usersite
»
UserSite BA
»
Novac
»
Platni promet
»
ROBNO - FINANSIJE, PRENOS OPOMBE!
Stopnja: Datalab
Pridružen(a): 14/08/2009(UTC) Objave: 1
Prejete zahvale: 2 krat v 2 objavah
|
Pozz,
u the_move.acnote je varchar(MAX) i obrađuje je Rich Text editor, u the_accttransitem.acnote je samo varchar(255), kako smjestiti napomenu iz robnog u financijsko? napravio sam proceduru koja to radi odavno, ali u zadnjim bildima je gornja razlika u tipovima polja i načinima unosa drastična tako da dobijem situaciju kao na slici 1 i 2.
Ovu napomenu u nalogu ipak mogu odprintati ispravno na kartici, mada izgleda ružno ko pašče, ali ako su duže od 255 chr onda je problem!
Pitanje: ima li neki obratni konverter da mogu vratiti iz RICHTEXT u normalni tekst, time bi se dužina smanjila na normalnu i izbjegla ova strahota u pogledu na nalog?
pogledati slike! neznam da li sam ovo nekad pitao ali nisam još riješio.
LP
|
|
|
|
Stopnja: Datalab
Pridružen(a): 14/08/2009(UTC) Objave: 0
Prejete zahvale: 1 krat v 1 objavah
|
U sustini imas vise nacina kako to da napravis, jedna varijanta je preko SQL CLR funkcija, druga je izrada vlastitog parsera koji moze biti manje ili vise ucinkovit.
Evo ti jedan primjer, koji ja inace koristim za ovo, spremio sam ti i u .txt zbog preglednosti kao i video.
|
|
|
|
Stopnja: Datalab
Pridružen(a): 14/08/2009(UTC) Objave: 0
Prejete zahvale: 1 krat v 1 objavah
|
CREATE FUNCTION dbo.fnParseRTF ( @rtf VARCHAR(8000) ) RETURNS VARCHAR(8000) AS BEGIN DECLARE @Stage TABLE ( Chr CHAR(1), Pos INT )
INSERT @Stage ( Chr, Pos ) SELECT SUBSTRING(@rtf, Number, 1), Number FROM master..spt_values WHERE Type = `p` AND SUBSTRING(@rtf, Number, 1) IN (`{`, `}`)
DECLARE @Pos1 INT, @Pos2 INT
SELECT @Pos1 = MIN(Pos), @Pos2 = MAX(Pos) FROM @Stage
DELETE FROM @Stage WHERE Pos IN (@Pos1, @Pos2)
WHILE 1 = 1 BEGIN SELECT TOP 1 @Pos1 = s1.Pos, @Pos2 = s2.Pos FROM @Stage AS s1 INNER JOIN @Stage AS s2 ON s2.Pos > s1.Pos WHERE s1.Chr = `{` AND s2.Chr = `}` ORDER BY s2.Pos - s1.Pos
IF @@ROWCOUNT = 0 BREAK
DELETE FROM @Stage WHERE Pos IN (@Pos1, @Pos2)
UPDATE @Stage SET Pos = Pos - @Pos2 + @Pos1 - 1 WHERE Pos > @Pos2
SET @rtf = STUFF(@rtf, @Pos1, @Pos2 - @Pos1 + 1, ``) END
SET @Pos1 = PATINDEX(`%\cf[0123456789][0123456789 ]%`, @rtf)
WHILE @Pos1 > 0 SELECT @Pos2 = CHARINDEX(` `, @rtf, @Pos1 + 1), @rtf = STUFF(@rtf, @Pos1, @Pos2 - @Pos1 + 1, ``), @Pos1 = PATINDEX(`%\cf[0123456789][0123456789 ]%`, @rtf)
SELECT @rtf = REPLACE(@rtf, `\pard`, ``), @rtf = REPLACE(@rtf, `\par`, ``), @rtf = LEFT(@rtf, LEN(@rtf) - 1)
SELECT @rtf = REPLACE(@rtf, `\b0 `, ``), @rtf = REPLACE(@rtf, `\b `, ``)
SELECT @rtf = STUFF(@rtf, 1, CHARINDEX(` `, @rtf), ``)
RETURN @rtf END
|
|
|
|
Stopnja: Datalab
Pridružen(a): 14/08/2009(UTC) Objave: 0
Prejete zahvale: 1 krat v 1 objavah
|
---------
select acnote from the_move where ackey like `1112000000005`
DECLARE @Sample TABLE (data VARCHAR(8000)) INSERT @Sample SELECT acnote from the_move where ackey like `1112000000005`
SELECT dbo.fnParseRTF(data) FROM @Sample
|
|
|
|
Stopnja: Datalab
Pridružen(a): 14/08/2009(UTC) Objave: 0
Prejete zahvale: 1 krat v 1 objavah
|
---
i onda najbolje da iskoristis ovaj rezultat u svojoj proceduri, ili kovertovani field spremis u novo polje i baratas sa njim kao plain text, to ces vec sam skontati sta ti je lakse kada pogledas video.
LP
|
|
|
|
Stopnja: Datalab
Pridružen(a): 14/08/2009(UTC) Objave: 0
Prejete zahvale: 1 krat v 1 objavah
|
ne znojiš se ti od mene nego uključi klimu :) samo sam pitao ima likakv konverter, nisam mislio da ćeš ga praviti, znači ručno čišćenje, ok, kako uspiješ napraviti ovako komplikovanu funkciju? ne ulazeći u to kako radi, dobro je očistila!
hvala, poslužiće itekako!
nadam se da radi za različite rtf koji se generišu neznam kako, valjda operateri nešto podebljaju ili promijene font i onda se i rtf promijeni, davno sam to gledao da očistim ali kad sam primijetio da se mijenja oblik odustao sam :)
lp
|
|
|
|
Stopnja: Datalab
Pridružen(a): 14/08/2009(UTC) Objave: 0
Prejete zahvale: 1 krat v 1 objavah
|
evo rezultat tvoje funkcije uz malo dotjerivanja na kraju, eliminacija \f1,\f2 isl...
(u prvom redu je rezultat txt a u drugom prvobitni rtf tekst)
svaka čast! super!
ostale su samo perke!
LP
|
|
|
|
Stopnja: Datalab
Pridružen(a): 14/08/2009(UTC) Objave: 0
Prejete zahvale: 1 krat v 1 objavah
|
radice i za razlicite rtf, uz jos malo tvog dotjerivanja izgledace beskprijekorno. Mozes close.
LP
|
|
|
|
Stopnja: Datalab
Pridružen(a): 14/08/2009(UTC) Objave: 0
Prejete zahvale: 1 krat v 1 objavah
|
već uključeno u rad u bazi NLB Banke, ostala su samo dva entera na kraju kao dvije kockice, ali i to ću nekako skinuti...<br><br>excellent!!!<br><br>LP
|
|
|
|
Stopnja: Datalab
Pridružen(a): 24/04/2009(UTC) Objave: 31
|
V Pantheonu imate već napravljenu stored proceduru RTFtoANSI(ili nešto slično), koja napravi konverziju iz RTF formata u text format.
|
|
|
|
Stopnja: Datalab
Pridružen(a): 24/04/2009(UTC) Objave: 31
|
tačan naziv funkcije je dbo.fPA_RtfToAnsi(acNote)
|
|
|
|
Stopnja: DL Partner
Pridružen(a): 24/04/2009(UTC) Objave: 15
|
ovo sam tek sada vidio (poslije 6mj), zamolio bih admina da kada prebacuje naše tickete stavi i nas u alert tako da dobijemo event komentare na mail! isprobacemo naravno i ovo, thx tomazw!
|
|
|
|
Usersite
»
UserSite BA
»
Novac
»
Platni promet
»
ROBNO - FINANSIJE, PRENOS OPOMBE!
Hitra navigacija
Ne smete dodajati novih tem.
Ne smete odgovarjati na teme.
Ne smete brisati svojih objav.
Ne smete urejati svojih objav.
Ne smete ustvarjati anket.
Ne smete glasovati v anketah.
|
|
|