여러...고수님들께......
1 2 3 4 5 6
11 21 31 41 가 51
32 22 33 34 라 55
14 26 63 45 마 52
34 62 73 46 버 53
34 82 38 84 아 54
17 22 13 04 비 55
45 92 33 44 사 56
99 20 23 14 다 57
1 .다음과 같이 스트링 그리드가 있을때 이중 특정 칼럼에
해당되는 cell의 값을 가지고 있다가 테이블에 그것들만 update
할 수 있는 방법좀 알려주세요...
이중에서 나머지 1 , 2 ,3 , 4 행은 readonly 이고 5 , 6행만 편집이
가능하구요.
즉 예를 들어 5 행의 가, 사, 다 를 테이블에 update
6 행의 55, 53 , 55 의 값을 update할려고 하거든요..
전 현재 전체를 for문으로 update를 하는데 이러면 변경된것 뿐 아니라
전체가 update되더라구요....
단. 열(row)은 동적입니다..행(col)은 고정이구요..
<<참고로 현재의 코딩내역입다 >>
for i := 1 to RowCount -2 do //전체 row 수만큼 다 돌게 하였습니다..
10 개면 10번..100개면 100 번....1000 이면 1000번..휴우..
이렇게 되는 것을 막을려고 하거든요..
BEGIN
with query2 do
begin
try
close;
sql.clear;
sql.add('update T_BLINE_SALES_DETAIL ');
sql.add('set fcontramount = :li_amt ,');
sql.add(' breach_chk = :ls_chk ');
sql.add('where BILL_YM = :ls_bill_ym ');
sql.add('and payer_no = :ls_payer_no ');
sql.add('and user_no = :ls_user_no ');
sql.add('and gubun = ''01'' ');
sql.add('and seq_no = :ls_seq_no ');
parambyname('li_amt').asfloat := strtoint( Cells[13,i]) ;
parambyname('ls_chk').asstring := Cells[15,i];
parambyname('ls_bill_ym').asstring := MaskEdit1.text;
parambyname('ls_payer_no').asstring:= Cells[0,i];
parambyname('ls_user_no').asstring := Cells[3,i];
parambyname('ls_seq_no').asstring := Cells[6,i];
end;
2 위의 1번을 처리할때 사용자가 특정 row를 선택하면 그 row 전체에 색을 넣고 싶은데.. 그러니까... 사용자가 선택한 row (램덤하게) 마다 말이죠 ... 그래야 사용사자 어떤 열에 값을 변경 했는지 쉽게 알수 있도록 말이죠....
선택해서 변경된 열만 색이 바뀌도록 말이죠..
여러분들의 도움이 필요합니다...도와주세요..
> 여러...고수님들께......
>
> 1 2 3 4 5 6
> 11 21 31 41 가 51
> 32 22 33 34 라 55
> 14 26 63 45 마 52
> 34 62 73 46 버 53
> 34 82 38 84 아 54
> 17 22 13 04 비 55
> 45 92 33 44 사 56
> 99 20 23 14 다 57
>
> 1 .다음과 같이 스트링 그리드가 있을때 이중 특정 칼럼에
> 해당되는 cell의 값을 가지고 있다가 테이블에 그것들만 update
> 할 수 있는 방법좀 알려주세요...
> 이중에서 나머지 1 , 2 ,3 , 4 행은 readonly 이고 5 , 6행만 편집이
> 가능하구요.
>
> 즉 예를 들어 5 행의 가, 사, 다 를 테이블에 update
> 6 행의 55, 53 , 55 의 값을 update할려고 하거든요..
>
> 전 현재 전체를 for문으로 update를 하는데 이러면 변경된것 뿐 아니라
> 전체가 update되더라구요....
> 단. 열(row)은 동적입니다..행(col)은 고정이구요..
>
> <<참고로 현재의 코딩내역입다 >>
> for i := 1 to RowCount -2 do //전체 row 수만큼 다 돌게 하였습니다..
> 10 개면 10번..100개면 100 번....1000 이면 1000번..휴우..
> 이렇게 되는 것을 막을려고 하거든요..
> BEGIN
> with query2 do
> begin
> try
> close;
> sql.clear;
> sql.add('update T_BLINE_SALES_DETAIL ');
> sql.add('set fcontramount = :li_amt ,');
> sql.add(' breach_chk = :ls_chk ');
> sql.add('where BILL_YM = :ls_bill_ym ');
> sql.add('and payer_no = :ls_payer_no ');
> sql.add('and user_no = :ls_user_no ');
> sql.add('and gubun = ''01'' ');
> sql.add('and seq_no = :ls_seq_no ');
>
> parambyname('li_amt').asfloat := strtoint( Cells[13,i]) ;
> parambyname('ls_chk').asstring := Cells[15,i];
> parambyname('ls_bill_ym').asstring := MaskEdit1.text;
> parambyname('ls_payer_no').asstring:= Cells[0,i];
> parambyname('ls_user_no').asstring := Cells[3,i];
> parambyname('ls_seq_no').asstring := Cells[6,i];
> end;
>
> 2 위의 1번을 처리할때 사용자가 특정 row를 선택하면 그 row 전체에 색을 넣고 싶은데.. 그러니까... 사용자가 선택한 row (램덤하게) 마다 말이죠 ... 그래야 사용사자 어떤 열에 값을 변경 했는지 쉽게 알수 있도록 말이죠....
> 선택해서 변경된 열만 색이 바뀌도록 말이죠..
>
> 여러분들의 도움이 필요합니다...도와주세요..
제생각에 Col을 하나더 추가하시고 선택시 '1' 해제시 '0'으로 만들어 주고
DrawCell이벤트에서 이 Col을 검사해서 '1'이면 색깔을 다르게 주면 될 것 같은데요.