2017-10-30 9 views
1

Crystal Reports 질문. 인보이스 번호 목록에 매개 변수를 입력하는 사용자가 있습니다. 그녀는 송장 번호 및 기타 정보를 송장 번호 목록에 입력 한 순서대로 매개 변수에 표시하려고합니다. 이것이 Crystal Reports에서 가능합니까? SQL에서이 작업을 수행하는 여러 가지 방법을 보았지만 Crystal Reports에서는 그렇지 않았습니다.크리스탈 사용자가 입력 한 매개 변수와 동일한 순서로 표시 순서를 자세히보고합니다.

다음은 Crystal Reports에서 명령으로 사용되는 현재 SQL 쿼리의 단순화 된 버전입니다. 매개 변수 {? InvoiceNumber}는 CR 배열 매개 변수입니다.

SELECT 
    CUS.ACCOUNT, 
    CUS.ADDRESS, 
    CUS.COMPANY, 
    INV.INVOICE_ID 
FROM 
    INV 
INNER JOIN 
    CUS 
    ON INV.ACCOUNT = CUS.ACCOUNT 
WHERE 
    INV.INVOICE_ID IN {?InvoiceNumber} 
+0

당신은 지금까지 무엇을 했는가? – heringer

+0

입력 한 정보가 매개 변수에 저장되는 방법을 찾으려고 노력했지만 가장 좋았을 때 무작위라고 말할 수 있습니다. 나는 그들이 A-1987665, B-1876543 등과 같이 입력 된대로 송장 번호를 "레이블링"하는 방법인지 궁금합니다. – SMcHugh

+1

매개 변수를 사용하여 그룹화하려고 시도 했습니까? – Siva

답변

1

이 시도 :

  1. 매개 변수 배열의 송장 인덱스를 찾기 위해 Crystal Reports의 수식을 만듭니다. 의이 같이 IndexOf를 이름을하자 코드가 될 수있다 :
    numbervar size:=ubound({?AccountNumber}); 
    numbervar position:=0; 
    Local NumberVar i; 
    For i := 1 To size Do 
    (
        if {?AccountNumber}[i] = {INV.INVOICE_ID} 
        then position:=i; 
    ); 
    position; //return 
    
  2. 이 같이 IndexOf하여 그룹을 만듭니다.

Here is a shared RPT file working with this.

+0

나는 똑같은 짓을했으나'{? AccountNumber} [i]'또는'{INV.INVOICE_ID}'를 사용했지만 결국'position'은 사용하지 못했습니다. +1 – Siva

+0

@heringer 정말 고마워요. 그게 효과가 있었어. 송장 번호를 매개 변수에 입력하면 보고서를 새로 고치더라도 송장 번호가 배열에 유지됩니다. 내 학습을 위해, // 코드의 끝 부분에서 // 돌아 오는 이유를 설명 할 수 있습니까? – SMcHugh

+0

마지막 줄에 함수가 반환하는 내용 ("위치")이 정의되어 있다는 것을 분명히하는 것은 단지 주석 일뿐입니다. 안전하게 "// return"주석을 제거 할 수 있습니다. – heringer