I do all in a 4d method like
$pArray:=4dDistinctValues(->[table]field1)

In the 4d method
I have a case part

  case of
:(Type($pField->)=Is Text )
        ARRAY REAL(aDisValText;0)
        pDisValArray:=->aDisValText

:(Type($pField->)=Is Real )
        ARRAY REAL(aDisValReal;0)
        pDisValArray:=->aDisValReal
.....

  end case

DISTINCT VALUES($pField->;pDisValArray->)
$0:=pDisValArray

Then you can work with the $pArray witch points to a processVar array.



Gruss, Oliver



> Hi,
> 
> A4D doesn't support DISTINCT VALUES. What are the common replacements?
> 
> I tried this code, it is very slow but inside a 4D database it flies!
> 4D 2003.3, MacOSX 10.2.8
> 
> <%
> all records([Stock])
> array text($aMake;0)
> selection to array([Stock]Make;$aMake)
> DistinctValues($aMake)
> %>
> 
> In a lib:
> 
> method "DistinctValues" (&$inArray)
> c_longint($k;$NextValue)
> 
>  SORT ARRAY($inArray;>)
> 
>  $NextValue:=1
> 
>  For ($k;2;Size of array($inArray))
>    If ($inArray{$k-1}#$inArray{$k})
>      $inArray{$NextValue}:=$inArray{$k-1}
>      $NextValue:=$NextValue+1
>    End if
>  End for
> 
>  If ($NextValue<Size of array($inArray))
>    $inArray{$NextValue}:=$inArray{$k-1}
>    DELETE ELEMENT($inArray;$NextValue+1;Size of array($inArray))
>  End if
> 
> end method

_______________________________________________
Active4D-dev mailing list
[EMAIL PROTECTED]
http://mailman.aparajitaworld.com/mailman/listinfo/active4d-dev
Archives: http://mailman.aparajitaworld.com/archive/active4d-dev/

Reply via email to