Q&A

  • DBGrid에서 하나의필드에 두개컬럼의 값을 나타낼 수 있습니까?

항상 이곳에서 많은 도움을 받고있는 초보입니다

범위에 따른 적용률을 DB화 하고 그값을 적용하려는데요
사용자가 값을 입력하면 그 값이 min과  max사이에 포함되는지를 알아내서
그에따른 값을 다른 수식에 적용해야 합니다

테이블은

min          max        salary     contribution
0              3499.99     3000       75.00
3500.00     3999.99      3500       87.50  
4000.00      4499.99     4000       100.00
..               ..            ..            ..

이렇게 생겼습니다

이 DBGrid는 관리자용 인데요
min과 max 의 값을 DBGrid의 한 필드에

3500.00 ~ 3999.99

이렇게 표현하는 방법이 있습니까?
2  COMMENTS
  • Profile
    김장섭 2002.02.20 23:55
    dbgrid를 사용하셨다면 AdoDataSet 이나 Query 컴포넌트를 사용하셨는지요?

    그렇다면 AdoDataSet이나 Query 컴포넌트를 더블 클릭할때 생기는 field eiditor에서 오른쪽 클릭을 해서 new field 를 선택해서 calculated 타입의
    가상 필드를 만듭니다...

    가상 필드의 이름을 make 라고 했다고 가정하고...

    dataset 컴포넌트의 OnCalcFields 이벤트에 코딩을 하시면 됩니다.

    코딩예...


    procedure TForm1.ADODataSet1CalcFields(DataSet: TDataSet);
    begin
      ADODataSet1make.Value := ADODataSet1.fieldbyname('nego_amt').asstring + ' ~ ' +
                               ADODataSet1.fieldbyname('nego_samt').asstring
    end;


    make라는 calculate field 를 만들때 field property 에서 type 은 string을
    선택하시고요 그래야 '~' 표시를 할수 있을거에요...

    도움이 되시길...

  • Profile
    허일학 2002.02.20 23:50

    다음과 같이 두필드를 합쳐서 한필드에 나타내면 가능하지않을까요?
    다음은 DB가 SQL_SERVER인 경우를 예를들어 설명한 것입니다...
    DB에따라 다소차이는 있으나...두필드를 합쳐서 한필드에 나타낸다면
    문제는 없을것이라 생각됩니다.

    SELECT  CAST(MIN AS VARCHAR)+' ~ '+CAST(MAX AS VARCHAR) AS [최대최소값],
                   salary,
                   contribution
      FROM TABLE