Questione : IIf - perché sta valutando entrambe le risposte?

Messa a punto: il
I che compilare una lista report.
I di prezzi ha una forma in cui l'utente può selezionare “il codice„ che corrisponde alla vendita al dettaglio corretta o i valori all'ingrosso per popolare il prezzo list.
If la forma non è caricato, io la vuole appena darmi i valori di difetto (che è il prezzo all'ingrosso). il

I stava sperando di fare il recordsource di rapporto essere una domanda dove uso ELookup per trovare i margini di profitto corretti basati sulla forma selection.

So. In una domanda, sto usando una dichiarazione di IIf per determinare se la forma è caricata. il

What che voglio è questo: il
If che la forma è caricata, quindi che usa le informazioni da quella forma per calcolare i prezzi di vendita, altri appena mi dà il valore senza il calcolo (cioè il prezzo all'ingrosso basso). il

What sta accadendo è che quando la forma non è caricata (gli uguali eval falsi), la domanda ancora mi chieda comunque il parametro sulla forma (come se stia procedando la risposta allineare).  Se colpisco appena impostare (non dargli una risposta), il valore indicato nella domanda risultante è corretto (cioè appena valore senza qualsiasi calcolo).  Ma perché sta chiedendomi il parametro affatto? il

What che sto andando concludere in su fare (almeno fino a che esperti non possiate dirmi che cosa sta accendendo) sono ho due domande e cambiare appena il recordsource del rapporto basato sopra se la forma è aperta o non nella proprietà di OnOpen del rapporto.  Freddo come gradirei.  :)il

Anyway, qui è uno dei miei calcoli di prezzi:
CHMQPrice: IIf (fIsLoaded (“frmChoosePriceList„), IIf (, (RoundToLarger (RoundToLarger (*ELookup (“WholesaleMultiplier„ del [CHMQ], “tblPriceListMarkups„, “ (((MarkupCode) = “„ & [forme]! [frmChoosePriceList]. [Choose] & “")) "), 0) *ELookup (“RetailMultiplier " , “tblPriceListMarkups„,„ (((MarkupCode) = ““& [forme]! [frmChoosePriceList]. [Choose] &„ ")) "), 0)), Posizione di segnale minimo), [CHMQ])

..... Quando la forma non caricata, chiede le forme! frmChoosePriceList.Choose, ma d'altra parte restituisce il valore [CHMQ] di correttamente nella domanda result.

Striped dei calcoli per ottenere tutte quelle parentesi supplementari da là:
CheckingIffs:

di IIf (fIsLoaded (“frmChoosePriceList„), IIf ([CHMQ] , [DummyParameter], “LoadedAndNoPrice„), “di NotLoaded„) ..... Quando la forma non caricata, chiede DummyParameter, ma d'altra parte restituisce correttamente “NotLoaded„ nella domanda result.


Striped per essere semplice quanto possibile:
CheckingIffSimple:

di IIf (1=2, [WhyOhWhy], falsi) ..... Quando la forma non caricata, chiede WhyOhWhy, ma d'altra parte restituisce 0 correttamente nella domanda result.


Oh ed a proposito, ancora la fa con l'inverso:
CheckingIffs:

di IIf ((“frmChoosePriceList„) =0, “NotLoaded„, [DummyParameter] ) ..... Quando formar non caricato, ancora chiede DummyParameter, ma d'altra parte restituisce “NotLoaded„ correttamente nella domanda result.


Why è esso ancora che cerca quei valori di parametro?  Non è quel l'intero scopo di una dichiarazione di IIf è di escludere i calcs che non volete?

Obviously, non lo voglio chiedere il parametro di domanda (e confondere i miei utenti) se aprono in qualche modo il rapporto senza usando la forma.  O, dato che quando sto facendo ripetizioni sul disegno di rapporto - non voglio dovere usare la forma ogni volta voglio alla anteprima di stampa il mio report.

I conoscere che ci è un'azione alternativa, ma questo non ha appena significato me.  Se qualcuno può dirmi che questo è “come progettato„ - giusto.  Ma forse sto essendo muto e qualcuno può ripararmi questo per.  :)


Note:  fIsLoaded, ELookup e RoundToLarger sono funzioni su ordinazione che possono tutti essere trovate facilmente using Google.
class= del

Risposta : IIf - perché sta valutando entrambe le risposte?

> come fa che il codice ottiene innescato

quando Coldfusion vede un CFINCLUDE, smette di procedare la lima corrente e proceda la lima inclusa prima della continuazione.



Potete prendere questo…

e ") >
 
   
   
     
    l, “@"),„ .") eq 0>
     
   


  >
      SELEZIONARE il email
        Da SubscriberTestEmailGroup
      DOVE email = >
   

   
     
   

   
 >
     inserto in SubscriberTestEmailGroup (email)
     valori ("#form.email#")
   


 
   
 

 





e trasformarlo in questo….


e ") >
 

     

 
   
 

 


1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
Ciò sarebbe il contenuto di SendEmail.cfm


    
    
      
    
      
    

  
      SELEZIONARE il email
        Da SubscriberTestEmailGroup
      DOVE email =  
    
    
      
     
    
    
     inserto in SubscriberTestEmailGroup  (email)
     valori ("#form.email#")
     
Altre soluzioni  
 
programming4us programming4us