Forum

Dobrodošli na forum PANTHEON uporabniških strani.
HD_prijavio
#1 Objavljeno : 21 September 2011 16:22:00(UTC)
HD_prijavio

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
HD_odgovorio
#2 Objavljeno : 21 September 2011 16:22:00(UTC)
HD_odgovorio

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.

HD_odgovorio
#3 Objavljeno : 21 September 2011 16:22:00(UTC)
HD_odgovorio

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
HD_odgovorio
#4 Objavljeno : 21 September 2011 16:22:00(UTC)
HD_odgovorio

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

HD_odgovorio
#5 Objavljeno : 21 September 2011 16:22:00(UTC)
HD_odgovorio

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
HD_odgovorio
#6 Objavljeno : 21 September 2011 16:22:00(UTC)
HD_odgovorio

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
HD_odgovorio
#7 Objavljeno : 21 September 2011 16:22:00(UTC)
HD_odgovorio

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

HD_odgovorio
#8 Objavljeno : 21 September 2011 16:22:00(UTC)
HD_odgovorio

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
HD_odgovorio
#9 Objavljeno : 21 September 2011 16:22:00(UTC)
HD_odgovorio

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
tomazw
#10 Objavljeno : 21 September 2011 19:53:15(UTC)
tomazw

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.
tomazw
#11 Objavljeno : 22 September 2011 10:00:29(UTC)
tomazw

Stopnja: Datalab

Pridružen(a): 24/04/2009(UTC)
Objave: 31

tačan naziv funkcije je
dbo.fPA_RtfToAnsi(acNote)
SMAJCHY
#12 Objavljeno : 18 April 2012 03:43:16(UTC)
SMAJCHY

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!
RSS vir  Atom Feed
Uporabniki v tej temi
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.

Orange-Grey Theme Created by Ingo Herbote (WatchersNET.de)
Poganja {0}, verzija {1} YAF 1.9.6.1 Under DNN | YAF © 2003-2025, Yet Another Forum.NET
Ta stran se je naložila v 0,580 sekunde.