테이블을 형성하기도 했고 해당 값들이 들어가는 기준도 알아냈지만

value에는 이미지를 넣을 수 없기 때문에 대책을 찾아보다가

apex:facet이라는 것을 찾을 수 있었다.

이미지를 테이블 안에 넣는 것 까지는 진행할 수 있었고

이제 객체 형태만 다듬으면 그 뒤로는 견적서 형태에 맞는 style 조정만 하면 될 것 같았다.

 

이 문제의 해답은 아래의 코드에서 찾을 수 있었는데

내부에 class로 type을 지정하고 해당 클래스를 생성해 데이터를 넣는 방식이다.

//apex class
public with sharing class wrapperTable {
    public wrapperTable(){}

    @AuraEnabled(cacheable=true)
	public static String getAccounts(){
        Integer rowIndex = 0;
        List<accountWrap> accWrapList = new List<accountWrap>();
		try {
            List<Account> accList = [SELECT Id, Name, Phone FROM Account limit 10];
            for(Account a : accList){
            accWrapList.add(new accountWrap(a.Id,a.Name,a.Phone,rowIndex));
            rowIndex++;
            }
            return JSON.serialize(accWrapList);
		} catch (Exception e) {
			throw new AuraHandledException(e.getMessage());
		}
	}
        //class로 type 잡아주는 모습
    public class accountWrap{
        public String Id;
        public String AccountName;
        public String Phone;
        public Boolean isSelected;
        public Integer index;
	    public accountWrap(String Id, String AccountName, String Phone, Integer index){
            this.Id = Id;
            this.AccountName = AccountName;
            this.Phone = Phone;
            this.isSelected = false;
            this.index = index;
		}
            
    }
}

 

매칭 또한 큰 문제는 없었는데 값을 가져올 때 정렬을

‘ORDER BY ' + product2Id + ' ASC’ 형태로 진행하면 각 순서가 일치하기 때문에 문제 없을 것 같았다.

 

여기서 조금 아쉬운 점이 있다면 SortOrder라는 필드 값이 있었기 때문에

최종 데이터 정리 후 해당 정렬 순서에 맞게 한번 더 정렬을 하고 싶었지만

실제로 담겨져 있는 값은 없었다.

 

가공 전 데이터 자체가 나오지 않는 부분이었기 때문에

추가된 순서대로 상품의 순서를 보장할 수 없다는 아쉬움이 있었다.

 

대신 LineNumber라는 필드값에서 대략적인 아이템의 순서를 알 수 있었는데

정렬 방법은 모르곘지만 해당 값 또한 새로운 데이터 타입 객체에 추가해

추후 정렬이 필요할 경우 이용할 수 있을 것 같았고

CreatedDate를 통해서도 순서를 추측할 수는 있을 것 같지만

해당 방식은 드래그 앤 드랍 방식 또는 다른 방식으로 아이템 순서를 조정할 경우

작성자의 의도가 반영될 수 없기 때문에 LineNumber 하나만 값을 넣기로 했다.

 

최종적으로 만들 테이블용 객체 데이터에 들어갈 필드 값들은

출력에 필요한 형태로 만들기 시작했다.

 

도중 사소한 내용이지만 Discount 값이 들어있지 않은 경우

공백으로 들어가 조금 보기 불편했기 때문에 조건을 거는 방식을 시도했는데

if:true나 a?b:c 형태의 삼항연산자 모두 작동하지 않았고

검색 끝에 {!IF(ISNULL(List.Discount), '0', List.Discount)}% 형태로 완성할 수 있었다.

 

수량 부분이 소숫점 두자리까지 표기되는 부분이 불편하기는 한데

액체, 기체, 가루 등 소숫점으로 표현해야 할 수 있을 수 있다고 생각했기 때문에 그냥 넘어갔다.

 

PDF저장을 알아보니 vfPageUrl이 필요하다고 하는데

/apex/quoteTestPage?aaa=0Q05i0000017LDNCA2 형식으로 접근하면 원하는 데이터는 볼 수 있지만

막상 다운로드로 넘어가면 cors 문제로 해결할 수가 없었다.

 

setup의 security에 들어가서 https://*.lightning.force.com등 해당되어 보이는 사이트들을 모두 추가했지만

cors를 해결할 수는 없었다.

 

또한 css를 위해 아이디, 스타일링 등을 적용했지만 적용되지 않았기 때문에

css, 저장 모두 해결되지 않은 상태로 마무리 할 수 밖에 없었다.

 

 

 

 

 

(1).백준 21964번 선린인터넷고등학교 교가는 이해하기 애매한 문제였다.

난이도적으로는 문제될 것은 없었지만 쓸대없는 선린인터넷고등학교 교가를 가져오는데
사실 출제와 가사는 전혀 상관없어서 문제 읽는 시간만 낭비되는 느낌이었고
제목만 보고서 어떤 문제인지 파악하기도 애매한 이상한 문제 같았다.

결론적으로 최종 5글자를 출력하는 것이기 때문에
전체 길이의-5 index부터 -1까지 총 5개의 글자를 빈 문자열에 더한 다음 출력했다.

const input = `12
Sunrin,Hair.`.split('\n')

let lastFive = ''
for(let i = input[1].length-5 ; i < input[1].length ; i++){
    lastFive = lastFive + input[1][i]
}

console.log(lastFive)

'회고' 카테고리의 다른 글

[수습일지] - 37  (0) 2023.05.02
[수습일지] - 36(근로자의 날)  (0) 2023.05.01
[수습일지] - 34(주말)  (0) 2023.04.29
[수습일지] - 33  (0) 2023.04.28
[수습일지] - 32  (0) 2023.04.27

+ Recent posts