• 고객센터
  • 교육
  • 매뉴얼
  • 데모
  • 제품소개
개발자Jackie
조회 수 : 3448
2014.10.13 (13:44:34)

게시판을 이용해 주셔서 감사합니다.
다음양식에 맞게 입력해주세요.

**필수입력사항**

* 고객(업체)명 : LG 전자
* 제품 버전 : Gauce 4.0
* 문의 유형(질문/요청/참조) : 이미지 데이터 셋 출력 오류 문의
* 내용 :
안녕하세요.

| 부품번호 | Image | 생성일 | 생성자 | 파일경로 | 파일명 |

 

위와 같이 그리드를 셋팅후, Imgage 컬럼에는 각 Row 마다 업로드한 Image (Jpg, bmp) 파일을 보여 주도록 만들었습니다.

 

검색 Dataset이 완료 된 후, 각 Row 마다 업로드한 이미지 경로를 찾아가서 Image DataSet에 각 이미지를 셋팅하도록 되어 있습니다.

 

검색 조건에 따라 Row가 20건 정도 일 때에는 이미지 컬럼에 이미지가 바인딩되어 잘 표시되는데,  대략 30~40 Row 이상의 이미지들을 Image Dataset에 넣어 가우스 그리드에 표시할 경우, 이미지가 바인딩이 안됩니다. 그냥 공백으로 나옵니다.

 

확인 부탁드립니다.

 

수고하십시오.

 

<script language=JavaScript for=ds_input event=OnLoadCompleted(rowCnt)>

for(var i=1; i<=ds_input.CountRow; i++) {
   // File이 있는 것만 이미지 표시함.
   if (ds_input.NameValue(i, "fileName") != "") {
    partNoList += ds_input.NameValue(i, "partNo") + "@";
    fileNameList += ds_input.NameValue(i, "fileName") + "@";
    filedir += ds_input.NameValue(i, "fileDir") + "@";

    var condition = "?partList=" + partNoList;
     condition += "&fileNameList=" + fileNameList;
     condition += "&filedir=" + filedir;

    ds_img.DataID = "P_WM_MD_009_IMG_SET.jsp" + condition;
     ds_img.Reset();
   }
  }

</script>

 

 

=========*P_WM_MD_009_IMG_SET.jsp 내용====================================================

<%@ page import="javax.servlet.*,java.io.*,java.util.*,java.text.*,com.gauce.*,com.gauce.io.*,com.gauce.log.*,com.gauce.common.*"%>
<%

      ServiceLoader loader = new ServiceLoader(request, response);
      GauceService service = loader.newService();
     
      File f = null;
      FileInputStream fis = null;

      String partList = request.getParameter("partList");
      String fileNameList = request.getParameter("fileNameList");
      String filedir = request.getParameter("filedir");
     
      try {
          response.setContentType("application/octet-stream;charset=ISO-8859-1");
          GauceResponse res = service.getGauceResponse();
          GauceDataSet ds = new GauceDataSet();
          res.enableFirstRow(ds);
         
          File fImage = null;
          FileInputStream fisImage = null;
         
          ds.addDataColumn(new GauceDataColumn("img",GauceDataColumn.TB_BLOB));
          ds.addDataColumn(new GauceDataColumn("img_id",GauceDataColumn.TB_STRING));
      ds.addDataColumn(new GauceDataColumn("img_size",GauceDataColumn.TB_INT));
    
        //String imgDir = "D:/AADEV_LGE/workspace/PROTOTYPE/war/upload/DFZ/WM/MD/20140801/";
        String[] imgDir = filedir.split("@");
          String[] fileName = fileNameList.split("@");
          String[] partNo = partList.split("@");
          
          for ( int i=0; i<fileName.length; i++ ) {
                  if (!fileName[i].equals("")) {
                      f = new File(imgDir[i] + fileName[i]);
                      fis = new FileInputStream(f);
       
                      GauceDataRow row = ds.newDataRow();
                      row.addColumnValue(fis);
                      row.addColumnValue(partNo[i]);
                      row.addColumnValue(f.length());
                     ds.addDataRow(row);
         }
    }
         
          ds.flush();
          res.flush();
          res.commit();
          res.close();

          if (fis != null) {
              fis.close();             
          }
          //loader.restoreService(service);
      } catch (Exception e) {
          e.printStackTrace();
      }

   
%>

2014.10.13 (13:56:04)
shift

구조가 잘못되어 있습니다.

이미지 데이터셋을 먼저 조회 후 실 데이터를 조회하도록 수정하시기 바랍니다.

기존 : ds_input.reset(); > OnLoadCompleted(ds_input) > ds_img.reset();

수정 : ds_img.reset(); > OnLoadCompleted(ds_img) > ds_input.reset();

 

감사합니다.

(*.234.186.58)
2014.10.13 (14:10:24)
개발자Jackie

말씀하신대로 ds_img.reset(); > OnLoadCompleted(ds_img) > ds_input.reset(); 해보았는데,

 

이미지가 바인딩 되다가 중간에 익스플로러 오류가 납니다.

 

그러면서 익스플로러를 다시 여네요.

 

계속요..

 

문제 서명:
  문제 이벤트 이름: BEX
  응용 프로그램 이름: iexplore.exe
  응용 프로그램 버전: 8.0.7601.18571
  응용 프로그램 타임스탬프: 53eee2cc
  오류 모듈 이름: StackHash_0a9e
  오류 모듈 버전: 0.0.0.0
  오류 모듈 타임스탬프: 00000000
  예외 오프셋: 002f0033
  예외 코드: c0000005
  예외 데이터: 00000008
  OS 버전: 6.1.7601.2.1.0.256.1
  로캘 ID: 1042
  추가 정보 1: 0a9e
  추가 정보 2: 0a9e372d3b4ad19135b953a78882e789
  추가 정보 3: 0a9e
  추가 정보 4: 0a9e372d3b4ad19135b953a78882e789

(*.122.242.65)
2014.10.13 (16:45:24)
shift

일반적인 샘플 테스트에서는 정상 동작하였습니다.

 - 이미지 60개 호출

 - MAX 컴포넌트 최신버전

 

컴포넌트 업그레이드를 진행해 보신 후 동일한 증상이 발생할 경우 유지보수 담당자를 통해 지원을 받으시기 바랍니다.

 

감사합니다.

(*.234.186.58)
2014.10.14 (09:16:11)
개발자Jackie

아래 소스에서 "완료" 라는 메세지가 뜨지 않습니다.

 

예제 소스 부탁드립니다.

 

* <script language=JavaScript for=ds_img event=OnLoadError()>
alert("Version : " + ds_img.Version + " \n Error Code = " + ds_img.ErrorCode + "\n" + "Error Message = " + ds_img.ErrorMsg);

</script>

여기에서 에러 메세지가 뜨는데,

Version : 2,0,1,10
 Error Code = 0
Error Message = The version is not supported or the data are not correct.

 

20건 정도의 이미지가 나오는걸 봐서는 이건 버전 문제 인지요?

 

<script language=JavaScript for=ds_inputForImg event=OnLoadCompleted(rowCnt)>
  var partNoList = "";
  var fileNameList = "";
  var filedir = "";
  
  for(var i=1; i<=ds_inputForImg.CountRow; i++) {
     // File이 있는 것만 이미지 표시함.
     if (ds_inputForImg.NameValue(i, "fileName") != "") {
      partNoList += ds_inputForImg.NameValue(i, "partNo") ;
      fileNameList += ds_inputForImg.NameValue(i, "fileName");
      filedir += ds_inputForImg.NameValue(i, "fileDir") ;
     
      var condition = "?partList=" + partNoList;
       condition += "&fileNameList=" + fileNameList;
       condition += "&filedir=" + filedir;
 
      ds_img.DataID = "P_WM_MD_009_IMG_SET.jsp" + condition;
       ds_img.Reset();
     }
  }
  </script>

 

<script language=JavaScript for=ds_img event=OnLoadCompleted(rowcnt)>

 alert("완료");

</script>

(*.122.242.65)
 
Tag List
XE Login