![](/img/trans.png)
[英]How to do a query between date using jQuery SPServices CAMLQuery
[英]Between in SPServices with multiple date fields
我有以下CAMLQuery。
<Query>
<Where>
<Or>
<Or>
<Or>
<Or>
<Or>
<Eq>
<FieldRef Name='Title' />
<Value Type='Text'>Titulo</Value>
</Eq>
<Geq>
<FieldRef Name='Vencimento_x0020_Certid_x00e3_o_' />
<Value Type='DateTime'>txtDataDeCNDTribMobil</Value>
</Geq>
<Leq>
<FieldRef Name='Vencimento_x0020_Certid_x00e3_o_' />
<Value Type='DateTime'>txtDataAteCNDTribMobil</Value>
</Leq>
</Or>
<Geq>
<FieldRef Name='Vencimento_x0020_CND_x002f_INSS' />
<Value Type='DateTime'>txtDataDeCNDINSS</Value>
</Geq>
<Leq>
<FieldRef Name='Vencimento_x0020_CND_x002f_INSS' />
<Value Type='DateTime'>txtDataAteCNDINSS</Value>
</Leq>
</Or>
<Geq>
<FieldRef Name='Vencimento_x0020_CRF' />
<Value Type='DateTime'>txtDataDeCRF</Value>
</Geq>
<Leq>
<FieldRef Name='Vencimento_x0020_CRF' />
<Value Type='DateTime'>txtDataAteCRF</Value>
</Leq>
</Or>
<Geq>
<FieldRef Name='Vencimento_x0020_CND_x0020_Tribu' />
<Value Type='DateTime'>txtDataDeCNDTribFederais</Value>
</Geq>
<Leq>
<FieldRef Name='Vencimento_x0020_CND_x0020_Tribu' />
<Value Type='DateTime'>txtDataAteCNDTribFederais</Value>
</Leq>
</Or>
<Geq>
<FieldRef Name='Vencimento_x0020_Seguro_x0020_de' />
<Value Type='DateTime'>txtDataDeSegurodeVida</Value>
</Geq>
<Leq>
<FieldRef Name='Vencimento_x0020_Seguro_x0020_de' />
<Value Type='DateTime'>txtDataAteSegurodeVida</Value>
</Leq>
</Or>
</Where>
<OrderBy>
<FieldRef Name='Title' />
</OrderBy>
</Query>
該代碼基本上是:查詢包含多個日期列的Sharepoint 2013列表,並形成多個類型為date的字段。 問題是我創建的表格之間。 CAMLQuery不返回任何內容。 只是一個錯誤,即CAMLQuery不正確。
有人知道如何使用多個日期字段進行CAMLQuery嗎?
ks
如果確實希望將Title = Titulo與所有日期過濾器一起評估為<Or>條件,則以下是您需要的CAML。 相反,如果您希望Title = Titulo為true並且您的一系列<Or>過濾器,請評論或更新您的問題,我將更新答案。
CAML:
<Query>
<Where>
<Or>
<Or>
<Eq>
<FieldRef Name='Title' />
<Value Type='Text'>Titulo</Value>
</Eq>
<Or>
<Or>
<Geq>
<FieldRef Name='Vencimento_x0020_Certid_x00e3_o_' />
<Value Type='DateTime'>txtDataDeCNDTribMobil</Value>
</Geq>
<Leq>
<FieldRef Name='Vencimento_x0020_Certid_x00e3_o_' />
<Value Type='DateTime'>txtDataAteCNDTribMobil</Value>
</Leq>
</Or>
<Or>
<Geq>
<FieldRef Name='Vencimento_x0020_CND_x002f_INSS' />
<Value Type='DateTime'>txtDataDeCNDINSS</Value>
</Geq>
<Leq>
<FieldRef Name='Vencimento_x0020_CND_x002f_INSS' />
<Value Type='DateTime'>txtDataAteCNDINSS</Value>
</Leq>
</Or>
</Or>
</Or>
<Or>
<Or>
<Or>
<Geq>
<FieldRef Name='Vencimento_x0020_CND_x002f_INSS' />
<Value Type='DateTime'>txtDataDeCNDINSS</Value>
</Geq>
<Leq>
<FieldRef Name='Vencimento_x0020_CND_x002f_INSS' />
<Value Type='DateTime'>txtDataAteCNDINSS</Value>
</Leq>
</Or>
<Or>
<Geq>
<FieldRef Name='Vencimento_x0020_CRF' />
<Value Type='DateTime'>txtDataDeCRF</Value>
</Geq>
<Leq>
<FieldRef Name='Vencimento_x0020_CRF' />
<Value Type='DateTime'>txtDataAteCRF</Value>
</Leq>
</Or>
</Or>
<Or>
<Or>
<Geq>
<FieldRef Name='Vencimento_x0020_CND_x0020_Tribu' />
<Value Type='DateTime'>txtDataDeCNDTribFederais</Value>
</Geq>
<Leq>
<FieldRef Name='Vencimento_x0020_CND_x0020_Tribu' />
<Value Type='DateTime'>txtDataAteCNDTribFederais</Value>
</Leq>
</Or>
<Or>
<Geq>
<FieldRef Name='Vencimento_x0020_Seguro_x0020_de' />
<Value Type='DateTime'>txtDataDeSegurodeVida</Value>
</Geq>
<Leq>
<FieldRef Name='Vencimento_x0020_Seguro_x0020_de' />
<Value Type='DateTime'>txtDataAteSegurodeVida</Value>
</Leq>
</Or>
</Or>
</Or>
</Or>
</Where>
<OrderBy>
<FieldRef Name='Title' />
</OrderBy>
</Query>
這是我為問題找到的解決方案。 我知道這不是世界上最好的代碼,但是它可以工作:)
calmQuery = "<Query>"+
"<Where>";
//If the Subcontratados is not empty and all the dates are, applies the ""
if(Subcontratados != '' && (txtDataDeCNDTribMobil == '' && txtDataAteCNDTribMobil == '' && txtDataDeCNDINSS == '' && txtDataAteCNDINSS == '' && txtDataDeCRF == '' && txtDataAteCRF == '' && txtDataDeCNDTribFederais == '' && txtDataAteCNDTribFederais == '' && txtDataDeSegurodeVida == '' && txtDataAteSegurodeVida == '')){
calmQuery += "";
//If the Subcontratados is not empty and no other date also applies the AND
}else if(Subcontratados != '' && (txtDataDeCNDTribMobil != '' || txtDataAteCNDTribMobil != '' || txtDataDeCNDINSS != '' || txtDataAteCNDINSS != '' || txtDataDeCRF != '' || txtDataAteCRF != '' || txtDataDeCNDTribFederais != '' || txtDataAteCNDTribFederais != '' || txtDataDeSegurodeVida != '' || txtDataAteSegurodeVida != '')){
calmQuery += "<And>";
//If none of the above conditions applies the OR
}else{
calmQuery += "<Or>";
}
calmQuery += "<Eq>"+
"<FieldRef Name='Title' />"+
"<Value Type='Text'>"+Subcontratados+"</Value>"+
"</Eq>";
if(txtDataDeCNDTribMobil != '' && txtDataAteCNDTribMobil != '' && (txtDataDeCNDINSS != '' || txtDataAteCNDINSS != '' || txtDataDeCRF != '' || txtDataAteCRF != '' || txtDataDeCNDTribFederais != '' || txtDataAteCNDTribFederais != '' || txtDataDeSegurodeVida != '' || txtDataAteSegurodeVida != '')){
calmQuery += "<Or>";
}else if(txtDataDeCNDINSS != '' && txtDataAteCNDINSS != '' && (txtDataDeCNDTribMobil != '' || txtDataAteCNDTribMobil != '' || txtDataDeCRF != '' || txtDataAteCRF != '' || txtDataDeCNDTribFederais != '' || txtDataAteCNDTribFederais != '' || txtDataDeSegurodeVida != '' || txtDataAteSegurodeVida != '')){
calmQuery += "<Or>";
}else if(txtDataDeCRF != '' && txtDataAteCRF != '' && (txtDataDeCNDINSS != '' || txtDataAteCNDINSS != '' || txtDataDeCNDTribMobil != '' || txtDataAteCNDTribMobil != '' || txtDataDeCNDTribFederais != '' || txtDataAteCNDTribFederais != '' || txtDataDeSegurodeVida != '' || txtDataAteSegurodeVida != '')){
calmQuery += "<Or>";
}else if(txtDataDeCNDTribFederais != '' && txtDataAteCNDTribFederais != '' && (txtDataDeCNDINSS != '' || txtDataAteCNDINSS != '' || txtDataDeCRF != '' || txtDataAteCRF != '' || txtDataDeCNDTribMobil != '' || txtDataAteCNDTribMobil != '' || txtDataDeSegurodeVida != '' || txtDataAteSegurodeVida != '')){
calmQuery += "<Or>";
}else if(txtDataDeSegurodeVida != '' && txtDataAteSegurodeVida != '' && (txtDataDeCNDINSS != '' || txtDataAteCNDINSS != '' || txtDataDeCRF != '' || txtDataAteCRF != '' || txtDataDeCNDTribFederais != '' || txtDataAteCNDTribFederais != '' || txtDataDeCNDTribMobil != '' || txtDataAteCNDTribMobil != '')){
calmQuery += "<Or>";
}
//If txtDataDeCNDTribMobil and is txtDataAteCNDTribMobil is not empty
if(txtDataDeCNDTribMobil != '' && txtDataAteCNDTribMobil != ''){
calmQuery += "<And>"+
"<Geq>"+
"<FieldRef Name='Vencimento_x0020_Certid_x00e3_o_' />"+
"<Value Type='DateTime'>"+txtDataDeCNDTribMobil+"</Value>"+
"</Geq>"+
"<Leq>"+
"<FieldRef Name='Vencimento_x0020_Certid_x00e3_o_' />"+
"<Value Type='DateTime'>"+txtDataAteCNDTribMobil+"</Value>"+
"</Leq>"+
"</And>";
}
//If txtDataDeCNDINSS and txtDataAteCNDINSS is not empty
if(txtDataDeCNDINSS != '' && txtDataAteCNDINSS != ''){
calmQuery += "<And>"+
"<Geq>"+
"<FieldRef Name='Vencimento_x0020_CND_x002f_INSS' />"+
"<Value Type='DateTime'>"+txtDataDeCNDINSS+"</Value>"+
"</Geq>"+
"<Leq>"+
"<FieldRef Name='Vencimento_x0020_CND_x002f_INSS' />"+
"<Value Type='DateTime'>"+txtDataAteCNDINSS+"</Value>"+
"</Leq>"+
"</And>";
}
//If txtDataDeCRF and txtDataAteCRF is not empty
if(txtDataDeCRF != '' && txtDataAteCRF != ''){
calmQuery += "<And>"+
"<Geq>"+
"<FieldRef Name='Vencimento_x0020_CRF' />"+
"<Value Type='DateTime'>"+txtDataDeCRF+"</Value>"+
"</Geq>"+
"<Leq>"+
"<FieldRef Name='Vencimento_x0020_CRF' />"+
"<Value Type='DateTime'>"+txtDataAteCRF+"</Value>"+
"</Leq>"+
"</And>";
}
//If txtDataDeCNDTribFederais and txtDataAteCNDTribFederais is not empty
if(txtDataDeCNDTribFederais != '' && txtDataAteCNDTribFederais != ''){
calmQuery += "<And>"+
"<Geq>"+
"<FieldRef Name='Vencimento_x0020_CND_x0020_Tribu' />"+
"<Value Type='DateTime'>"+txtDataDeCNDTribFederais+"</Value>"+
"</Geq>"+
"<Leq>"+
"<FieldRef Name='Vencimento_x0020_CND_x0020_Tribu' />"+
"<Value Type='DateTime'>"+txtDataAteCNDTribFederais+"</Value>"+
"</Leq>"+
"</And>";
}
//If txtDataDeSegurodeVida and txtDataAteSegurodeVida is not empty
if(txtDataDeSegurodeVida != '' && txtDataAteSegurodeVida != ''){
calmQuery += "<And>"+
"<Geq>"+
"<FieldRef Name='Vencimento_x0020_Seguro_x0020_de' />"+
"<Value Type='DateTime'>"+txtDataDeSegurodeVida+"</Value>"+
"</Geq>"+
"<Leq>"+
"<FieldRef Name='Vencimento_x0020_Seguro_x0020_de' />"+
"<Value Type='DateTime'>"+txtDataAteSegurodeVida+"</Value>"+
"</Leq>"+
"</And>";
}
if(txtDataDeCNDTribMobil != '' && txtDataAteCNDTribMobil != '' && (txtDataDeCNDINSS != '' || txtDataAteCNDINSS != '' || txtDataDeCRF != '' || txtDataAteCRF != '' || txtDataDeCNDTribFederais != '' || txtDataAteCNDTribFederais != '' || txtDataDeSegurodeVida != '' || txtDataAteSegurodeVida != '')){
calmQuery += "</Or>";
}else if(txtDataDeCNDINSS != '' && txtDataAteCNDINSS != '' && (txtDataDeCNDTribMobil != '' || txtDataAteCNDTribMobil != '' || txtDataDeCRF != '' || txtDataAteCRF != '' || txtDataDeCNDTribFederais != '' || txtDataAteCNDTribFederais != '' || txtDataDeSegurodeVida != '' || txtDataAteSegurodeVida != '')){
calmQuery += "</Or>";
}else if(txtDataDeCRF != '' && txtDataAteCRF != '' && (txtDataDeCNDINSS != '' || txtDataAteCNDINSS != '' || txtDataDeCNDTribMobil != '' || txtDataAteCNDTribMobil != '' || txtDataDeCNDTribFederais != '' || txtDataAteCNDTribFederais != '' || txtDataDeSegurodeVida != '' || txtDataAteSegurodeVida != '')){
calmQuery += "</Or>";
}else if(txtDataDeCNDTribFederais != '' && txtDataAteCNDTribFederais != '' && (txtDataDeCNDINSS != '' || txtDataAteCNDINSS != '' || txtDataDeCRF != '' || txtDataAteCRF != '' || txtDataDeCNDTribMobil != '' || txtDataAteCNDTribMobil != '' || txtDataDeSegurodeVida != '' || txtDataAteSegurodeVida != '')){
calmQuery += "</Or>";
}else if(txtDataDeSegurodeVida != '' && txtDataAteSegurodeVida != '' && (txtDataDeCNDINSS != '' || txtDataAteCNDINSS != '' || txtDataDeCRF != '' || txtDataAteCRF != '' || txtDataDeCNDTribFederais != '' || txtDataAteCNDTribFederais != '' || txtDataDeCNDTribMobil != '' || txtDataAteCNDTribMobil != '')){
calmQuery += "</Or>";
}
//CLOSE - If the Subcontratados is not empty and all the dates are, applies the ""
if(Subcontratados != '' && (txtDataDeCNDTribMobil == '' && txtDataAteCNDTribMobil == '' && txtDataDeCNDINSS == '' && txtDataAteCNDINSS == '' && txtDataDeCRF == '' && txtDataAteCRF == '' && txtDataDeCNDTribFederais == '' && txtDataAteCNDTribFederais == '' && txtDataDeSegurodeVida == '' && txtDataAteSegurodeVida == '')){
calmQuery += "";
//CLOSE - If the Subcontratados is not empty and no other date also applies the AND
}else if(Subcontratados != '' && (txtDataDeCNDTribMobil != '' || txtDataAteCNDTribMobil != '' || txtDataDeCNDINSS != '' || txtDataAteCNDINSS != '' || txtDataDeCRF != '' || txtDataAteCRF != '' || txtDataDeCNDTribFederais != '' || txtDataAteCNDTribFederais != '' || txtDataDeSegurodeVida != '' || txtDataAteSegurodeVida != '')){
calmQuery += "</And>";
//CLOSE - If none of the above conditions applies the OR
}else{
calmQuery += "</Or>";
}
calmQuery += "</Where>"+
"<OrderBy>"+
"<FieldRef Name='Title' />"+
"</OrderBy>"+
"</Query>";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.