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

📄 ss_flzjd.pas

📁 省级集邮品管理ERP
💻 PAS
字号:

{*******************************************************}
{                                                       }
{                     分类帐校对                        }
{                                                       }
{            中软金马公司版权所有。2002.12前            }
{                                                       }
{               编制:中软金马项目开发组                }
{                                                       }
{                                                       }
{*******************************************************}
(*
本模块在省级系统管理模块 集邮票、集邮品、零枚票、市场购入票四部分的分类帐校对模块中调用。
*)

unit SS_FLZJD;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, Grids, DBGrids, RXCtrls, ExtCtrls, SqlStrings, Db,
  DBTables, Menus, DBGridExport;

type
  TFrm_FLZJD = class(TForm)
    pnl_Body: TPanel;
    pnl_title: TPanel;
    pnl_Control: TPanel;
    pnl_Seperate: TPanel;
    pnl_HS: TPanel;
    DWMC: TLabel;
    lbl_Sys_Use: TLabel;
    lbl_Sys_useYear: TLabel;
    lbl_Sys_UseMonth: TLabel;
    lbl_Search: TLabel;
    bbtn_Quit: TBitBtn;
    bbtn_Find: TBitBtn;
    bbtn_Print: TBitBtn;
    rxlbl_Title: TRxLabel;
    Pnl_Condition: TPanel;
    edt_Sys_use_Year: TEdit;
    edt_Sys_use_Month: TEdit;
    rb_JJ_HS: TRadioButton;
    rb_XJ_HS: TRadioButton;
    dbg_FLZ: TDBGrid;
    SQLStr: TSqlStrings;
    qry_Tmp: TQuery;
    qry_FLZJD: TQuery;
    ds_FLZJD: TDataSource;
    Label1: TLabel;
    edt_Locate: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure rb_JJ_HSClick(Sender: TObject);
    procedure rb_XJ_HSClick(Sender: TObject);
    procedure bbtn_PrintClick(Sender: TObject);
    procedure bbtn_FindClick(Sender: TObject);
    procedure edt_LocateKeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
    function Show_Sys_Init_time: Boolean;                   {显示系统启用日期,如果没有启用,则给出提示}
    procedure Show_Field;                                   {按照需求显示字段}
    procedure Get_Data;                                     {显示数据}

  public
    { Public declarations }
  end;

function Show_FLZJD(ll_typ: TIO_TYPE): Boolean;

var
  Frm_FLZJD: TFrm_FLZJD;
  l_typ: TIO_TYPE;

implementation

{$R *.DFM}

{集邮票、零枚票、集邮品、市场购入票 四部分的分类帐校对,根据系统初始化日期,
 从相应明细分类帐余额表中读取数据,进行显示。

 涉及数据库表:

 集邮票明细分类帐余额表(TYS_JYPMXFLZYEB)
 零枚票明细分类帐余额表(TYS_TXPMXFLZYEB)
 集邮品明细分类帐余额表(TYS_YPMXFLZYEB)
 购入票明细分类帐余额表(TYS_GRPMXFLZYEB)

 系统基本信息表(邮资票品信息表)(TB_YZPPXXB)

 杂表(TGS_ZB)

 调用了SS_JYP_Init_Search, SS_TXP_Init_Search, SS_YP_Init_Search, SS_GRP_Init_Search
四个查询模块,分别对四种票品进行查询。
 
 石玉琢 2001.09.26}

uses
   datas,Pub,SS_JYP_Init_Search, SS_TXP_Init_Search, SS_YP_Init_Search, SS_GRP_Init_Search;

const
  {从杂表中获得数据}
  pZB_Data: array[0..3, 0..1] of string = (('jyp_csh_n', 'jyp_csh_y'),
    ('txp_csh_n', 'txp_csh_y'), ('yp_csh_n', 'yp_csh_y'), ('grp_csh_n', 'grp_csh_y'));

  {显示的字段名称}
  pShow_Field_Name: array[0..3, 0..2, 0..1] of string =
    (
    (('JJZJJE', 'XJZJJE'), ('JJJSJE', 'XJJSJE'), ('JJYE', 'XJYE')),
//    (('ZJJE', 'ZJJE'), ('JSJE', 'JSJE'), ('JCJE', 'JCJE')),
    (('JJZJJE', 'XJZJJE'), ('JJJSJE', 'XJJSJE'), ('JJYE', 'XJYE')),
    (('JJZJJE', 'XJZJJE'), ('JJJSJE', 'XJJSJE'), ('JJYE', 'XJYE')),
    (('JJZJJE', 'XJZJJE'), ('JJJSJE', 'XJJSJE'), ('JJYE', 'XJYE'))
    );


{-------------------------------------------------------------------------------}
{显示总帐校对}
function Show_FLZJD(ll_typ: TIO_TYPE): Boolean;
begin
  l_typ := ll_typ;

  with TFrm_FLZJD.Create(Application) do
  try
    ShowModal;
  finally
    Free;
  end;
end;

{-------------------------------------------------------------------------------}
{创建窗体,显示默认数据}
procedure TFrm_FLZJD.FormCreate(Sender: TObject);
begin
  {初始化所有查询参数}
  Init_Search_CSH;

  DWMC.Caption := '使用单位:' + VG_UNITNAME;

  {对于零枚票,不存在按进价核算和按销价核算两个部分,同时不关心进价,所以显示的时候直接隐藏掉}
{  if l_typ = io_txp then
  begin
    pnl_HS.Visible := False;
    dbg_FLZ.Columns[2].Visible := False;
  end;}

  Show_Sys_Init_time;                                       {显示系统初始化时间,如果没有初始化,则给出提示}
  Show_Field;

  {默认显示所有数据}
  case l_typ of
    io_jyp:
      part_SQL := ' and b.TYPE=''jttp''';
    io_grp:
      part_SQL := '';
    io_yp:
      part_SQL := ' and b.TYPE=''yp''';
    io_txp:
      part_SQL := ' and ( b.TYPE=''jtlm'' or b.TYPE=''ptyp'' or b.TYPE=''fpj'') ';
  end;

  lbl_Search.Caption := '显示条件——所有数据';
  Get_Data;                                                 {调用查询模块进行查询}
end;

{-------------------------------------------------------------------------------}
{显示系统启用日期,如果没有启用,则给出提示}
function TFrm_FLZJD.Show_Sys_Init_time: Boolean;
begin
  {显示标题}
  Caption := pCaption[integer(l_typ)] + '分类帐校对';
  rxlbl_Title.Caption := Caption;
  {显示}
  with qry_Tmp do
  begin
    Close;
    SQL.Text := 'Select ZFXZ From TGS_ZB where DM=''' + pZB_Data[integer(l_typ)][0] + '''';
    Open;
    edt_Sys_use_Year.Text := FieldByName('ZFXZ').AsString;

    Close;
    SQL.Text := 'Select ZFXZ From TGS_ZB where DM=''' + pZB_Data[integer(l_typ)][1] + '''';
    Open;
    edt_Sys_use_Month.Text := FieldByName('ZFXZ').AsString;
  end;

  if (edt_Sys_use_Year.Text = '') or (edt_Sys_use_Month.Text = '') then
  begin
    CHQMsgBox('系统初始化时间没有设定!请先进行系统初始化!');
    Result := False;
    Exit;
  end;
  Result := True;
end;

{-------------------------------------------------------------------------------}
{按照需求显示字段}
procedure TFrm_FLZJD.Show_Field;
begin
  if rb_JJ_HS.Checked = True then
  begin
    {按进价核算}
    dbg_FLZ.Columns[4].FieldName := pShow_Field_Name[Integer(l_typ)][0][0];
    dbg_FLZ.Columns[6].FieldName := pShow_Field_Name[Integer(l_typ)][1][0];
    dbg_FLZ.Columns[8].FieldName := pShow_Field_Name[Integer(l_typ)][2][0];
  end
  else
  begin
    {按销价核算}
    dbg_FLZ.Columns[4].FieldName := pShow_Field_Name[Integer(l_typ)][0][1];
    dbg_FLZ.Columns[6].FieldName := pShow_Field_Name[Integer(l_typ)][1][1];
    dbg_FLZ.Columns[8].FieldName := pShow_Field_Name[Integer(l_typ)][2][1];
  end;
end;

{-------------------------------------------------------------------------------}
{显示数据}
procedure TFrm_FLZJD.Get_Data;
var
  SQLString: string;
begin
  case l_typ of
    io_jyp:
      SQLString := SQLStr.jyp_Sql.Text;
    io_grp:
      SQLString := SQLStr.grp_Sql.Text;
    io_yp:
      SQLString := SQLStr.yp_Sql.Text;
    io_txp:
      SQLString := SQLStr.txp_Sql.Text;
  end;

  SQLString := SQLString + ' and a.ND=''' + edt_Sys_use_Year.Text + ''' and a.YF=''' + edt_Sys_use_Month.Text + '''' +
    part_SQL + ' order by b.TDM';

  {显示数据}
  with qry_FLZJD do
  begin
    Close;
    SQL.Text := SQLString;
    Open;
  end;

{  if l_typ <> io_txp then
    TNumericField(dbg_FLZ.Columns[2].Field).DisplayFormat := '#,##0.00';}

  TNumericField(dbg_FLZ.Columns[4].Field).DisplayFormat := '#,##0.00';
  TNumericField(dbg_FLZ.Columns[6].Field).DisplayFormat := '#,##0.00';
  TNumericField(dbg_FLZ.Columns[8].Field).DisplayFormat := '#,##0.00';

  TNumericField(dbg_FLZ.Columns[3].Field).DisplayFormat := '#,##';
  TNumericField(dbg_FLZ.Columns[5].Field).DisplayFormat := '#,##';
  TNumericField(dbg_FLZ.Columns[7].Field).DisplayFormat := '#,##';
end;

{-------------------------------------------------------------------------------}
{刷新选项}{下面都是在根据进价和销价显示时需要进行刷新的}
procedure TFrm_FLZJD.rb_JJ_HSClick(Sender: TObject);
begin
  Show_Field;

  TNumericField(dbg_FLZ.Columns[4].Field).DisplayFormat := '#,##0.00';
  TNumericField(dbg_FLZ.Columns[6].Field).DisplayFormat := '#,##0.00';
  TNumericField(dbg_FLZ.Columns[8].Field).DisplayFormat := '#,##0.00';
end;

procedure TFrm_FLZJD.rb_XJ_HSClick(Sender: TObject);
begin
  Show_Field;

  TNumericField(dbg_FLZ.Columns[4].Field).DisplayFormat := '#,##0.00';
  TNumericField(dbg_FLZ.Columns[6].Field).DisplayFormat := '#,##0.00';
  TNumericField(dbg_FLZ.Columns[8].Field).DisplayFormat := '#,##0.00';
end;

{-------------------------------------------------------------------------------}
{根据不同条件,调用不同的查询窗体,查询不同的内容}
procedure TFrm_FLZJD.bbtn_FindClick(Sender: TObject);
var
  Form: TFormClass;
begin
  {不同的票品,调用不同的查询模块进行查询}
  case l_typ of
    io_jyp:
      Form := TFrm_JYP_Init_Search;
    io_grp:
      Form := TFrm_GRP_Init_Search;
    io_yp:
      Form := TFrm_YP_Init_Search;
    io_txp:
      Form := TFrm_TXP_Init_Search;
  end;

  with Form.Create(Application) do
  try
    ShowModal;
    if ModalResult = mrOk then
    begin
      lbl_Search.Caption := Search_Caption;
      Get_Data; {确认执行,需要进行查询了}                  {}
    end;
  finally
    Free;
  end;

end;


{-------------------------------------------------------------------------------}
{进行打印操作}
procedure TFrm_FLZJD.bbtn_PrintClick(Sender: TObject);
begin
  PrintDBGrid(dbg_FLZ, RxLbl_Title.Caption);
end;

{按照志号定位}
procedure TFrm_FLZJD.edt_LocateKeyPress(Sender: TObject; var Key: Char);
begin
  if qry_FLZJD.Active = True then
  begin
    if Key in ['a'..'z'] then Key := Chr(Ord(key) + Ord('A') - Ord('a'));
    qry_FLZJD.Locate('ZH', edt_Locate.Text + Key, [loCaseInsensitive, loPartialKey]);
  end
  else
    Key := Chr(0);
end;

end.

⌨️ 快捷键说明

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