2017-12-05 2 views
1

에서 나는 SAS EGRC 6.1 모듈에서 일하고 있어요하여 데이터 그룹을 사용하여 설정 SAS를 표시합니다 나는 데이터 작업 라이브러리에서 다음과 같이 설정 한 어떻게이 데이터 세트를 인쇄 할보고서

SAGIA_Detail 
BranchCode BranchName RegionCode SagiaLicNo IssuingDate ExpiryDate 
    20   Abc  Central  1   1/1/2000  1/1/2001 
    20   Abc  Central  2   1/1/2000  1/1/2001 
    10   def  East   3   1/1/2000  1/1/2001 

BranchManager IsIssuance IssuanceFees IsRenewal RenewalFees Total 
    name   Yes  100   No   0   100 
    name   Yes  100   Yes  100  200 
    name   Yes  200   Yes  100  300 

BranchName 또는 BranchName별로 그룹화 된 SASStoredProcess 보고서 이 코드를 작성했지만 HTML 데이터 테이블의 총계 또는 총계 행없이 내 데이터 세트의 데이터 행만 인쇄합니다.

요컨대 do 루프의 end 문 다음에 어떤 코드도 실행하지 않습니다. 제 코딩에서 내가 잘못한 부분을 찾아 내도록 도와주세요.

data _null_; 
file _webout; 
put '<html><body><table>'; 
do until(last.region); 
set SAGIA_Detail nobs=nobs end=eof; 
by BranchCode RegionCode BranchName; 
if first.BranchCode then put 
      '<tr><th colspan="9"><span><b><u>BranchCode</u></b>: ' BranchCode '</span><span><b><u>BranchName</u></b>: ' BranchName '</span><span><b><u>RegionCode</u></b>: ' RegionCode '</sapn></th></tr> 
      <tr class=Head> 
         <th>Sagia LicenseNo</th> 
         <th>Issue Date</th> 
         <th>Expiry Date</th> 
         <th>Manager Name</th> 
         <th>Is Issuance</th> 
         <th>Issuance Fees</th> 
         <th>Is Renewal</th> 
         <th>Renewal Fees</th> 
         <th>Total</th> 
        </tr>'; 
      put '<tr> 
        <td>';put SagiaLicNo; put '</td> 
        <td>';put IssuingDate date10.; put '</td> 
        <td>';put ExpiryDate date10.; put '</td> 
        <td>';put BranchManager; put '</td> 
        <td>';put IsIssuance; put '</td> 
        <td>';put IssuanceFees comma12.2; put '</td> 
        <td>';put IsRenewal; put '</td> 
        <td>';put RenewalFees comma12.2; put '</td> 
        <td>';put Total comma12.2; put '</td> 
       </tr>'; 

       Total_IssuanceFees = sum(Total_IssuanceFees,IssuanceFees); 
       Total_RenewalFees = sum(Total_RenewalFees,RenewalFees); 
       Total_TotalFees = sum(Total_TotalFees,Total); 
    end; 

    put   '<tr> 
        <td></td> 
        <td></td> 
        <td></td> 
        <td></td> 
        <td></td> 
        <td></td> 
        <td></td> 
        <td></td> 
        <td></td> 
       </tr>'; 

put    '<tr class=Grand> 
        <td>Grand</td> 
        <td></td> 
        <td></td> 
        <td></td> 
        <td></td> 
        <td>' Total_IssuanceFees '</td> 
        <td></td> 
        <td>' Total_RenewalFees '</td> 
        <td>' Total_TotalFees '</td> 
       </tr>'; 

       Issuancegrand+Total_IssuanceFees; 
       Renewalgrand+Total_RenewalFees; 
       Totalgrand+Total_TotalFees; 

if eof then put 
    '<tr class=Grand> 
     <td colspan="6">GrandTotal</td>' 
     '<td>' Issuancegrand '</td>' 
     '<td>' Renewalgrand '</td>' 
     '<td>' Totalgrand '</td></tr>' 
    '</table> 
</body> 
</html>'; 

run; 
+0

로그가 도움이 될 것입니다. 호출 URL에'& _DEBUG = LOG'를 추가하십시오. 내가 본 것에 대해서는 대답 하겠지만 로그가 없으면 디버깅하기가 어려울 것입니다. – DomPazz

답변

1

먼저 BY 절을 사용 중이며 데이터가 정렬되어 있는지 확인하십시오.

proc sort data=SAGIA_Detail; 
by BranchCode RegionCode BranchName; 
run; 

둘째, 샘플 데이터는 변수 BranchRegion을 가지고 있지만 코드는 RegionCode를 사용합니다. 이것들은 같은가요? 코드가 실제로 존재하는 변수를 사용하고 있는지 확인하십시오.

또한 데이터 단계는 last.region을 참조합니다. 변수는 region입니다.

이러한 정보를 수정하면 찾고있는 정보에 더 가까워집니다.

+0

감사합니다. – Azeem112

관련 문제