I have a datawindow d_case with a retrieval argument al_case_id. In this datawindow, I have two columns that are ddlb
column1 = judge with dddw_judge and
column2 = contact with dddw_contact.
Now dddw_judge has a retrieval argument ai_county_id and dddw_contact has a retrieval argument ai_client_id. This is the code that I am using to retrieve d_case.
dw_case.GetChild('judge',dwc_judge)dwc_judge.SetTransObject(SQLCA)ll_judge_no = dwc_judge.Retrieve(ll_county_id)dw_case.GetChild('contact',dwc_contact)dwc_contact.SetTransObject(SQLCA)ll_contact_no = dwc_contact.Retrieve(ll_client_id)dw_case.Retrieve(ll_case_id)
This is all good when ll_judge_no and ll_contact_no are > 0. When any of them equals 0, PowerBuilder displays a box asking the user for the retrieval arguments for the ones that were = 0.
When you Retrieve your data into the primary datawindow, PowerBuilder checks the rowcount of the child datawindow; if it is zero, it attempts to load the data from the database. In most situations this is a help, not a hinderence. However, in your case it is causing the retrieval arguments dialog to display, which is an unwanted side effect.
The only way around this problem is to check the rowcount of the child datawindow after you have retrieved it, and if it is zero, then insert an empty dummy row into the datawindow child.