- François Rossignol
- PowerBuilder
- Wednesday, 21 February 2018 08:47 AM UTC
Hi
What I'm doing is using external datawindows as templates for another external datawindow (to make a calendar).
From the templates I get the objects I'll create in the calendar datawindow.
Basically I dw_template.describe('Datawindow.Objects')
Loop though the objects.
for each object I dw_template.describe('object_name.attributes')
Loop through the attributes and store the key:values in a datastore.
Along the key I ignore the key "type" and "attributes" and those pesky "?" (why would the .attributes return me attributes that not relevant for the object in question ?)
I do some mumbo jumbo on certain attribute .
Loop through the key:values datastore to generate a create string.
Finnaly I dw_calendar.modify(create_string)
An example of a create string
create text(accessiblerole='0' alignment='2' band='detail' border='0' color='8421504' enabled='1' focusrectangle='no' height='64' height.autosize='no' html.valueishtml='0' moveable='0' name='t_libelle_jour_semaine_1_1' pointer='Arrow!' resizeable='0' slideleft='no' slideup='no' tabsequence='0' text=' libelle_jour_semaine_1 ' visible='1' width='0 compute_x_ligne_verticale_2 - compute_x_ligne_verticale_1 - 18' x='0 compute_x_ligne_verticale_1 + 9' y='8' background.brushmode='0' background.color='536870912' background.gradient.angle='0' background.gradient.color='8421504' background.gradient.focus='0' background.gradient.repetition.count='0' background.gradient.repetition.length='100' background.gradient.repetition.mode='0' background.gradient.scale='100' background.gradient.spread='100' background.gradient.transparency='0' background.mode='1' background.transparency='0' tooltip.backcolor='134217752' tooltip.delay.initial='0' tooltip.delay.visible='32000' tooltip.enabled='0' tooltip.hasclosebutton='0' tooltip.icon='0' tooltip.isbubble='0' tooltip.maxwidth='0' tooltip.textcolor='134217751' tooltip.transparency='0' font.charset='0' font.face='Verdana' font.family='2' font.height='-10' font.pitch='2' font.weight='700' tag='-')
But the modify fails. I'm trying to figure it out but I'm a bit at a loss there.
Now I have some questions for the experts:
1 - Are quotes important ?
Will they make it fail if there's quotes where there's to supposed to be some ? (for example band='detail' instead of band=detail)
And the opposite will it fail if I don't put them where they're supposed to be (except when there's spaces of course) (for example pointer=Arrow! instead of Pointer=Arrow!
Now if that's important how can I know where I'm supposed to add quotes or not without going through all the attributes of all the objets with the datawindow syntax tool.
I'd like to keep things generic and not have to create/maintain such a list.
2 - When I compare the list of attributes from the object_name.attributes to what I have from the datawindow syntax tool, there's a few extras in the attributes list.
Now those extras are included in the create_string that I generate. Is that the reason for the failure ? Or is it that certain attributes must not be included in the create and others are just optional ?
3 - Is there a more efficient way to get all those attributes apart from getting the datawindow.syntax and parsing the lines with some kind of regular expression (I still want the key:value thing)
Thanks in advance.
Regards,
François
Find Questions by Tag
Helpful?
If a reply or comment is helpful for you, please don’t hesitate to click the Helpful button. This action is further confirmation of their invaluable contribution to the Appeon Community.