Forum

HD_prijavio
#1 Objavljeno: : 21 September 2011 16:22:00(UTC)
HD_prijavio

Stepen: Datalab

Pridružen(a): 14/08/2009(UTC)
Komentari: 1

Was thanked: 2 time(s) in 2 post(s)
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

Stepen: Datalab

Pridružen(a): 14/08/2009(UTC)
Komentari: 0

Was thanked: 1 time(s) in 1 post(s)
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

Stepen: Datalab

Pridružen(a): 14/08/2009(UTC)
Komentari: 0

Was thanked: 1 time(s) in 1 post(s)

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

Stepen: Datalab

Pridružen(a): 14/08/2009(UTC)
Komentari: 0

Was thanked: 1 time(s) in 1 post(s)
---------

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

Stepen: Datalab

Pridružen(a): 14/08/2009(UTC)
Komentari: 0

Was thanked: 1 time(s) in 1 post(s)
---

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

Stepen: Datalab

Pridružen(a): 14/08/2009(UTC)
Komentari: 0

Was thanked: 1 time(s) in 1 post(s)

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

Stepen: Datalab

Pridružen(a): 14/08/2009(UTC)
Komentari: 0

Was thanked: 1 time(s) in 1 post(s)

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

Stepen: Datalab

Pridružen(a): 14/08/2009(UTC)
Komentari: 0

Was thanked: 1 time(s) in 1 post(s)

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

Stepen: Datalab

Pridružen(a): 14/08/2009(UTC)
Komentari: 0

Was thanked: 1 time(s) in 1 post(s)

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

Stepen: Datalab

Pridružen(a): 24/04/2009(UTC)
Komentari: 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

Stepen: Datalab

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

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

Stepen: DL Partner

Pridružen(a): 24/04/2009(UTC)
Komentari: 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 izvor  Atom Feed
Korisnici u toj temi
Brza navigacija  
Ne možete dodavati nove teme.
Ne možete odgovarati na teme.
Ne možete brisati svoje objave.
Ne možete uređivati svoje objave.
Ne možete kreirati ankete.
Ne možete popunjavati ankete.

Orange-Grey Theme Created by Ingo Herbote (WatchersNET.de)
Podržano {0}, verzija {1} YAF 1.9.6.1 Under DNN | YAF © 2003-2025, Yet Another Forum.NET
Stranica se učitala za 0,633 sekunde.