Q&A

  • 스트링그리를 퀵레포트에서 구현하려고 하는데...?
부서 / 직급별 인원현황(스트링 그리드)



|--------------------------------------------------

| | | | |

|과장 | 대리 | 사원 | 합계 |

-------------------------------------------------|

영업부 | 1 | 2 | | 3 |

-------------------------------------------------|

총무부 | | 1 | | 1 |

-------------------------------------------------|

기계부 | 1 | | 1 | 2 |

-------------------------------------------------|

합 계 | 2 | 3 | 1 | 5 |

-------------------------------------------------





with DM_HM_03.QUE_HM0007W1 do

begin

Close;

SQL.Clear;

SQL.Add('select '

+#13+' HBuseo, HBuseoName, HCc '

+#13+' from CC_Buseo ');

Open;

for i := 1 to recordcount do //데이타를 Row부서를 뿌린다

begin

STG_HM0007W1.RowCount := i + 3;

STG_HM0007W1.Cells[0,i] := DM_HM_03.QUE_HM0007W1.FieldByName('HBuseoName').AsString;

next;

STG_HM0007W1.Cells[0, i+1] := '';

STG_HM0007W1.Cells[0, i+2] := '합 계';

end;

end;



with DM_HM_03.QUE_HM0007W1 do

begin

Close;

SQL.Clear;

SQL.Add('Select '

+#13+' HJikchaek, HJikName, MJikchaek, MJikmu '

+#13+' from HM_Jikchaek ');

Open;

for i := 1 to recordcount do //데이타를 Col에

begin

STG_HM0007W1.ColCount := i+3;

STG_HM0007W1.Cells[i,0] := DM_HM_03.QUE_HM0007W1.FieldByName('HJikName').AsString;

next;

STG_HM0007W1.Cells[i+1, 0] := '';

STG_HM0007W1.Cells[i+2, 0] := '합 계';

end;

end;



With DM_HM_03.QUE_HM0007W1_1 do

begin

Close;

SQL.Clear;

SQL.Add('select '

+#13+' B.HBuseoName , C.HJikName, '

+#13+' convert(char(2), count(C.HJikName)) 인원수 '

+#13+'from '

+#13+' HM_Master A, CC_Buseo B, HM_Jikchaek C '

+#13+'where '

+#13+' A.HBuseo = B.HBuseo and '

+#13+' A.HJikchaek = C.HJikchaek '

+#13+'and A.DIpsa < ''' + DateToStr(MED_DRetire.Date) + ''' and hwork < 2 '

+#13+'and A.DIpsa < ' + '1999-01-01' + ' and hwork < 2 '

+#13+'group by '

+#13+'B.HBuseoName , C.HJikName ');

Open;



for i := 0 to recordcount do

begin //해당 부서, 직책으로 스트링의 로우, 칼럼의 integer값을 찾아준다.

LIN_column := GetGridColumnByName(STG_HM0007W1, FieldByName('HJikName').asstring);

LIN_Row := GetGridRowByName(STG_HM0007W1, FieldByName('HBuseoName').asstring );



STG_HM0007W1.Cells[LIN_Column, LIN_Row] := FieldByName ('인원수').asstring; // 해당 셀에 인원수 뿌린다.

next;

end;

GridTotal;

end;





이렇게 스트링 그리드의 모양을 만들었습니다.

그런데 문제는 퀵레포트를 이용해 출력을 하려고 하는데 갑자기 기분이 묘해지면서 아무 생각이 안납니다.



-- 부서, 직책---은 언제든지 추가, 삭제 되는데 그것에 따른 퀵레포트를 어떻게 만들어야 할지......퀵레포트의 모양은



|--------------------------------------------------

| | | | |

|과장 | 대리 | 사원 | 합계 |

-------------------------------------------------|

영업부 | 1 | 2 | | 3 |

-------------------------------------------------|

총무부 | | 1 | | 1 |

-------------------------------------------------|

기계부 | 1 | | 1 | 2 |

-------------------------------------------------|

합 계 | 2 | 3 | 1 | 5 |

-------------------------------------------------



그리드와 똑같이......방식으로...가능할런지.....좋은방법있으면......힌트주세요.(밴드및 모 필요한거 있잔아요..........) 부탁합니다...



혹시 불가능한거면 불가능하다고 말해주세요....^^;

1  COMMENTS
  • Profile
    처음 2000.08.10 02:07
    음..



    스트링 그리드를 퀵레포트로 출력하려면요..



    퀵레포트의 OnNeedData이벤틀 사용해야 합니다..



    OnNeedData에 관해서는 QnA를 검색해 봐도

    무지하게 무지하게 많은 자료가 있습니다..



    그럼.. 즐거운 프로그래밍되세여..