Le forum (ô combien francophone) des utilisateurs de Powerbuilder.





Bonjour,
Voici ma structure :
Me fenêtre (w_sheet_account) contient une datawindow de nom dw_print.
Cette dernière (dw_print) contient elle-même un report du nom de rpt_users.
Dans ce rapport, je souhaite modifier le texte du titre de colonne nommée user_number_t.
Le code suivant - depuis w_sheet_account - génère parfois des erreurs du type "error accessing external object property" :
dw_print.object.rpt_users.object.user_number_t.text = 'essai'
J'essaie donc d'utiliser la fonction Modify() depuis w_sheet_account, mais sans succès :
string ls_info_command ls_info_command = dw_print.Modify("dw_print.rpt_users.user_number_t.text = 'essai' ") messagebox("", ls_info_command)
Le mesageBox me révèle des erreurs de syntaxe précisément après ".text".
J'ai essayé plusieurs syntaxes différents mais sans succès : il semblerait que ce soit du au fait que la propriété concerne un rapport et non une datawindow... Ou peut-être est-ce du à mon architecture : datawindow - report - control ?
Je vous remercie pour votre aide !
Dernière modification par Nyphel (16-05-2008 13:05:40)
Hors ligne








Bonjour,
Pourquoi ne pas coder dynamiquement dans ton dataobject le changement du nom de ta colonne ?

Hors ligne





A vrai dire je reprend un code déjà existant mais qui lève des erreurs.
Dans le cas présent, le changement de nom est effectué depuis ma sheet, lorsque l'utilisateur demande une impression. Le nom est alors récupéré à partir de la BDD, et le nom de colonne du rapport est mis à jour (système d'internationalisation).
De plus, certains champs du rapport sont modifiés en fonction des actions de l'utilisateur sur la sheet. Par exemple, certaines données de la sheet doivent être écrites sur le rapport pour le personnaliser. Dès lors, la mise à jour du rapport se fait lorsqu'un certain event de la sheet est déclenché.
Dernière modification par Nyphel (06-05-2008 14:37:22)
Hors ligne











Bonjour,
Je ne sais pas si ça peut marcher comme ça, mais as-tu essayé cette notation:
string ls_info_command ls_info_command = dw_print.Modify("rpt_users.user_number_t.text = 'essai'") messagebox("", ls_info_command)
PS: pour la lisibilité
Hors ligne





Oui j'ai testé cette syntaxe mais sans succès. Le message reste identique.
J'ai aussi tenté ce genre de choses :
string ls_info_command ls_info_command = dw_print.object.rpt_users.Modify("user_number_t.text = 'essai'") messagebox("", ls_info_command)
Mais dans ce cas là je retrouve mon message d'erreur du type "accessing external object property".
Hors ligne











Le describe suivant te retourne quoi comme expression?
string ls_expression ls_expression = dw_print.object.rpt_users.Describe("user_number_t.text") messagebox("Expression", ls_expression)
Je suppose qu'il n'y a pas d'erreur sur le name de ton static text
Au fait, tu es sur quelle version PB et sur quel SGBD?
Hors ligne
sinon, fais nous un export de tes datawindows.

Hors ligne





string ls_expression ls_expression = dw_print.object.rpt_users.Describe("user_number_t.text") messagebox("Expression", ls_expression)
Le Describe me retourne le même message d'erreur de type "accessing external object property".
Je confirme qu'il n'y a pas d'erreur sur le name de mon static field, j'ai vérifié à plusieurs reprises; ;)
Je suis sur PowerBuilder 10.2.0 Build 8075, sous Oracle 9.2.
Je ne peux pas faire un export complet de mes datawindows pour raison de confidentialité du projet :-/
Hors ligne











Essaye en faisant un GetChild sur ton report, afin de faire un Modify sur le datawindowchild récupéré
Aide PB a écrit:
A report is a DataWindow that it part of a composite DataWindow. A report is read-only. When you define the composite DataWindow in the DataWindow painter, make sure you give each report a name using the Name attribute of the Report object's property sheet so that you can refer to it in the GetChild function. You must use the report name (not the name of the DataWindow object in which the report has been placed) when calling GetChild.
Use GetChild when you need to explicitly retrieve data for a child DataWindow or report. Although PowerBuilder automatically retrieves data for the child or report when the main DataWindow is displayed, you need to explicitly retrieve data when there are retrieval arguments or when conditions change and you want to retrieve new rows.
When you insert a row or retrieve data in the main DataWindow, PowerBuilder automatically retrieves data for the child DataWindow. If the child DataWindow has retrieval arguments, PowerBuilder will display a dialog box asking the user for values for those arguments. To suppress the dialog box, you can explicitly retrieve data for the child before changing the main DataWindow (see the example).
Nested reports and external data sources You can't use GetChild to get a reference to a report in a composite DataWindow when the data source of the nested report is external.
Changing property values with the Modify function can cause the reference returned by GetChild to become invalid. After setting such an property, call GetChild again. If a property causes this behavior, it is noted in its description in the DataWindow Reference.
Hors ligne





En effet, je me suis tourné vers cette solution avant de poster ma demande d'aide. Toutefois je ne parviens pas à en tirer quoi que ce soit...
Exemple :
DataWindowChild child_report integer rtncode rtncode = dw_print.GetChild('rpt_users', child_report) IF rtncode = -1 THEN MessageBox("Error", "Not a DataWindowChild")
DataWindowChild child_report integer rtncode rtncode = dw_print.GetChild('rpt_users.user_number_t', child_report) IF rtncode = -1 THEN MessageBox("Error", "Not a DataWindowChild")
DataWindowChild child_report integer rtncode rtncode = dw_print.GetChild('rpt_users.object.user_number_t', child_report) IF rtncode = -1 THEN MessageBox("Error", "Not a DataWindowChild")
Le message d'erreur est à chaque fois levé :-/
En tous cas, merci pour l'aide que vous m'apportez !
Dernière modification par Nyphel (06-05-2008 16:17:27)
Hors ligne











Ton report est une external?
Hors ligne





A vrai dire je n'en sais rien, je reprends le projet et ne le maitrise pas bien... De même que je débute en Pb.
Qu'est-ce que ça signifie un "report external" ?
Si il s'agit de source externe, et bien je pense que oui : les données sont chargées depuis la base de données.
Dernière modification par Nyphel (06-05-2008 16:28:46)
Hors ligne











C'est au niveau du datasource de la datawindow utilisée comme report: Il faut que tu regardes comment elle est chargée: Par requête SQL, par procédure stockée, ou par importation de données depuis un fichier.
Pour plus d'infos, voir dans PB
Hors ligne





Il s'agit d'une procédure stockée...
Donc si je comprends bien c'est une source externe et GetChild() ne peut pas m'aider ?
Dernière modification par Nyphel (06-05-2008 16:33:09)
Hors ligne











Si la procédure stockée est visible quand tu cliques sur le bouton SQL au niveau de la datawindow (datasource), ce n'est pas une external.
Par contre, si la procédure stockée est appelée depuis le powerscript et que les données sont mappées dans ta datawindow, alors là, c'est bien une external.
Hors ligne





Mon bouton SQL est systématiquement grisé.
Je vois la procédure en faisant un clic-droit sur l'onglet "Column Specification" -> Stored procedure.
Hors ligne











Ok, ce n'est donc pas une external (Désolé, je suis sur PB6.5 en ce moment: ergonomie un peu différente de la 10.2).
J'avoue que je "sèche" un peu sans pouvoir voir l'export de tes datawindows...
Pour info, dans l'aide de la 10.5, il y a ça:
Aide PB10.5 a écrit:
Nested reports You cannot use GetChild to get a reference to a report in a composite DataWindow when the report itself is a composite or nested DataWindow.
Ce n'est pas le cas de ton report?
Hors ligne





J'ai cherché des informations là dessus, mais je ne parviens pas vraiment à déterminer si il s'agit d'un nested report ou pas... De même qu'il n'est pas clairement indiqué si ma window est composite ou non :-s
dw_print contient sa propre procédure stockée pour afficher des informations, ainsi que le report qui pose soucis.
Hors ligne














Nyphel a écrit:
De même qu'il n'est pas clairement indiqué si ma window est composite ou non :-s
tu fais clic droit, Edit source sur ta DW :
release 11;
datawindow(units=0 timer_interval=0 color=1073741824 processing=5 ...
selon la valeur de processing :
0 => form/tabular
1 => grid
2 => label
3 => graph
4 => crosstab
5 => composite
etc
autre indication : le bouton "Data source" est grisé pour une composite
le plus simple pour avancer : fais un Edit source et copier le code ici
Hors ligne





D'accord, merci pour l'information.
Donc ma première datawindow (celle qui contient le rapport et qui est nommée dw_print) est form/tabular.
Le rapport est form/tabular aussi.
Voici le code source de dw_print :
release 10; datawindow(units=0 timer_interval=0 color=1090519039 processing=0 HTMLDW=no print.printername="" print.documentname="" print.orientation = 0 print.margin.left = 110 print.margin.right = 110 print.margin.top = 96 print.margin.bottom = 96 print.paper.source = 0 print.paper.size = 0 print.canusedefaultprinter=yes print.prompt=no print.buttons=no print.preview.buttons=no print.cliptext=no print.overrideprintjob=no print.collate=yes hidegrayline=no ) header(height=352 color="536870912" ) summary(height=0 color="536870912" ) footer(height=60 color="536870912" ) detail(height=1924 color="536870912" height.autosize=yes) table(column=(type=decimal(0) updatewhereclause=yes name=avi_ac_account_num dbname="avi_ac_account_num" ) column=(type=datetime updatewhereclause=yes name=avi_ac_dat_creation dbname="avi_ac_dat_creation" ) column=(type=datetime updatewhereclause=yes name=avi_ac_dat_deletion dbname="avi_ac_dat_deletion" ) column=(type=char(50) updatewhereclause=yes name=avi_ac_owner_name dbname="avi_ac_owner_name" ) column=(type=char(50) updatewhereclause=yes name=avi_ac_address1 dbname="avi_ac_address1" ) column=(type=char(50) updatewhereclause=yes name=avi_ac_address2 dbname="avi_ac_address2" ) column=(type=char(50) updatewhereclause=yes name=avi_ac_address3 dbname="avi_ac_address3" ) column=(type=char(50) updatewhereclause=yes name=avi_ac_address4 dbname="avi_ac_address4" ) column=(type=decimal(0) updatewhereclause=yes name=avi_ac_mail_sort dbname="avi_ac_mail_sort" ) column=(type=char(50) updatewhereclause=yes name=avi_ac_town dbname="avi_ac_town" ) column=(type=char(50) updatewhereclause=yes name=avi_ac_county dbname="avi_ac_county" ) column=(type=char(10) updatewhereclause=yes name=avi_ac_post_code dbname="avi_ac_post_code" ) column=(type=decimal(2) updatewhereclause=yes name=avi_ac_cur_balance dbname="avi_ac_cur_balance" ) column=(type=decimal(2) updatewhereclause=yes name=avi_ac_low_limit dbname="avi_ac_low_limit" ) column=(type=decimal(0) updatewhereclause=yes name=avi_ac_mso_flag dbname="avi_ac_mso_flag" ) column=(type=char(50) updatewhereclause=yes name=avi_ac_email dbname="avi_ac_email" ) column=(type=char(16) updatewhereclause=yes name=avi_ac_password dbname="avi_ac_password" ) column=(type=char(64) updatewhereclause=yes name=avi_ac_pass_rem_question dbname="avi_ac_pass_rem_question" ) column=(type=char(32) updatewhereclause=yes name=avi_ac_pass_rem_answer dbname="avi_ac_pass_rem_answer" ) column=(type=char(20) updatewhereclause=yes name=avi_ac_daytime_phone dbname="avi_ac_daytime_phone" ) column=(type=char(20) updatewhereclause=yes name=avi_ac_mobile_phone dbname="avi_ac_mobile_phone" ) column=(type=char(20) updatewhereclause=yes name=avi_ac_other_phone dbname="avi_ac_other_phone" ) column=(type=char(1) updatewhereclause=yes name=avi_ac_config_statement dbname="avi_ac_config_statement" ) column=(type=char(50) updatewhereclause=yes name=avi_ac_country dbname="avi_ac_country" ) column=(type=char(0) updatewhereclause=yes name=null dbname="null" ) column=(type=decimal(0) updatewhereclause=yes name=com_at_account_type_id dbname="com_at_account_type_id" ) column=(type=decimal(0) updatewhereclause=yes name=com_er_id dbname="com_er_id" ) column=(type=decimal(2) updatewhereclause=yes name=avi_ac_min_balance dbname="avi_ac_min_balance" ) column=(type=decimal(2) updatewhereclause=yes name=avi_ac_tot_deposit dbname="avi_ac_tot_deposit" ) column=(type=datetime updatewhereclause=yes name=avi_ac_expiry_date dbname="avi_ac_expiry_date" ) column=(type=decimal(0) updatewhereclause=yes name=avi_ac_tot_fraud dbname="avi_ac_tot_fraud" ) column=(type=datetime updatewhereclause=yes name=avi_ac_dat_modify_acc_type dbname="avi_ac_dat_modify_acc_type" ) column=(type=decimal(0) updatewhereclause=yes name=avi_ac_convert_flag dbname="avi_ac_convert_flag" ) column=(type=datetime updatewhereclause=yes name=avi_po_dat_oper dbname="avi_po_dat_oper" ) column=(type=decimal(2) updatewhereclause=yes name=avi_po_amount dbname="avi_po_amount" ) column=(type=char(100) updatewhereclause=yes name=avi_po_comment dbname="avi_po_comment" ) procedure="1 execute AVI.PKG_AVI_ACCOUNTS.P_BROWSE_ACCOUNT_GENERAL_PRINT;0 V_ACCOUNT_NUMBER = :V_ACCOUNT_NUMBER" arguments=(("V_ACCOUNT_NUMBER", number),("V_NUMBER_NULL", number),("V_STRING_NULL", string)) ) text(band=header alignment="2" text="ACCOUNT RECEIPT" border="0" color="0" x="5" y="220" height="64" width="3182" html.valueishtml="0" name=account_receipt_t tag="30" visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="553648127" ) rectangle(band=header x="2875" y="408" height="328" width="3214" name=r_1 visible="1" brush.hatch="6" brush.color="1090519039" pen.style="0" pen.width="5" pen.color="33554432" background.mode="2" background.color="33554432" ) compute(band=header alignment="1" expression="today()"border="0" color="0" x="2418" y="8" height="76" width="805" format="dd/mm/yyyy hh:mm:ss" html.valueishtml="0" name=compute_1 visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="553648127" ) text(band=header alignment="0" text="DARTFORD RIVER CROSSING" border="0" color="0" x="0" y="8" height="64" width="1819" html.valueishtml="0" name=dartford_river_crossing_t tag="2005" visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="553648127" ) rectangle(band=detail x="9" y="1300" height="340" width="3218" name=r_4 visible="1" brush.hatch="7" brush.color="553648127" pen.style="0" pen.width="5" pen.color="33554432" background.mode="2" background.color="0" ) rectangle(band=detail x="0" y="8" height="256" width="3218" name=r_3 visible="1" brush.hatch="7" brush.color="553648127" pen.style="0" pen.width="5" pen.color="0" background.mode="2" background.color="0" ) rectangle(band=detail x="18" y="296" height="664" width="3214" name=r_2 visible="1" brush.hatch="6" brush.color="1090519039" pen.style="0" pen.width="5" pen.color="33554432" background.mode="2" background.color="0" ) column(band=detail id=10 alignment="0" tabsequence=32766 border="0" color="0" x="558" y="672" height="64" width="2336" format="[general]" html.valueishtml="0" name=city_county visible="1" edit.limit=32 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-9" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=8 alignment="0" tabsequence=32766 border="0" color="0" x="558" y="580" height="76" width="2331" format="[general]" html.valueishtml="0" name=address4 visible="1" edit.limit=50 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-9" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=7 alignment="0" tabsequence=32766 border="0" color="0" x="558" y="500" height="76" width="2331" format="[general]" html.valueishtml="0" name=address3 visible="1" edit.limit=50 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-9" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=6 alignment="0" tabsequence=32766 border="0" color="0" x="558" y="420" height="76" width="2331" format="[general]" html.valueishtml="0" name=address2 visible="1" edit.limit=50 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-9" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="0" text="Address" border="0" color="0" x="178" y="420" height="64" width="361" html.valueishtml="0" name=address2_t tag="1002" visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="0" text="Name " border="0" color="0" x="178" y="340" height="64" width="361" html.valueishtml="0" name=owner_name_t tag="1001" visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="0" text="Post Code" border="0" color="15793151" x="178" y="832" height="64" width="361" html.valueishtml="0" name=post_code_t tag="1004" visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="0" text="County" border="0" color="15793151" x="178" y="752" height="64" width="361" html.valueishtml="0" name=county_t tag="1041" visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="0" text="City" border="0" color="15793151" x="178" y="672" height="64" width="361" html.valueishtml="0" name=city_county_t tag="1003" visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="0" text="Users" border="0" color="33554432" x="14" y="1684" height="64" width="238" html.valueishtml="0" name=users_t tag="10" visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="1090519039" ) text(band=detail alignment="0" text="Daytime Phone" border="0" color="0" x="23" y="988" height="52" width="453" html.valueishtml="0" name=daytime_phone_t tag="1047" visible="1" font.face="MS Sans Serif" font.height="-9" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=20 alignment="0" tabsequence=32766 border="0" color="33554432" x="517" y="988" height="52" width="640" format="[general]" html.valueishtml="0" name=avi_ac_daytime_phone visible="1" edit.limit=0 edit.case=any edit.autoselect=yes font.face="MS Sans Serif" font.height="-9" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="1090519039" ) text(band=detail alignment="0" text="Other Phone" border="0" color="0" x="1280" y="988" height="52" width="366" html.valueishtml="0" name=other_phone_t tag="1048" visible="1" font.face="MS Sans Serif" font.height="-9" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=22 alignment="0" tabsequence=32766 border="0" color="0" x="1682" y="988" height="52" width="640" format="[general]" html.valueishtml="0" name=avi_ac_other_phone visible="1" edit.limit=0 edit.case=any edit.autoselect=yes font.face="MS Sans Serif" font.height="-9" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="0" text="Mobile Phone" border="0" color="0" x="23" y="1096" height="52" width="453" html.valueishtml="0" name=mobile_phone_t tag="1049" visible="1" font.face="MS Sans Serif" font.height="-9" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=21 alignment="0" tabsequence=32766 border="0" color="0" x="517" y="1096" height="52" width="640" format="[general]" html.valueishtml="0" name=avi_ac_mobile_phone visible="1" edit.limit=0 edit.case=any edit.autoselect=yes font.face="MS Sans Serif" font.height="-9" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="0" text="Email" border="0" color="0" x="23" y="1200" height="52" width="453" html.valueishtml="0" name=email_t tag="1051" visible="1" font.face="MS Sans Serif" font.height="-9" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=16 alignment="0" tabsequence=32766 border="0" color="33554432" x="517" y="1200" height="52" width="2679" format="[general]" html.valueishtml="0" name=null visible="1" edit.limit=0 edit.case=any edit.autoselect=yes font.face="MS Sans Serif" font.height="-9" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="1090519039" ) column(band=detail id=24 alignment="0" tabsequence=32766 border="0" color="33554432" x="6089" y="0" height="76" width="1600" format="[general]" html.valueishtml="0" name=country visible="1" edit.limit=0 edit.case=any edit.autoselect=yes font.face="Arial" font.height="-12" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="1090519039" ) column(band=detail id=11 alignment="0" tabsequence=32766 border="0" color="0" x="558" y="752" height="64" width="2336" format="[general]" html.valueishtml="0" name=county visible="1" edit.limit=0 edit.case=any edit.autoselect=yes font.face="MS Sans Serif" font.height="-9" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=12 alignment="0" tabsequence=32766 border="0" color="0" x="558" y="832" height="64" width="475" format="[general]" html.valueishtml="0" name=post_code visible="1" edit.limit=10 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-9" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=24 alignment="0" tabsequence=32766 border="0" color="33554432" x="1234" y="832" height="64" width="1659" format="[general]" html.valueishtml="0" name=avi_ac_country visible="1" edit.limit=0 edit.case=any edit.autoselect=yes font.face="MS Sans Serif" font.height="-9" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="1090519039" ) column(band=detail id=4 alignment="0" tabsequence=32766 border="0" color="0" x="558" y="344" height="64" width="2331" format="[general]" html.valueishtml="0" name=avi_ac_owner_name visible="1" edit.limit=0 edit.case=any edit.autoselect=yes font.face="MS Sans Serif" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="1" text="" border="0" color="0" x="2057" y="52" height="64" width="827" html.valueishtml="0" name=account_type_label_t visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="0" text="Account type" border="0" color="0" x="1472" y="52" height="64" width="544" html.valueishtml="0" name=account_type_t tag="1062" visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=1 alignment="1" tabsequence=32766 border="0" color="0" x="677" y="52" height="64" width="402" format="[general]" html.valueishtml="0" name=account_number visible="1" edit.limit=0 edit.case=any edit.autoselect=yes font.face="MS Sans Serif" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="0" text="Account number" border="0" color="0" x="37" y="52" height="64" width="622" html.valueishtml="0" name=account_num_t tag="1011" visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=14 alignment="1" tabsequence=32766 border="0" color="0" x="2057" y="140" height="64" width="827" format="#,##0.00" html.valueishtml="0" name=threshold_value visible="1" edit.name="#####" editmask.mask="#####" editmask.focusrectangle=no font.face="MS Sans Serif" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="0" text="Low Level Value" border="0" color="0" x="1472" y="140" height="64" width="544" html.valueishtml="0" name=threshold_value_t tag="1005" visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=13 alignment="1" tabsequence=32766 border="0" color="0" x="677" y="140" height="64" width="402" format="#,##0.00" html.valueishtml="0" name=avi_ac_cur_balance visible="1" edit.name="#####" editmask.mask="#####" editmask.focusrectangle=no font.face="MS Sans Serif" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="0" text="Current balance" border="0" color="0" x="37" y="140" height="64" width="622" html.valueishtml="0" name=curent_balance_t tag="1022" visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="0" text= border="0" color="33554432" x="2075" y="1544" height="64" width="352" html.valueishtml="0" name=amount_t tag="130" visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="1090519039" ) text(band=detail alignment="0" text="Payment type" border="0" color="33554432" x="18" y="1544" height="64" width="576" html.valueishtml="0" name=payment_type_t tag="120" visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="1090519039" ) text(band=detail alignment="0" text="Date of operation" border="0" color="33554432" x="18" y="1444" height="64" width="576" html.valueishtml="0" name=date_of_operation_t tag="110" visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="1090519039" ) text(band=detail alignment="0" text="Last payment operation" border="0" color="33554432" x="23" y="1324" height="64" width="1083" html.valueishtml="0" name=last_payment_operation_t tag="180" visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="1090519039" ) report(band=detail dataobject="d_account_users_print" x="5" y="1768" height="136" width="3218" border="0" height.autosize=yes criteria="" nest_arguments=(("V_NUMBER_NULL"),("V_ACCOUNT_NUMBER"),("V_STRING_NULL"),("V_STRING_NULL"),("V_STRING_NULL"),("V_STRING_NULL"),("V_STRING_NULL")) trail_footer = yes name=rpt_users visible="1" slideup=directlyabove ) column(band=detail id=34 alignment="0" tabsequence=32766 border="0" color="33554432" x="617" y="1444" height="64" width="782" format="dd/mm/yyyy hh:mm" html.valueishtml="0" name=avi_po_dat_oper visible="1" edit.limit=0 edit.case=any edit.focusrectangle=no edit.autoselect=no font.face="MS Sans Serif" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="1090519039" ) column(band=detail id=36 alignment="0" tabsequence=32766 border="0" color="33554432" x="617" y="1544" height="64" width="1408" format="[general]" html.valueishtml="0" name=avi_po_comment visible="1" edit.limit=0 edit.case=any edit.focusrectangle=no edit.autoselect=no font.face="MS Sans Serif" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="1090519039" ) column(band=detail id=35 alignment="0" tabsequence=32766 border="0" color="33554432" x="2464" y="1544" height="64" width="512" format="#,##0.00" html.valueishtml="0" name=avi_po_amount visible="1" edit.limit=0 edit.case=any edit.focusrectangle=no edit.autoselect=no font.face="MS Sans Serif" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="1090519039" ) compute(band=footer alignment="1" expression=" page() + ' / ' + pageCount()"border="0" color="0" x="2418" y="0" height="60" width="805" format="[general]" html.valueishtml="0" name=compute_5 visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) htmltable(border="1" ) htmlgen(clientevents="1" clientvalidation="1" clientcomputedfields="1" clientformatting="0" clientscriptable="0" generatejavascript="1" encodeselflinkargs="1" netscapelayers="0" ) xhtmlgen() cssgen(sessionspecific="0" ) xmlgen(inline="0" ) xsltgen() jsgen() export.xml(headgroups="1" includewhitespace="0" metadatatype=0 savemetadata=0 ) import.xml() export.pdf(method=0 distill.custompostscript="0" xslfop.print="0" ) export.xhtml()
Voici la source de rpt_users (le rapport)
release 10; datawindow(units=0 timer_interval=0 color=80263581 processing=0 HTMLDW=no print.printername="" print.documentname="" print.orientation = 0 print.margin.left = 110 print.margin.right = 110 print.margin.top = 96 print.margin.bottom = 96 print.paper.source = 0 print.paper.size = 0 print.canusedefaultprinter=yes print.prompt=no print.buttons=no print.preview.buttons=no print.cliptext=no print.overrideprintjob=no print.collate=yes hidegrayline=no ) header(height=156 color="536870912" ) summary(height=0 color="536870912" ) footer(height=0 color="536870912" ) detail(height=84 color="536870912" ) table(column=(type=decimal(0) updatewhereclause=no name=avi_ac_account_num dbname="avi_ac_account_num" ) column=(type=decimal(0) updatewhereclause=no name=user_number dbname="avi_us_user_num" ) column=(type=decimal(0) updatewhereclause=no name=vehicle_class dbname="com_vc_class_num" ) column=(type=char(20) updatewhereclause=no name=tag_serial_number_premid dbname="avi_us_tag_serial_num" ) column=(type=char(20) updatewhereclause=no name=tag_serial_number_dsrc dbname="avi_us_tag_serial_num1" ) column=(type=decimal(0) updatewhereclause=no name=avi_tt_tag_type_id dbname="avi_tt_tag_type_id" ) column=(type=datetime updatewhereclause=no name=avi_us_dat_creation dbname="avi_us_dat_creation" ) column=(type=datetime updatewhereclause=no name=avi_us_dat_deletion dbname="avi_us_dat_deletion" ) column=(type=datetime updatewhereclause=no name=dat_blist dbname="avi_us_dat_blist" ) column=(type=char(50) updatewhereclause=no name=blacklist_reason dbname="avi_br_blacklist_reason_str" ) column=(type=decimal(0) updatewhereclause=no name=avi_ac_bacs_status dbname="avi_ac_bacs_status" ) column=(type=decimal(2) updatewhereclause=no name=avi_ac_cur_balance dbname="avi_ac_cur_balance" ) column=(type=char(0) updatewhereclause=no name=null dbname="null" ) column=(type=datetime updatewhereclause=no name=avi_tr_dat_passage dbname="avi_tr_dat_passage" ) column=(type=datetime updatewhereclause=no name=avi_us_dat_warn dbname="avi_us_dat_warn" ) column=(type=datetime updatewhereclause=no name=avi_ac_dat_bacs_suspension dbname="avi_ac_dat_bacs_suspension" ) procedure="1 execute AVI.PKG_AVI_ACCOUNTS.P_BROWSE_USERS;0 V_USER_NUM = :V_USER_NUM, V_ACCOUNT_NUM = :V_ACCOUNT_NUM, V_TAG_SERIAL = :V_TAG_SERIAL, V_CREDIT_CARD = :V_CREDIT_CARD, V_ACCOUNT_OWNER = :V_ACCOUNT_OWNER, V_ADDRESS = :V_ADDRESS, V_POSTAL_CODE = :V_POSTAL_CODE" arguments=(("V_USER_NUM", number),("V_ACCOUNT_NUM", number),("V_TAG_SERIAL", string),("V_CREDIT_CARD", string),("V_ACCOUNT_OWNER", string),("V_ADDRESS", string),("V_POSTAL_CODE", string)) ) text(band=header alignment="1" text="User index" border="0" color="16711680" x="5" y="4" height="148" width="320" html.valueishtml="0" name=user_number_t tag="1013" visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="1" text="Vehicle class" border="0" color="16711680" x="357" y="4" height="148" width="215" html.valueishtml="0" name=vehicle_class_t tag="1008" visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="1" text="Tag serial number PREMID" border="0" color="16711680" x="603" y="4" height="148" width="645" html.valueishtml="0" name=tag_serial_number_premid_t tag="1027" visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="1" text="Tag serial number DSRC" border="0" color="16711680" x="1275" y="4" height="148" width="645" html.valueishtml="0" name=tag_serial_number_dsrc_t tag="1028" visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="1" text="Black list since" border="0" color="16711680" x="1957" y="4" height="148" width="471" html.valueishtml="0" name=dat_blist_t tag="1023" visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="1" text="Reason" border="0" color="16711680" x="2464" y="4" height="148" width="690" html.valueishtml="0" name=blacklist_reason_t tag="1012" visible="1" font.face="MS Sans Serif" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=2 alignment="1" tabsequence=32766 border="0" color="0" x="5" y="4" height="76" width="320" format="[general]" html.valueishtml="0" name=user_number visible="1" edit.limit=0 edit.case=any edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=3 alignment="1" tabsequence=32766 border="0" color="0" x="357" y="4" height="76" width="215" format="[general]" html.valueishtml="0" name=vehicle_class visible="1" edit.limit=0 edit.case=any edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=4 alignment="1" tabsequence=32766 border="0" color="0" x="603" y="4" height="76" width="645" format="[general]" html.valueishtml="0" name=tag_serial_number_premid visible="1" edit.limit=15 edit.case=any edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=5 alignment="1" tabsequence=32766 border="0" color="0" x="1275" y="4" height="76" width="645" format="[general]" html.valueishtml="0" name=tag_serial_number_dsrc visible="1" edit.limit=15 edit.case=any edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=9 alignment="1" tabsequence=32766 border="0" color="0" x="1957" y="4" height="76" width="471" format="dd/mm/yyyy hh:mm" html.valueishtml="0" name=dat_blist visible="1" edit.limit=0 edit.case=any edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=10 alignment="1" tabsequence=32766 border="0" color="0" x="2464" y="4" height="76" width="690" format="[general]" html.valueishtml="0" name=blacklist_reason visible="1" edit.limit=50 edit.case=any edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) htmltable(border="1" ) htmlgen(clientevents="1" clientvalidation="1" clientcomputedfields="1" clientformatting="0" clientscriptable="0" generatejavascript="1" encodeselflinkargs="1" netscapelayers="0" ) xhtmlgen() cssgen(sessionspecific="0" ) xmlgen(inline="0" ) xsltgen() jsgen() export.xml(headgroups="1" includewhitespace="0" metadatatype=0 savemetadata=0 ) import.xml() export.pdf(method=0 distill.custompostscript="0" xslfop.print="0" ) export.xhtml()
Est-ce normal que dans ces sources je ne voie pas mon titre de colonne user_number_t ?
Hors ligne
Salut, J'arrive un peu tard dans la bataille.
dw_print.object.rpt_users.object.user_number_t.text = 'essai'
Pour moi la syntaxe de départ est bonne, l'erreur vient sans doute de l'event où tu as codé ta ligne (constructor de la DW ou open de la fenêtre, etc.), car le nested report n'existe pas à ce moment là (ou est en cours de construction, ce qui expliquerait que ton code marche "aléatoirement"). Essai de mettre cette ligne sur l'event de retrieveend de dw_print pour voir... Cela peut également venir du fait que ton report à 0 lignes après le retrieve. L'idéal est donc de coder après le retrieve et tester le nombre de lignes retournées par le report (> 0) avant d'essayer d'accéder à son sous-report...
Hors ligne





Voici donc le test effectué dans le ue_retrieveend() de w_print :
string ls_expression ls_expression = this.object.rpt_users.Describe("user_number_t.name") messagebox("Expression", ls_expression)
J'obtiens à nouveau le message d'erreur de type "accessing external object property"... Ce qui m'étonne quelque peu.
De plus, dans mon ue_print() de me sheet, je fais un "dw_print.Retrieve(il_accountnumber, ll_number_null, ls_null)" avant de tenter de modifier mon nom de colonne. Ce n'est pas dans le constructeur de dw_print() que j'essaie de modifier le nom de la colonne, mais une fois que tout est initialisé : le ue_print () est appelé sur action de l'utilisateur. Je pense donc que le report est correctement initialisé avant que je ne demande modification du nom de colonne, puis impression.
EDIT 1 :
Par contre je ne comprends pas le rapport entre le nombre de lignes et l'accès au nom de la colonne.
Même si le retrieve ne me retourne aucun row, le titre de colonne est en place, nom ? Dans le painter, le nom de la colonne et la colonne elle-même sont bien deux choses distinctes, et lorsque je fais un preview de mon report sans spécifier les données, alors les titres de colonnes sont bien visibles algré qu'il n'y aie aucun row.
EDIT 2 : Non, je n'ai pas encore vérifié, je vais tester ca
Dernière modification par Nyphel (07-05-2008 08:56:45)
Hors ligne
Et le nombre de lignes retournées par le retrieve ? As-tu vérifié ? (Y compris celui du sous-report)
Hors ligne
Les label sont effectivement présents dans une DW même si le nombre de ligne est à 0, par contre dans ton cas, tu essaies d'accéder au label d'une DW inclue dans une DW. Ce qui veut dire que si ta DW principale ne retourne aucune ligne, PB ne construira pas la DW secondaire et donc le label de cette deuxième DW n'existera pas...
Hors ligne





Test du nombre de lignes retournées :
Dans l'event ue_retrieveend(long rowcount) de dw_print :
messagebox("", string(rowcount))
Ce qui me retourne : 1
Par contre je ne sais pas si ce ue_retrieveend() me signale le nombre de lignes retournées pour mon report (rpt_users) ou pour les données de ma datawindow elle-même...
EDIT : D'accord je comprends mieux maintenant... Et ici seul 1 row est retourné. Or les données de la datawindow dw_print concernent un seul utilisateur, et 1 seul row est attendu. Le rapport - en effet - concernera lui aussi cet utilisateur. J'en déduis donc que mon test indique que dw_print a bien 1 row retourné, et donc que le report est bien initialisé.
EDIT 2 : Pour le sous-report, je ne sais pas comment tester cela.
Pour la datawindow j'ai simplement été dans ma sheet, sélectionné l'objet dw_print et l'événement ue_retrieveend(long rowcount).
Toutefois cette solution ne me permet pas de traiter les événements des objets fils de dw_print.
Dernière modification par Nyphel (07-05-2008 09:09:18)
Hors ligne