www.gusucode.com > 精典源码Delphi124:天心源码 > 精典源码Delphi124:天心源码/天心源码/Pascal/ACCBFG.txt

    
                        损 益 表

程序名称 : 损益表(多对象别比较)
程序代号 : ACCBFG
始创建人 : 祝国华
始创时间 : 1999-07-21

基本描述 :
            损益表是反映企业在一定期间的经营成果及分配情况的报表。报表的内容
         包括了五大科目类。科目的关系:营业收入、营业成本、营业费用、非营业收
         益、非营业损失。将所有收入总和减去报有费用及成本的总和,就是企业在此
         段时间内获利(或亏损)的金额,称之为纯益(或纯损)。做一份损益表的结果是
         为了让人能够清楚了解到企业获利(或亏损)的过程,所以必须有正确的分类显
         示才可提供更详细的结果。企业应按月编报。
             损益表(多对象别比较)是在反映在一定期间内经营成果及其分配情况的
         报表的基础上,加上在同一部门下的不同种的对象别进行平行比较,反应不同
         对象别在某一期间的税前利润的报表。与多部门比较类似。

内容描述 :
    Now_Cur       : 币别种类
    Exc_Rto       : 外币汇率 默认值:=1
    My_Cur_Id     : 币别

    Update_Now    : 控制计算对象别的状态:第一次计算:False;其后:True
    GrphNo,
    GrphDep,
    AMTN_Grph     : 图形库字段变量
    SrcList       : 对象别原始记录串
    DstList       : 被选取的对象别的记录串

    ED_Dep_F3     : F3 条件内的部门统计选项返回的结果。 默认值:0000
    Combo_Dep_F3  : F3 条件内的部门列示选项返回的结果。 默认值:0 含所属
    Rep_Edit_Text : F3 条件内的报表公式选项返回的结果。 默认值:40
    My_User_Datas : SaveUserData 、LoadUserData 条件改变结果返回串

    Cur_Lang      : 中英文:0 means China 1: means English}
    Cur_ID_Clicked: 判断是否为英汉转换

    MakeTableHead;                打印表头
    CheckValue:Boolean;           检查是否符合制表条件
    WriteToGraph;                 写入图形库
    AppendToReport(No:integer);   增加Report库
    UpdateToReport(No:integer);   修改Report库
    SumToReport;                  计算Report库
    CreateReportTbl;              创建Report,EngTable,ChinaTable临时库
    ReloadReportLbl;              币别、语言改变时重新刷新、整理Report库的显示的表头
    WMCondense message WM_CONDENSE; 发送消息,让损益表按不同的层次显示
    Curid_HasChanged;             币别改变后,重新换算外币金额
    ReDisPlayLabel;               重组含外币时的表头
    Combo_DepChange(Sender: TObject); //改变部门列示方式
    EditObjToList;               抓取不同种类的对象别,并放入SrcList,DstList中
    FindResultName                由对象别代号取对象别名称
    ListToObjEdit                 由DstList重组存储的对象别代号
    CreateGraph;                  创建图形库
    RstName:                      Repgen ---报表公式产生器主程序取出的损益表明细库
    DtlName:                      Repgen ---损益表明细库的辅助资料库,此为中间过程,无实际意义

    定义临时的 EngTable库:
               TableName:FG_ENG****.Db
               Databasename: C:\Windows\Temp\
    GetTempTblName('FG_ENG', TempDatabaseName, TempTblName);
    TempTblName          :=Copy(TempTblName, 1, Pos('.', TempTblName)-1);
    EngTable.DataBaseName:=TempDatabaseName;
    EngTable.TableName   :=TempTblName;


    创建Report库注意事项:
        由于Report库为一个数据字段为动态变换的字段、并且含有双重表头。
    在创建的过程中应特别注意:
     清除上层表头:
       FunctionButtons1.Level_Name[I]:='';
       FunctionButtons1.Level_Fields[I].Clear;

     释放已经定义的字段:
       Report.Close;
       for J:=0 to FieldCount-1 do Report.Fields[0].Free;
       Report.FieldDefs.Clear;
    创建Report的字段:
       For I := 0 To Report.FieldDefs.Count - 1 Do
            Report.FieldDefs.Items[I].CreateField(Report);
    创建图形库:
       由不同的对象别类型来定义不同的图形结构:
           Case OBJ_Type.ItemIndex of
             0: GrphDep:=LoadFormStr(10200);  自设代号
           1,4: GrphDep:=LoadFormStr(10201);  客户/厂商
            2: GrphDep:=LoadFormStr(10202);  业务员
            3: GrphDep:=LoadFormStr(10203);  帐户代号
            5: GrphDep:=LoadFormStr(10204);  货品代号
            6: GrphDep:=LoadFormStr(10205);  工程案号
           end;
       Add(GrphDep, ftString, 30, False);
       GrphNo:='Null';
       Add(GrphNo, ftString, 10, False);
       KeyField := GrphDep+';'+ GrphNo;
       AMTN_Grph:=LoadFormStr(10103);金额
       Add(AMTN_Grph, ftFloat, 0, False);
   产生损益表:
       由报表公式产生器主程序以每一个对象别来计算损益
           RepBuild.RepGen( Rep_Edit_Text, R_TWtoChina(B_DD.Text), R_TWtoChina(E_DD.Text),
               ED_Dep_F3,Combo_Dep_F3,
               '1', 'F', ' ', Copy(DstList.Strings[I-1], 1, Pos('---', DstList.Strings[I-1])-1), RstName, DtlName, @FProgress, '');

   在关闭程序时,释放创建的临时库:
      if RstTable.TableName<>'' then RstTable.Close;
      if RstName<>'' then
      begin
         Try
            RstTable.TableName:=RstName;
            RstTable.Close;
            RstTable.DeleteTable;
         Except
         End;

注意事项 :
      类型是选择不同的对象别的种类;对象别是选择不同对象类型的不同的对象
   别。在选择对象别横向比较时,为了不影响速度,选择的对象别个数不要太多。

基本流程 :

                                      ===>CreateReportTbl                                    ===>MoveEngTable         ===>                                                    ===>英汉转换

FormCreate==> LoadUserData===> FormShow                ==>Function1Maketable===>RepGen计算损益表           ===>SumReport    ==>MoveToReport===>WM_CONDENSE求层次===>WriteGraph===>外币换算===>FormClose===>FormDestroy

                                      ===>CreateGreph
                                                                                             ===>MoveChinaTable       ===>

小 技 巧 :


修改时间 :
修改描述 :
修 改 人 :