Jump to content
uniGUI Discussion Forums
SayeyeZohor

مشکل فیلدهای از نوع twidememo

Recommended Posts

من یک فیلد دارم در اسکیوال از نوع nvarchar(max)

این فیلد را از طریق یک uniHtmlMemo پر می کنم که این شکلی در دیتابیس  ذخیره می شود


<div align="right">شسیشیش</div><div align="right">شسبنشنبتدش</div><div align="right">شنبتاشن</div>

حالا زمان نمایش این فیلد  در گرید من گزینه DisplayMemo رو فعال کردم و به خوبی اطلاعات نمایش داده می شه

مشکل من زمانی هستش که اطلاعات وارد شده در این فیلد بالا میره و به این شکل میشه و ترکیب گرید رو به هم می ریزه

 

image.png.35ef65d9472625a8d187a87b59969fd9.png

 

من میخوام به طور مثال حداکثر 100 کاراکتر از این فیلد رو نمایش بدم

با calcfield هم کد زدم نشد

 

procedure TUniCheckListNezaratD2D3ProbNew.UQ_NezaratD3CalcFields(DataSet: TDataSet);
var
  Len: Integer;
begin
  Len := StrToIntDef(IFTHEN(Length(UQ_NezaratD3SharhHtmlNew.AsWideString) <= 100, IntToStr(Length(UQ_NezaratD3SharhHtmlNew.AsWideString)), '100'), 0);
  UQ_NezaratD3SharhHtmlShort.AsString := UQ_NezaratD3SharhHtml.AsString; //Copy(UQ_NezaratD3SharhHtmlNew.AsWideString, 0, Len) + ' ...';
end;

 

Share this post


Link to post
Share on other sites
5 hours ago, SayeyeZohor said:

aloooo, is anybody here?

Can you translate to English ?

Share this post


Link to post
Share on other sites

Hi,

I have read your post. Can you explain what is the problem? It is not clear from your post.

PS: When you decide to show HTML content in your grid cell the end result will be solely determined by HTML rules. uniGUI can not change how HTML content will be rendered.

Share this post


Link to post
Share on other sites

Hi, with this code, I Remove all tag in html text in sql function and then I copy and display a part of the text

I made a trick :blink2::biggrin:

tnx @Sherzod @Farshad Mohajeri

 

CREATE FUNCTION [dbo].[udf_StripHTML](@HTMLText VARCHAR(MAX))
RETURNS VARCHAR(MAX)
AS
BEGIN	
    DECLARE @Start INT
	DECLARE @End INT
	DECLARE @Length INT
	
	SET @Start	= CHARINDEX('<',@HTMLText)
	SET @End	= CHARINDEX('>',@HTMLText,CHARINDEX('<',@HTMLText))
	SET @Length = (@End - @Start) + 1
	
	WHILE (@Start > 0) AND (@End > 0) AND (@Length > 0)
	BEGIN
		SET @HTMLText	= STUFF(@HTMLText,@Start,@Length,' ')
		SET @Start		= CHARINDEX('<',@HTMLText)
		SET @End		= CHARINDEX('>',@HTMLText,CHARINDEX('<',@HTMLText))
		SET @Length		= (@End - @Start) + 1
	END
	RETURN LTRIM(RTRIM(@HTMLText))
END

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×