Combining data from related fields

I have two forms: MASTER and OTHER. OTHER holds information that I relationally portal and view in MASTER.
How would I go about geting all of the related data, that I can see in the protal, posted into one field on MASTER. Kind of like merging text.

Any thoughts?

elyod_72:
I have two forms: MASTER and OTHER. OTHER holds information that I relationally portal and view in MASTER.
How would I go about geting all of the related data, that I can see in the protal, posted into one field on MASTER. Kind of like merging text.

Any thoughts?

A loop?

Exactly my thoughts…

Ok, so I have created a loop to copy and paste from several records into 1 field. I can confirm that it is doing it, but for some reason it keeps over writing itself. The outcome is that the only text that shows is from the very last record.
I have tried get the caret position and then to move it +1, but it doesn’t seem to do any good.

//loop

forms.cr_shipping_entry.job_camera_report_to_job_camera_report_lineitem.setSelectedIndex(1);

for ( var i = 0 ; i < job_camera_report_to_job_camera_report_lineitem.getSelectedIndex() ; i++ )

{

//Copy shot and version.

application.setClipboardContent(forms.cr_shipping_entry.job_camera_report_to_job_camera_report_lineitem.for_mat_receipt);



//Paste into 1 field.

forms.inv_material_receipt_lineitem.description = ', ' + application.getClipboardString();



//move the cursor up.

var position = forms.material_reciept.elements.description.caretPosition;

forms.material_reciept.elements.description.caretPosition = position +1;



//Go to the next record.

var n = forms.cr_shipping_entry.job_camera_report_to_job_camera_report_lineitem.getSelectedIndex()

forms.cr_shipping_entry.job_camera_report_to_job_camera_report_lineitem.setSelectedIndex(n + 1);

}

Thoughts, comments…?

I adjusted it a little bit:
try this:

//loop

forms.cr_shipping_entry.job_camera_report_to_job_camera_report_lineitem.setSelectedIndex(1);

for ( var i = 1 ; i <= job_camera_report_to_job_camera_report_lineitem.getSelectedIndex(i) ; i++ )
{
//Copy shot and version.
var a = forms.cr_shipping_entry.job_camera_report_to_job_camera_report_lineitem.for_mat_receipt

//Paste into 1 field.
forms.inv_material_receipt_lineitem.description = a + ', '
}

If you really want to do this fast, you have to use the foundset and getRecord function. Than it loop a lot faster!

Hope this get you started

I plugged it in and got the following error:

org.mozilla.javascript.EvaluatorException: Can’t find method com.servoy.j2db.dataprocessing.FoundSet.getSelectedIndex(number). (ship_print, line 42)

Line 42 is as follows:

for ( var i = 1 ; i <= job_camera_report_to_job_camera_report_lineitem.getSelectedIndex(i) ; i++ )

I tried to play around with the syntax thinking maybe there is something just slightly out of place, but to no avail.

I’m not quite shure what this error means. Therefore I don’t know how to fix it.

Any help would be greatly appreciated.

I’m sorry, my fault

//loop 

forms.cr_shipping_entry.job_camera_report_to_job_camera_report_lineitem.foundset.setSelectedIndex(1); //I don't know why you are doing this?

for ( var i = 1 ; i <= job_camera_report_to_job_camera_report_lineitem.getSize() ; i++ ) 
{ 
job_camera_report_to_job_camera_report_lineitem.setSelectedIndex(i)
//Copy shot and version. 
var a = forms.cr_shipping_entry.job_camera_report_to_job_camera_report_lineitem.for_mat_receipt 

//Paste into 1 field. 
forms.inv_material_receipt_lineitem.description = a + ', ' 
}

Cool. That solved the problem of the error message. But when I run it, it still overwrites the data from the previous record.

In filemaker, you could choose whether or not you wanted to select the whole field before pasting. I see a sepeate select all command in the method editor, but it looks like the copy clipboard will always select the entire field before pasting too. Is that correct?

don’t use the clipboard for that!!

here is the correct code:

//loop 

forms.cr_shipping_entry.job_camera_report_to_job_camera_report_lineitem.foundset.setSelectedIndex(1); //I don't know why you are doing this? 

for ( var i = 1 ; i <= job_camera_report_to_job_camera_report_lineitem.getSize() ; i++ ) 
{ 
job_camera_report_to_job_camera_report_lineitem.setSelectedIndex(i) 
//Copy shot and version. 
var a = forms.cr_shipping_entry.job_camera_report_to_job_camera_report_lineitem.for_mat_receipt 

//Paste into 1 field. 
var b = forms.inv_material_receipt_lineitem.description
forms.inv_material_receipt_lineitem.description = b + a + ', ' 
}

Excellent! I would never has thought about the var b line!

It works perfictly! Thank you so much for your help!

You can even make it more optimized by not defining the same variable over and over.

//loop 

forms.cr_shipping_entry.job_camera_report_to_job_camera_report_lineitem.foundset.setSelectedIndex(1); //I don't know why you are doing this? 

// one time definition of the variables
var a = '';
var b = ''; 

for ( var i = 1 ; i <= job_camera_report_to_job_camera_report_lineitem.getSize() ; i++ ) 
{ 
  job_camera_report_to_job_camera_report_lineitem.setSelectedIndex(i) 
  //Copy shot and version. 
  a = forms.cr_shipping_entry.job_camera_report_to_job_camera_report_lineitem.for_mat_receipt 

  //Paste into 1 field. 
  b = forms.inv_material_receipt_lineitem.description 
  forms.inv_material_receipt_lineitem.description = b + a + ', ' 
}