⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usrpt1.pas

📁 是分布式粮库程序,是采用Delphi实现的
💻 PAS
字号:
unit usRpt1;

interface
uses dbtables,Sysutils;

        procedure US_CreateReport1(pAttr:PChar; FClass:integer; RowPerPage:integer);
        procedure US_FreeReport1;
        procedure AddColumnHeader;
        procedure FillTable;

var     //us_db1  : TDataBase;
        //us_qry  : TQuery;
        sAttr   : string;
        iFClass  : integer;
        iRowPerPage : integer;

        iRowCount    : integer;

        iPageNO : integer;

implementation
uses uXls,uCommon,uFoodsStockQ;

procedure US_CreateReport1(pAttr:PChar; FClass:integer; RowPerPage:integer);
begin
  {
  us_db1 := TDatabase.Create(nil);
  with us_db1 do
  begin
        AliasName := 'HZ_US';
        DatabaseName :='HZ_US';
        Params.Clear;
        Params.Add('USER NAME=hzdba');
        Params.Add('PASSWORD=project');
        KeepConnection := True;
        LoginPrompt := False;
        Connected := True;
  end;

  us_qry := TQuery.Create(nil);
  us_qry.DatabaseName := 'HZ_US';
  }
  iRowPerPage := RowPerPage;
  iPageNO := 0;
  iRowCount := frmFoodsStockQ.FoodsStockQuery.RecordCount;
  frmFoodsStockQ.FoodsStockQuery.First;
  sAttr := pAttr;
  iFClass := FClass;

  XLS_Create;
  XLS_SetWorkSheetFontSize('宋体',10);

  while not frmFoodsStockQ.FoodsStockQuery.Eof do
  begin
        AddColumnHeader;
        FillTable;
        Inc(iPageNO);
        XLS_AddPageBreak(iPageNO*(iRowPerPage+5),13);
  end;

  XLS_Show;
end;

procedure US_FreeReport1;
begin
end;

procedure AddColumnHeader;
var r : integer;
    i : integer;
begin
        r := iPageNO * (iRowPerPage+5);

        Inc(r);
        XLS_Merge(1,r,13,r);
        XLS_FillRange(1,r,13,r,sAttr+'储藏情况表');

        r := r+2;
        //XLS_FillCell(1,r,'填报单位:'+Unit_Name,2);
        XLS_FillCell(1,r,'填报单位:',2);
        XLS_FillCell(13,r,'储粮性质:'+sAttr,1);

        Inc(r);
        XLS_DrawBorder(1,r,1,r);
        XLS_FillCell(1,r,'库点',0);
        XLS_DrawBorder(2,r,2,r);
        XLS_FillCell(2,r,'仓号',0);
        XLS_DrawBorder(3,r,3,r);
        XLS_FillCell(3,r,'货位',0);
        XLS_DrawBorder(4,r,4,r);
        XLS_FillCell(4,r,'品种',0);
        XLS_DrawBorder(5,r,5,r);
        XLS_FillCell(5,r,'产地',0);
        XLS_DrawBorder(6,r,6,r);
        XLS_FillCell(6,r,'入库年月',0);
        XLS_DrawBorder(7,r,7,r);
        XLS_FillCell(7,r,'数量 Kg',0);
        XLS_DrawBorder(8,r,8,r);
        XLS_FillCell(8,r,'包数',0);
        XLS_DrawBorder(9,r,9,r);
        XLS_FillCell(9,r,'水分%',0);
        XLS_DrawBorder(10,r,10,r);
        XLS_FillCell(10,r,'杂质',0);

        case iFClass of
          1: // 大米
          begin
                XLS_DrawBorder(11,r,11,r);
                XLS_FillCell(11,r,'稻谷粒',0);
                XLS_DrawBorder(12,r,12,r);
                XLS_FillCell(12,r,'不完善粒',0);
          end;
          2: // 大豆
          begin
                XLS_DrawBorder(11,r,11,r);
                XLS_FillCell(11,r,'纯粮率',0);
          end;
          3: // 小麦
          begin
                XLS_DrawBorder(11,r,11,r);
                XLS_FillCell(11,r,'容重(g/L)',0);
                XLS_DrawBorder(12,r,12,r);
                XLS_FillCell(12,r,'不完善粒',0);

          end;
          4: // 玉米
          begin
                XLS_DrawBorder(11,r,11,r);
                XLS_FillCell(11,r,'纯粮率',0);
                XLS_DrawBorder(12,r,12,r);
                XLS_FillCell(12,r,'容重(g/L)',0);
                XLS_DrawBorder(13,r,13,r);
                XLS_FillCell(13,r,'不完善粒',0);
          end;
          5: // 稻谷
          begin
                XLS_DrawBorder(11,r,11,r);
                XLS_FillCell(11,r,'黄粒米%',0);
                XLS_DrawBorder(12,r,12,r);
                XLS_FillCell(12,r,'出糙率%',0);
                XLS_DrawBorder(13,r,13,r);
                XLS_FillCell(13,r,'不完善粒',0);
                // 暂不打印
                //XLS_DrawBorder(14,r,14,r);
                //XLS_FillCell(14,r,'整精米率%',0);
                //XLS_DrawBorder(15,r,15,r);
                //XLS_FillCell(15,r,'谷外糙米%',0);
          end;
          6: // 油
          begin
                XLS_DrawBorder(11,r,11,r);
                XLS_FillCell(11,r,'酸价',0);
                XLS_DrawBorder(12,r,12,r);
                XLS_FillCell(12,r,'高过氧化值',0);
          end;
        end;

end;

procedure FillTable;
var i : integer;
    r : integer;
    iBase : integer;
    y,m,d : word;
begin
        iBase := iPageNO * (iRowPerPage+5)+4;

        for i:=1 to iRowPerPage do
        begin
                r := iBase+i;
                with frmFoodsStockQ do
                begin
                        if FoodsStockQuery.Eof then Break;

                        XLS_DrawBorder(1,r,1,r);
                        XLS_FillCell(1,r,FoodsStockQuerySite.Value,0);
                        XLS_DrawBorder(2,r,2,r);
                        XLS_FillCell(2,r,FoodsStockQueryDepot.Value,0);
                        XLS_DrawBorder(3,r,3,r);
                        XLS_FillCell(3,r,FoodsStockQueryFDSTK_DEPOTPOS.AsString,0);
                        XLS_DrawBorder(4,r,4,r);
                        XLS_FillCell(4,r,FoodsStockQueryFoodType.Value,0);
                        XLS_DrawBorder(5,r,5,r);
                        XLS_FillCell(5,r,FoodsStockQueryFDSTK_PRODAREA.Value,0);
                        XLS_DrawBorder(6,r,6,r);
                        DecodeDate(FoodsStockQueryFDSTK_INDATETIME.Value,y,m,d);
                        XLS_FillCell(6,r,IntToStr(y)+'-'+IntToStr(m),0);
                        XLS_DrawBorder(7,r,7,r);
                        XLS_FillCell(7,r,FoodsStockQueryFDSTK_SUM.AsString,0);
                        XLS_DrawBorder(8,r,8,r);
                        XLS_FillCell(8,r,FoodsStockQueryPackageSum.AsString,0);
                        XLS_DrawBorder(9,r,9,r);
                        XLS_FillCell(9,r,FoodsStockQueryFQ_MOISTURE.AsString,0);
                        XLS_DrawBorder(10,r,10,r);
                        XLS_FillCell(10,r,FoodsStockQueryFQ_IMPURITY.AsString,0);

                        case iFClass of
                          1: // 大米
                          begin
                                XLS_DrawBorder(11,r,11,r);
                                XLS_FillCell(11,r,FoodsStockQueryFQ_ITEM2.AsString,0);
                                XLS_DrawBorder(12,r,12,r);
                                XLS_FillCell(12,r,FoodsStockQueryFQ_ITEM3.AsString,0);
                          end;
                          2: // 大豆
                          begin
                                XLS_DrawBorder(11,r,11,r);
                                XLS_FillCell(11,r,FoodsStockQueryFQ_ITEM1.AsString,0);
                          end;
                          3: // 小麦
                          begin
                                XLS_DrawBorder(11,r,11,r);
                                XLS_FillCell(11,r,FoodsStockQueryFQ_ITEM2.AsString,0);
                                XLS_DrawBorder(12,r,12,r);
                                XLS_FillCell(12,r,FoodsStockQueryFQ_ITEM3.AsString,0);

                          end;
                          4: // 玉米
                          begin
                                XLS_DrawBorder(11,r,11,r);
                                XLS_FillCell(11,r,FoodsStockQueryFQ_ITEM1.AsString,0);
                                XLS_DrawBorder(12,r,12,r);
                                XLS_FillCell(12,r,FoodsStockQueryFQ_ITEM2.AsString,0);
                                XLS_DrawBorder(13,r,13,r);
                                XLS_FillCell(13,r,FoodsStockQueryFQ_ITEM3.AsString,0);
                          end;
                          5: // 稻谷
                          begin
                                XLS_DrawBorder(11,r,11,r);
                                XLS_FillCell(11,r,FoodsStockQueryFQ_ITEM1.AsString,0);
                                XLS_DrawBorder(12,r,12,r);
                                XLS_FillCell(12,r,FoodsStockQueryFQ_ITEM2.AsString,0);
                                XLS_DrawBorder(13,r,13,r);
                                XLS_FillCell(13,r,FoodsStockQueryFQ_ITEM3.AsString,0);
                          end;
                          6: // 油
                          begin
                                XLS_DrawBorder(11,r,11,r);
                                XLS_FillCell(11,r,FoodsStockQueryFQ_ITEM1.AsString,0);
                                XLS_DrawBorder(12,r,12,r);
                                XLS_FillCell(12,r,FoodsStockQueryFQ_ITEM2.AsString,0);
                          end;
                        end;

                        FoodsStockQuery.Next;
                end;

        end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -