2014-11-10 2 views
0

작동하지 :필드 GetContentStyle 나는이 2014 SQL Server Express에 일하지 않는 이유를 잘 모릅니다

procedure TMainForm.cxGrid1DBTableView1DONEStylesGetContentStyle(
    Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; 
    AItem: TcxCustomGridTableItem; var AStyle: TcxStyle); 
    var AColumn: TcxCustomGridTableItem; 
begin 
AColumn := (Sender as TcxGridDBTableView).GetColumnByFieldName('DONE'); 
if VarToStr(ARecord.Values[AColumn.Index]) = '0' then 
AStyle := cxstyle1 else AStyle := cxstyle2; 
end; 

그것은 SQLite는, 파이어 버드, Accuracer, 절대 데이터베이스에서 작동 ...하지만 2014 익스프레스 SQL Server에서 그리고 나는 무엇이 잘못 될 수 있는지 모른다.

필드 'DONE'은 데이터베이스에, '비트'데이터 타입 (A 부울 필드의 SQL Server 버전) .Values는 0 또는 cxGrid 1. 이 체크 박스 타입의 보통이다. Cxstyle1의 색상은 clRed이고 cxstyle2의 색상은 clLime입니다.

에서 응용 프로그램이 모든 필드 (선택 또는 선택 취소)를 실행하면 열이 clLime으로 표시됩니다. 그러나 확인란을 선택한 경우에만 해당 색상이 지정되어야합니다! 내가 잘못하고있는 것은 무엇입니까?

+0

존스는 이미 MSSQL을 위해 그것을 해결하는 방법을 제안,하지만 당신은 그것을 자신을 발견 할 수 있어야한다 - 단지 설정 중단 점을 당신이 '0'과 비교 실제 값을 확인하십시오보십시오. –

답변

0

SQL Server BIT는 부울로 델파이에 제공됩니다.

if ARecord.Values[AColumn.Index] then 
    AStyle := cxstyle1 
else 
    AStyle := cxstyle2; 
+0

존 감사합니다! – user3927897