Normal Topic Set Unique Order in a Subform (Read 561 times)
Amor
Full Member
Members
***
Offline


No personal text

Posts: 366
Location: Germany
Joined: Feb 7th, 2004
Set Unique Order in a Subform
Jan 13th, 2006 at 6:19pm
Print Post Print Post  
Hello!

I am using the following code.

This is On-Element Entry  for the LE "New"
--------------------
 var vLabor as String
 var nn as Int
 var vSteuern as String
 var VCnt as Int
 var vLoop As Int
 var vUNIQUE as String
 var vLabNr as String
 
 vLabNr = LabNr
 vSteuern = "A"
 vLabor = NeW
 
 vCnt = @FormResultSetTotal("OrderSubform")
 vUNIQUE = toUpper(@lt(New,2))+"-"+LabNr

// writeLN("UNIQUE : " + vUNIQUE)

 vCnt = @FormResultSetTotal("OrderSubform")
 
IF @isBlank(New) = 0  and @IsBlank(LabNr) = 0
{
      vLoop = 1
      while vLoop <= vCnt and  @IsBlank(new) = 0
       {          
              vUNIQUE = @FormFieldValue  ("OrderSubform", "UNIQUE", vLoop)
             IF @error then  
          {
             vLoop = vLoop + 1  
             }
            else
 
           {  
               nn = @FormNewRecord("OrderForm")  
               FormFieldValue("OrderForm", "Steuern", nn, vSteuern)
               FormFieldValue("OrderForm", "LabNr", nn, vLabNr)
               FormFieldValue("OrderForm", "UNIQUE", nn, vUNIQUE)
               FormFieldValue("OrderForm", "Datum",nn, Eingang)          
               FormFieldValue("OrderForm", "PatientID", nn, PatientID)
               FormFieldValue("OrderForm", "Labor", nn, vLabor)
           
          }

     Clear(New)
   }
 
 Throwfocus (New)  
   
}  
       
   

--------------------
It doesn't work as intended. It is expected to create a record in the SubForm only if the Unique Value does not exit. It does on all entries in this element whether they exist or not.

  

Dr. med. Amor Belhareth&&Medizin Labor &&Germany
Back to top
 
IP Logged
 
Ray the Reaper
Global Moderator
Members
Lantica Support
*****
Offline


The One & The Only

Posts: 2482
Joined: Aug 20th, 2003
Re: Set Unique Order in a Subform
Reply #1 - Jan 13th, 2006 at 6:59pm
Print Post Print Post  
Hello Amor,

@Error is never going to be true so the new record is always going to be created.

Try something like

Code
Select All
var vLabor as String
var nn as Int
var vSteuern as String
var VCnt as Int
var vLoop As Int
var vUNIQUE as String
var vLabNr as String
Var RecordFound as Int

RecordFound = 0
vLabNr = LabNr
vSteuern = "A"
vLabor = NeW

vCnt = @FormResultSetTotal("OrderSubform")
vUNIQUE = toUpper(@lt(New,2))+"-"+LabNr

// writeLN("UNIQUE : " + vUNIQUE)

vCnt = @FormResultSetTotal("OrderSubform")

IF @isBlank(New) = 0  and @IsBlank(LabNr) = 0
{
	vLoop = 1
	while ((vLoop <= vCnt) and (@IsBlank(new) = 0) and (RecordFound = 0))
	{
		If vUNIQUE = @FormFieldValue("OrderSubform", "UNIQUE", vLoop) then
		{
			//Found the matching record
			RecordFound = 1
		}
		vLoop = vLoop + 1
		Clear(New)
	}
	If(RecordFound = 0) Then
	{
		nn = @FormNewRecord("OrderForm")
		FormFieldValue("OrderForm", "Steuern", nn, vSteuern)
		FormFieldValue("OrderForm", "LabNr", nn, vLabNr)
		FormFieldValue("OrderForm", "UNIQUE", nn, vUNIQUE)
		FormFieldValue("OrderForm", "Datum",nn, Eingang)
		FormFieldValue("OrderForm", "PatientID", nn, PatientID)
		FormFieldValue("OrderForm", "Labor", nn, vLabor)
	}
	Throwfocus (New)
} 



-Ray
  

Raymond Yoxall Consulting
ray.yoxall@gmail.com
ryoxall@lantica.com
Sesame Applications, Design and Support
Back to top
IP Logged
 
Amor
Full Member
Members
***
Offline


No personal text

Posts: 366
Location: Germany
Joined: Feb 7th, 2004
Re: Set Unique Order in a Subform
Reply #2 - Jan 13th, 2006 at 10:08pm
Print Post Print Post  
Ah, that's nice and clean, thank you Ray.


  

Dr. med. Amor Belhareth&&Medizin Labor &&Germany
Back to top
 
IP Logged