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

📄 ss_zzjd.pas

📁 省级集邮品管理ERP
💻 PAS
字号:
{*******************************************************}
{                                                       }
{                 集邮票总帐校对                        }
{                                                       }
{            中软金马公司版权所有。2002.12前            }
{                                                       }
{            编制:中软金马邮资票品项目开发组           }
{                                                       }
{                                                       }
{*******************************************************}
(*
本模块在省级系统管理模块里的集邮票,集邮品,零枚,购入票里面调用。

*)
unit SS_ZZJD;

interface

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

type
  TFrm_ZZJD = class(TForm)
    pnl_Top: TPanel;
    rxlbl_Title: TRxLabel;
    DWMC: TLabel;
    pnl_Option: TPanel;
    lbl_Sys_Use: TLabel;
    edt_Sys_use_Year: TEdit;
    edt_Sys_use_Month: TEdit;
    lbl_Sys_useYear: TLabel;
    lbl_Sys_UseMonth: TLabel;
    pnl_HS: TPanel;
    rb_JJ_HS: TRadioButton;
    rb_XJ_HS: TRadioButton;
    pnl_Body: TPanel;
    dbg_ZZJD: TDBGrid;
    pnl_Bottom: TPanel;
    bbtn_Print: TBitBtn;
    bbtn_Exit: TBitBtn;
    SQLStr: TSqlStrings;
    qry_Tmp: TQuery;
    qry_ZZJD: TQuery;
    ds_ZZJD: TDataSource;
    procedure FormCreate(Sender: TObject);
    procedure rb_JJ_HSClick(Sender: TObject);
    procedure rb_XJ_HSClick(Sender: TObject);
    procedure bbtn_PrintClick(Sender: TObject);
  private
    { Private declarations }
    function Show_Sys_Init_time: Boolean;                   {显示系统启用日期,如果没有启用,则给出提示}
    procedure Get_Data;                                     {显示数据}
    procedure Show_Field;                                   {按照需求显示字段}

  public
    { Public declarations }
  end;

function Show_ZZJD(ll_typ: TIO_TYPE): Boolean;

var
  Frm_ZZJD: TFrm_ZZJD;
  l_typ: TIO_TYPE;

implementation

{$R *.DFM}

{总帐校对模块,整个重新编写,共有四个菜单调用此模块。
代码比较晦涩难懂,对于金额的显示,直接在SQL语句中除以100,动态给DBGrid字段赋值,一边显示不同情况。

 涉及数据库表:

   集邮票总帐余额表(TYS_JYPZZYEB)
   零枚票总帐余额表(TYS_TXPZZYEB)
   集邮品总帐余额表(TYS_YPZZYEB)
   购入票总帐余额表(TYS_GRPZZYEB)

   杂表(TGS_ZB)
   
   石玉琢 2001.09.24}

uses Pub;

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'), ('YE', 'YE')),
    (('JJZJJE', 'XJZJJE'), ('JJJSJE', 'XJJSJE'), ('JJYE', 'XJYE')),
    (('JJZJJE', 'XJZJJE'), ('JJJSJE', 'XJJSJE'), ('JJYE', 'XJYE')),
    (('JJZJJE', 'XJZJJE'), ('JJJSJE', 'XJJSJE'), ('JJYE', 'XJYE'))
    );

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

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

{-------------------------------------------------------------------------------}
procedure TFrm_ZZJD.FormCreate(Sender: TObject);
begin
  DWMC.Caption := '使用单位:'+VG_UNITNAME;

{  if l_typ = io_txp then
    pnl_HS.Visible := False; }

  Show_Sys_Init_time;
  Show_Field;
  Get_Data;

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

{-------------------------------------------------------------------------------}
{显示系统启用日期,如果没有启用,则给出提示}
function TFrm_ZZJD.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_ZZJD.Get_Data;
begin
  {显示数据}
  with qry_ZZJD do
  begin
    Close;
    case l_typ of
      io_jyp:
        SQL := SQLStr.jyp_Sql;
      io_grp:
        SQL := SQLStr.grp_Sql;
      io_yp:
        SQL := SQLStr.yp_Sql;
      io_txp:
        SQL := SQLStr.txp_Sql;
    end;
    ParamByName('l_ZY').AsString := pCaption[integer(l_typ)] + '初始化';
    ParamByName('l_ND').AsString := edt_Sys_use_Year.Text;
    ParamByName('l_YF').AsString := edt_Sys_use_Month.Text;
    Open;
  end;
end;

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

end;
{-------------------------------------------------------------------------------}
{刷新选项}
procedure TFrm_ZZJD.rb_JJ_HSClick(Sender: TObject);
begin
  Show_Field;

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

end;

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

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

end;

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

end.

⌨️ 快捷键说明

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