Today's

길을 나서지 않으면 그 길에서 만날 수 있는 사람을 만날 수 없다

갑을병정이야기

DevExtreme과 JavaScript를 활용한 다양한 기능 구현

Billcorea 2024. 9. 1. 15:42
반응형

DevExtreme과 JavaScript를 활용한 다양한 기능 구현

dxDataChart 을 형상화 해 봐 feat dall-e-3

 

1. dxDataGrid와 dxDateBox 소개

dxDataGrid

dxDataGrid는 DevExtreme의 JavaScript UI 컴포넌트 중 하나로, 데이터를 그리드 형태로 표시하는 데 사용됩니다. 이 컴포넌트는 데이터 정렬, 그룹화, 필터링, 편집, 내보내기 등 다양한 기능을 제공합니다.

dxDateBox

dxDateBox는 DevExtreme의 UI 컴포넌트 중 하나로, 날짜와 시간을 지정된 형식으로 표시하고 사용자가 필요한 날짜/시간 값을 선택하거나 입력할 수 있도록 합니다.

2. dxDateBox 값 변경 감지

dxDateBox의 값이 변경되었을 때 이를 감지하려면 onValueChanged 이벤트를 사용할 수 있습니다.

JavaScript
 
$("#dateBox").dxDateBox({
    onValueChanged: function(e) {
        console.log("New value: ", e.value);
    }
});
AI가 생성한 코드입니다. 신중하게 검토하고 사용하세요. FAQ의 자세한 정보.

3. jQuery를 사용한 날짜 계산 및 변환

1년 전 날짜 구하기

JavaScript
 
var currentDate = new Date();
currentDate.setFullYear(currentDate.getFullYear() - 1);
console.log(currentDate);
AI가 생성한 코드입니다. 신중하게 검토하고 사용하세요. FAQ의 자세한 정보.

문자열을 Date 객체로 변환

JavaScript
 
var dateString = "2024-08-19";
var dateObject = new Date(dateString);
console.log(dateObject);
AI가 생성한 코드입니다. 신중하게 검토하고 사용하세요. FAQ의 자세한 정보.

Date 객체를 문자열로 변환

JavaScript
 
var dateObject = new Date();
var dateString = dateObject.toString();
console.log(dateString);

var localDateString = dateObject.toLocaleDateString();
console.log(localDateString);
AI가 생성한 코드입니다. 신중하게 검토하고 사용하세요. FAQ의 자세한 정보.

4. Oracle 12c에서 VALIDATE_CONVERSION 대안

Oracle 12c에서 VALIDATE_CONVERSION 함수를 사용할 수 없는 경우, PL/SQL 사용자 정의 함수나 REGEXP_INSTR 함수를 사용할 수 있습니다.

SQL
 
SELECT CASE 
         WHEN REGEXP_INSTR('2024-08-19', '^\d{4}-\d{2}-\d{2}$') = 1 
         THEN 'Valid' 
         ELSE 'Invalid' 
       END AS date_check 
FROM dual;
AI가 생성한 코드입니다. 신중하게 검토하고 사용하세요. FAQ의 자세한 정보.

5. DevExtreme dxChart 사용 예제

월별 데이터 시각화

DevExtreme의 dxChart를 사용하여 월별 전체 건수, 확인 건수, 미확인 건수를 막대그래프로 그릴 수 있습니다. 다음은 예제 코드입니다:

JavaScript
 
$(function() {
    var data = [
        { month: "January", total: 100, confirmed: 70, unconfirmed: 30 },
        { month: "February", total: 120, confirmed: 90, unconfirmed: 30 },
        // 추가 데이터...
    ];

    $("#chartContainer").dxChart({
        dataSource: data,
        commonSeriesSettings: {
            argumentField: "month",
            type: "bar"
        },
        series: [
            { valueField: "total", name: "Total" },
            { valueField: "confirmed", name: "Confirmed" },
            { valueField: "unconfirmed", name: "Unconfirmed" }
        ],
        argumentAxis: {
            title: {
                text: "Month"
            }
        },
        valueAxis: {
            title: {
                text: "Count"
            }
        },
        legend: {
            verticalAlignment: "bottom",
            horizontalAlignment: "center"
        },
        tooltip: {
            enabled: true,
            customizeTooltip: function (arg) {
                return {
                    text: `${arg.seriesName}: ${arg.value}`
                };
            }
        }
    });
});

 

6. dxDataGrid에서 셀 값에 따라 CSS 클래스 변경 및 첫 줄에 빈 줄 추가하기

안녕하세요, 여러분! 오늘은 DevExpress의 dxDataGrid를 사용하여 셀 값에 따라 CSS 클래스를 동적으로 변경하고, 첫 줄에 빈 줄을 추가하는 방법에 대해 알아보겠습니다. 이 두 가지 기능은 데이터 그리드를 더욱 유연하고 사용자 친화적으로 만드는 데 큰 도움이 됩니다.

셀 값에 따라 CSS 클래스 변경하기

dxDataGrid에서 특정 셀 값에 따라 CSS 클래스를 변경하려면 cellPrepared 이벤트를 활용할 수 있습니다. 이 이벤트를 통해 각 셀의 값을 확인하고 조건에 따라 CSS 클래스를 적용할 수 있습니다. 아래는 예제 코드입니다:

JavaScript
 
$("#gridContainer").dxDataGrid({
    // ... 다른 설정들 ...
    onCellPrepared: function(e) {
        if(e.rowType === "data") {
            if(e.column.dataField === "yourFieldName") {
                if(e.value > 100) {
                    e.cellElement.addClass("high-value");
                } else {
                    e.cellElement.addClass("low-value");
                }
            }
        }
    }
});
AI가 생성한 코드입니다. 신중하게 검토하고 사용하세요. FAQ의 자세한 정보.

위 코드에서 yourFieldName을 실제 데이터 필드 이름으로 바꾸고, high-value와 low-value는 CSS 클래스 이름입니다. 이 클래스들은 CSS 파일에서 정의할 수 있습니다:

CSS
 
.high-value {
    background-color: #ffcccc;
}

.low-value {
    background-color: #ccffcc;
}
AI가 생성한 코드입니다. 신중하게 검토하고 사용하세요. FAQ의 자세한 정보.

이렇게 하면 특정 셀 값에 따라 CSS 클래스를 동적으로 적용할 수 있습니다.

첫 줄에 빈 줄 추가하기

dxDataGrid에서 첫 줄에 빈 줄을 추가하려면 addRow 메서드를 사용하여 새로운 행을 추가하고, 그 행을 첫 번째 위치로 이동시킬 수 있습니다. 아래는 예제 코드입니다:

JavaScript
 
// dxDataGrid 설정
$("#gridContainer").dxDataGrid({
    dataSource: dataSource,
    columns: ["id", "name", "age"],
    editing: {
        mode: "row",
        allowAdding: true,
        allowUpdating: true,
        allowDeleting: true
    },
    onInitNewRow: function(e) {
        e.data = { id: null, name: "", age: null }; // 빈 데이터로 초기화
    },
    onRowInserted: function(e) {
        var instance = $("#gridContainer").dxDataGrid("instance");
        var dataSource = instance.getDataSource();
        var store = dataSource.store();
        
        store.insert(e.data).done(function() {
            dataSource.reload().done(function() {
                instance.refresh();
            });
        });
    }
});

// 첫 줄에 빈 줄 추가 함수
function addEmptyRow() {
    var instance = $("#gridContainer").dxDataGrid("instance");
    instance.addRow();
}

// 버튼 클릭 시 빈 줄 추가
$("#addRowButton").on("click", function() {
    addEmptyRow();
});
AI가 생성한 코드입니다. 신중하게 검토하고 사용하세요. FAQ의 자세한 정보.

위 코드에서 onInitNewRow 이벤트를 사용하여 새로운 행을 빈 데이터로 초기화하고, addRow 메서드를 호출하여 첫 줄에 빈 줄을 추가합니다.

 

이렇게 dxDataGrid에서 셀 값에 따라 CSS 클래스를 변경하고, 첫 줄에 빈 줄을 추가하는 방법을 알아보았습니다. 이 두 가지 기능을 통해 데이터 그리드를 더욱 유연하고 사용자 친화적으로 만들 수 있습니다. 도움이 되셨길 바라며, 추가 질문이 있으시면 언제든지 댓글로 남겨주세요!

 

이런 저런 참고 사항 입니다.

반응형