Slight revision: if I'm copying 1 child it works now, but not for more than 1:

Qt Code:
  1. regionmodel->setData (regionmodel->index (row, 33), new_region_seq_no);
  2. regionmodel->setData (regionmodel->index (row, 34), riser_id);
  3. regionmodel->setData (regionmodel->index (row, 35), user);
  4. regionmodel->setData (regionmodel->index (row, 36),
  5. QDateTime::currentDateTime ());
  6.  
  7. regionmapper->setCurrentIndex (row);
  8. new_region_index = regionmapper->currentIndex ();
  9.  
  10. flowline_filter = QString("flowline_riser_id = %1").arg (riser_id);
  11. flowline_filter.append (" and ");
  12. flowline_filter.append (QString("flowline_region_seq_no = %2").
  13. arg (new_region_seq_no));
  14. flowlinemodel->setFilter (flowline_filter);
  15. flowlinemapper->toFirst ();
  16.  
  17. //***************************************************************
  18. //* Now copy the flowline data associated with this region... *
  19. //* We have to make sure we reset the flowline data to the *
  20. //* first record associated with this region and loop thru *
  21. //* all those records, copying them to the new set of data... *
  22. //***************************************************************
  23. flowlinemapper->toFirst ();
  24.  
  25. for (int i = 0; i < old_flowline_rowcount; i++)
  26. {
  27. regionmapper->setCurrentIndex (old_region_index);
  28.  
  29. flowline_filter = QString("flowline_riser_id = %1").arg (riser_id);
  30. flowline_filter.append (" and ");
  31. flowline_filter.append (QString("flowline_region_seq_no = %2").
  32. arg (old_region_seq_no));
  33. flowlinemodel->setFilter (flowline_filter);
  34.  
  35. old_flowline_record = flowlinemodel->record (i);
  36.  
  37. regionmapper->setCurrentIndex (new_region_index);
  38.  
  39. flowline_filter = QString("flowline_riser_id = %1").arg (riser_id);
  40. flowline_filter.append (" and ");
  41. flowline_filter.append (QString("flowline_region_seq_no = %2").
  42. arg (new_region_seq_no));
  43. flowlinemodel->setFilter (flowline_filter);
  44.  
  45. if (!flowlinemodel->insertRow (i))
  46. qDebug() << "error" << i;
  47. {
  48. flowlinemapper->setCurrentIndex (i);
  49.  
  50. flowlinemodel->setData (flowlinemodel->index(i, 0),
  51. old_flowline_record.value ("flowline_od").toString ());
  52. flowlinemodel->setData (flowlinemodel->index(i, 1),
  53. old_flowline_record.value ("flowline_id").toString ());
  54. flowlinemodel->setData (flowlinemodel->index(i, 2),
  55. old_flowline_record.value ("flowline_yield").toString ());
  56. flowlinemodel->setData (flowlinemodel->index(i, 3),
  57. old_flowline_record.value ("flowline_emod").toString ());
  58. flowlinemodel->setData (flowlinemodel->index(i, 4),
  59. old_flowline_record.value ("flowline_val_gap").toString ());
  60. flowlinemodel->setData (flowlinemodel->index(i, 5),
  61. old_flowline_record.value ("flowline_val_offset").toString ());
  62. flowlinemodel->setData (flowlinemodel->index(i, 6),
  63. old_flowline_record.value ("flowline_string").toString ());
  64. flowlinemodel->setData (flowlinemodel->index (i, 7),
  65. sqldb.generate_seq_noDB ("FLOWLINE"));
  66. flowlinemodel->setData (flowlinemodel->index (i, 8), new_region_seq_no);
  67. flowlinemodel->setData (flowlinemodel->index (i, 9), riser_id);
  68. flowlinemodel->setData (flowlinemodel->index (i, 10), user);
  69. flowlinemodel->setData (flowlinemodel->index (i, 11),
  70. QDateTime::currentDateTime ());
  71. }
  72. }
  73.  
  74. flowlinemapper->toFirst ();
To copy to clipboard, switch view to plain text mode