부서 / 직급별 인원현황(스트링 그리드)
|--------------------------------------------------
| | | | |
|과장 | 대리 | 사원 | 합계 |
-------------------------------------------------|
영업부 | 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 |
-------------------------------------------------
그리드와 똑같이......방식으로...가능할런지.....좋은방법있으면......힌트주세요.(밴드및 모 필요한거 있잔아요..........) 부탁합니다...
혹시 불가능한거면 불가능하다고 말해주세요....^^;
스트링 그리드를 퀵레포트로 출력하려면요..
퀵레포트의 OnNeedData이벤틀 사용해야 합니다..
OnNeedData에 관해서는 QnA를 검색해 봐도
무지하게 무지하게 많은 자료가 있습니다..
그럼.. 즐거운 프로그래밍되세여..