Remove Duplicate values with a condition

Martin Obongita martin.obongita at
Mon Sep 12 18:43:58 UTC 2022

 Hi Dan Ridinger,
I appreciate your help.
I have done the following:
Do iSQLTableColNameRowList.$merge(lSQLTableColNameRowPrepareList,kTrue,kTrue,kFalse)
Do iSQLTableColNameRowList.$sort($ref.lOriginalColName)

Do iSQLTableColNameRowList.$cols.lOriginalColName.$selectduplicates(kTrue)

Do lSQLTableColNameRowSelectList.$copydefinition(iSQLTableColNameRowList)

Do lSQLTableColNameRowUnselectList.$copydefinition(iSQLTableColNameRowList)

Calculate lLineCount as iSQLTableColNameRowList.$linecount
For lLineNum from 1 to lLineCount step 1
If iSQLTableColNameRowList.[lLineNum].$selected
If iSQLTableColNameRowList.lIsSelect=kTrue
Do lSQLTableColNameRowSelectList.$add(,iSQLTableColNameRowList.lColName)
End If
#not a duplicate
Do lSQLTableColNameRowUnselectList.$add(iSQLTableColNameRowList.lColName)
End If

End For

The list iSQLTableColNameRowList has rows with the column "lIsSelect" boolean status both true and false.
But after running the method, lSQLTableColNameRowSelectList does not contain any data.
All the data is added to lSQLTableColNameRowUnselectList both true and false "lIsSelect"
I tried using $filter but I got no better result either.
WHAT I AM DOING: I am merging two lists. List2 contains some data from List1.
List1 has "lIsSelect" column set to false for ALL data. List2 has "lIsSelect" set to true for some data.
I need to merge List1 with the boolean flag status from List2.

CONCLUSION: I just need to know how to select the FIRST duplicate record in a list.
Then I can remove that first row.
Because by default, the $selectduplicates function will select the SECOND duplicate record.
Kind regards,
Martin O.     On Monday, September 12, 2022 at 08:19:43 PM GMT+3, <dlr at> wrote:  

If you have some way to determine in the selected list the duplicates you wanted you could use $filter to get the rows. Otherwise you would have write a loop to get the first row at the control break of the sorted column.

Dan Ridinger

> On Sep 12, 2022, at 10:00 AM, Martin Obongita via omnisdev-en <omnisdev-en at> wrote:
> Hi Paul,
> I have played around with this duplicate.
> There is this command: $selectduplicates.
> Using this command will select the second duplicate row.
> Is there a way to set the command to select the first duplicate row?
> Kind regards,Martin O.
>    On Monday, September 12, 2022 at 03:24:37 AM GMT+3, Paul Mulroney <pmulroney at> wrote:  
> Hi Martin,
> I had to do this recently where I wanted to remove any duplicates the combination of two fields - first name and last name.
> This is how I did it (Studio 10.0, but should work anywhere).  Note I had to create a local var vsFullName
> # Remove duplicates - same first name and surname
> Do vlOutput.$sort($ref.LastName,kFalse,$ref.FirstName,kFalse)
> Do vlOutput.$cols.$add(vsFullName)                                              
> Do vlOutput.$sendall($ref.vsFullName.$assign(con($sendallref.FirstName,' ',$sendallref.LastName)))      ## Create special column to remove dups
> Do vlOutput.$cols.vsFullName.$removeduplicates(kTrue,kTrue)
> You might need to do something similar.
> Regards,
> Paul.
>> On 12 Sep 2022, at 4:52 am, Martin Obongita via omnisdev-en <omnisdev-en at> wrote:
>> Hi ALL,
>> I have the method below to remove duplicate rows in a listDo iSQLTableColNameRowList.$sort($ref.lOriginalColName,kFalse)
>> Do iSQLTableColNameRowList.$cols.lOriginalColName.$removeduplicates()
>> The problem is it deletes all duplicate rows.
>> How do I remove duplicate rows in a list with a condition, say, remove all duplicates but check that C7(the column flag in the list) is true?
>> Kind regards
>> _____________________________________________________________
>> Manage your list subscriptions at
>> Start a new message -> mailto:omnisdev-en at 
> Is it wrong that only one company makes the game Monopoly?
> -- 
> Paul W. Mulroney                                            We Don't Do Simple Pty Ltd 
> pmulroney at      Trading as Logical Developments
>                  ACN 161 009 374 
> Ph: +61 8 9458 3889                                      86 Coolgardie Street
>                                                                        BENTLEY  WA  6102
> _____________________________________________________________
> Manage your list subscriptions at
> Start a new message -> mailto:omnisdev-en at 

Manage your list subscriptions at
Start a new message -> mailto:omnisdev-en at 

More information about the omnisdev-en mailing list