Forum

Welcome Guest! To enable all features please try to register or login.
HD_prijavio
#1 Posted: : 21 September 2011 16:22:00(UTC)
HD_prijavio

Rank: Datalab

You have been a member since:: 14/08/2009(UTC)
Objave: 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 Posted: : 21 September 2011 16:22:00(UTC)
HD_odgovorio

Rank: Datalab

You have been a member since:: 14/08/2009(UTC)
Objave: 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 Posted: : 21 September 2011 16:22:00(UTC)
HD_odgovorio

Rank: Datalab

You have been a member since:: 14/08/2009(UTC)
Objave: 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 Posted: : 21 September 2011 16:22:00(UTC)
HD_odgovorio

Rank: Datalab

You have been a member since:: 14/08/2009(UTC)
Objave: 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 Posted: : 21 September 2011 16:22:00(UTC)
HD_odgovorio

Rank: Datalab

You have been a member since:: 14/08/2009(UTC)
Objave: 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 Posted: : 21 September 2011 16:22:00(UTC)
HD_odgovorio

Rank: Datalab

You have been a member since:: 14/08/2009(UTC)
Objave: 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 Posted: : 21 September 2011 16:22:00(UTC)
HD_odgovorio

Rank: Datalab

You have been a member since:: 14/08/2009(UTC)
Objave: 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 Posted: : 21 September 2011 16:22:00(UTC)
HD_odgovorio

Rank: Datalab

You have been a member since:: 14/08/2009(UTC)
Objave: 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 Posted: : 21 September 2011 16:22:00(UTC)
HD_odgovorio

Rank: Datalab

You have been a member since:: 14/08/2009(UTC)
Objave: 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 Posted: : 21 September 2011 19:53:15(UTC)
tomazw

Rank: Datalab

You have been a member since:: 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 Posted: : 22 September 2011 10:00:29(UTC)
tomazw

Rank: Datalab

You have been a member since:: 24/04/2009(UTC)
Objave: 31

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

Rank: DL Partner

You have been a member since:: 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 Feed  Atom Feed
Users browsing this topic
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

Orange-Grey Theme Created by Ingo Herbote (WatchersNET.de)
Powered by YAF 1.9.6.1 Under DNN | YAF © 2003-2025, Yet Another Forum.NET
This page was generated in 0,487 seconds.