• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1034
  • Last Modified:

Datawindow modify expression, length property.

I have come across a very strange limitation of pb7 (maybe I am wrong).

To be very brief I have a datawindow control dw_1 with external dataobject d_external.
d_external has one column s_column_1 whoose length is 11. I want to change that length to 20 at runtime.

I am successfully doing these:
s_expr_width      =  "s_column_1.width="+string(a_stparm.first_col_width*30)
s_expr_edit_limit =  "s_column_1.edit.limit="+string(a_stparm.first_col_width)   //first_col_width has got value 20
ret_value=dw_1.Modify(s_expr_width)
ret_value=dw_1.Modify(s_expr_edit_limit)

I mean, I am able to modify width and edit limit propery but I don't know what is the name of length propetry.

Dear expert, I would be able to give any feedback tomorrow.(Please forgive)
0
Mateen
Asked:
Mateen
  • 3
  • 3
2 Solutions
 
Vikas_DixitCommented:
I guess u r talking abt the type or coltype property. Both the properties are describe only.
so only option is to do the change in dw syntax and re-create dw using the dw.Create() method.

Regards,
VIkas D
0
 
MateenAuthor Commented:

Hi vikas:

If I export d_external then a line from d_external.srd is:

table(column=(type=char(11) updatewhereclause=no name=s_column_1_ddw dbname="s_column_1" )

I want to change char(11) with char(20). I am wondering why this facility is not provided in modify properties.
0
 
diasroshanCommented:
hi mateen,

type = char(11) as posted by u...

here char(11) is the database column length and datatype....

there is no way by which this can be changed by PB coz this is only the database column specification which the datawindow is showing...

to have a change of length u need to do necessary alteration in ur backend... alter the length of ur column to 20 and then only can the datawindow show the change of length....

do ask for more assistance...

Cheers,
Rosh
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
diasroshanCommented:
hi,

oops i'm sorry... u are refering to an external dw... well then there's no talk about altering the backend...sorry..

i don't think its possible to change the column length dynamically unless manually doing it in the case of external dw...

Rosh
0
 
MateenAuthor Commented:
Hi vikas:

Agreed that create method is the only option.

In the open event doing this

string ls_syntax
long position,RETVALUE
ls_syntax=dw_1.object.datawindow.syntax
messagebox('ORIGINAL SYNTAX',ls_syntax)
position=pos(ls_syntax,'char(11)')
ls_syntax=replace(ls_syntax,position,8,'char(20)')
messagebox('CHANGED SYNTAX',ls_syntax)
ls_syntax=dw_1.object.datawindow.syntax
RETVALUE=dw_1.create(ls_syntax)
MESSAGEBOX('SUCCESS/FAILURE OF CREATE',STRING(RETVALUE))
dw_1.settransobject(sqlca)
ls_syntax=dw_1.object.datawindow.syntax
messagebox('NEW SYNTAX',ls_syntax)

retvalue shows 1 meaning successful creation. But   ls_syntax=dw_1.object.datawindow.syntax after recreation is showing old values.
0
 
diasroshanCommented:
hi mateen,
i guess i found the error in the code pasted by u...

just remove/comment the line..
'ls_syntax=dw_1.object.datawindow.syntax'
before the line...
'RETVALUE=dw_1.create(ls_syntax)'

u r getting the wrong 'ls_syntax' before dw_1.create


hope that helps...

Cheers,
Rosh
0
 
MateenAuthor Commented:
U r right rosh.
0

Featured Post

[Webinar] Cloud and Mobile-First Strategy

Maybe you’ve fully adopted the cloud since the beginning. Or maybe you started with on-prem resources but are pursuing a “cloud and mobile first” strategy. Getting to that end state has its challenges. Discover how to build out a 100% cloud and mobile IT strategy in this webinar.

  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now