Delphi数据库开发及统计表格设计(2)

2008-04-09 04:17:18来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


  T1FORM:TT1FORM;

  implementation
  {$R*.DFM}

  PROCEDURE tt1form.COL(VAR I,K:INTEGER);{用FOR...DO循环填写SG11表格中第I列的VAR J:INTEGER;值}
  BEGIN
  WITH SG11 DO
  BEGIN
  QUERYTB1.FIRST;
  FOR J:=2 TO K-1 DO
  BEGIN
  IF CELLS[0,J]=QUERYTB1.FIELDS[0].ASSTRING THEN{第0列填写单位代码}
BEGIN
  CELLS[I,J]:=QUERYTB1.FIELDS[1].ASSTRING;{填写第I列中某一行的值}
  QUERYTB1.NEXT;
  CELLS[I,1]:=INTTOSTR(STRTOINT(CELLS[I,1]) STRTOINT(CELLS[I,J]));
  END
  ELSE
CELLS[I,J]:=INTTOSTR(0);
  END;{FOR}
  END;{WITH}
  END;

  PROCEDURE Tt1form.CC(VAR I,K:INTEGER);
  VAR
J:INTEGER;
  BEGIN
  WITH SG11 DO
  BEGIN
  FOR J:=1 TO K-1 DO
  CELLS[I,J]:=INTTOSTR(STRTOINT(CELLS[1,J]-STRTOINT(CELLS[I-1,J])));
  END;{WITH}
  END;

  procedure TT1FORM.FormCreate(Sender:TObject);{在创建窗体T1FORM时生成表格并填写统计值}
  VAR
R,I,K,J:INTEGER;
  begin
  WITH SGLL DO
  BEGIN
CELLS[0,0]:=单位{填写第0行各列标题}
  CELLS[1,0]:=总人数;
  CELLS[2,0]:=固定;
  CELLS[3,0]:=合同;
  CELLS[4,0]:=干部;
  CELLS[5,0]:=工人;
  FOR I:=1 TO 5 DO
  BEGIN
  CELLS[I,1]:=INTTOSTR(0);
  END;
  END;

  WITH QUERYTB1 DO
  BEGIN
  SQL.CLEAR;
  SQL.ADD(SELECT DW,COUNT(DW)FROM B_BASETJ F,B_INFO E);
  SQL.ADD(WHERE F.”SHBZCODE”=E.”SHBZCODE”GROUP BY DW);
  OPEN;
  R:=RECORDCOUNT 2;
  SG11.ROWCOUNT:=R;
  SG11.CELLS[0,1]:=合计;
  FIRST;
  K:=R;
  FOR J:=2 TO K DO
  BEGIN
SG11.CELLS[0,J]:=FIELDS[0].ASSTRING;{填写第0列单位号}
  NEXT;
  END;

  I:=1;
  COL(I,K);{填写第1列合计}
  SQL.CLEAR;
  SQL.ADD(SELECT DW,COUNT(E.”DW”));
  SQL.ADD(FROM “B_BASETJ.DB”E,B_INFO F WHERE E.”SHBZCODE”=F.”SHBZCODE” AND F

.”ATTRIBUTION”=”固定职工”GROUP BY DW);

  I:=2;
  OPEN;
  COL(I,K);{填写第2列各单位固定工人数}
  SQL.CLEAR;
  SQL.ADD(SELECT DW,COUNT(E.”DW”));
  SQL.ADD(FROM “B_BASETJ.DB”E,B_INFO F WHERE E.”SHBZCODE”=F.”SHBZCODE” AND F.”

ATTRIBUTION”=”农民合同工”GROUP BY DW);

   I:=3;
  CC(I,K);{填写第3列各单位合同工人数}
  SQL.CLEAR;
  SQL.ADD(SELECT DW,COUNT(E.”DW”));
  SQL.ADD(FROM “B_BASETJ.DB”E,B_INFO F WHERE E.”SHBZCODE”=F.”SHBZCODE”AND F.”

CADRE_ZW”$#@60;$#@62;””GROUP BY DW);

  I:=4;
  OPEN;
  COL(I,K);{填写第4列各单位干部人数}

  I:=5;
  CC(I,K);{填写第5列各单位工人人数}
 END;
 end;

  ......

end.

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:在DELPHI程序中使用ADO对象存取ODBC数

下一篇:用Delphi 开发数据库程序经验三则