uni_tiein_item.pas

来自「一个非常不错的经费报销管理软件」· PAS 代码 · 共 192 行

PAS
192
字号
unit Uni_Tiein_Item;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, XPMenu, Grids, DBGridEh, Gauges, ComCtrls, ToolWin,
  StdCtrls, Buttons, ExtCtrls;

type
  TFrm_Tiein_Item = class(TForm)
    Panel1: TPanel;
    SPB_Net: TSpeedButton;
    Label1: TLabel;
    CBX_ZT: TComboBox;
    P_Tiein_Branchs: TPanel;
    Panel2: TPanel;
    ToolBar1: TToolBar;
    TB_out: TToolButton;
    TB_in: TToolButton;
    Gauge: TGauge;
    DBG_bsTiein_Item: TDBGridEh;
    XPMenu1: TXPMenu;
    dsbsTiein_Branchs: TDataSource;
    StatusBar1: TStatusBar;
    procedure CBX_ZTEnter(Sender: TObject);
    procedure SPB_NetClick(Sender: TObject);
    procedure TB_outClick(Sender: TObject);
    procedure TB_inClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frm_Tiein_Item: TFrm_Tiein_Item;

implementation

{$R *.dfm}

uses Uni_dm,Uni_Function,Uni_Main;

procedure TFrm_Tiein_Item.CBX_ZTEnter(Sender: TObject);
begin
  CBX_ZT.Items.Clear;
  with DM do
  begin
    bsTieinSetup.Close;
    bsTieinSetup.Open;
    while not bsTieinSetup.Eof do
    begin
      CBX_ZT.Items.Add(bsTieinSetup.FieldByName('Ztmc').AsString);
      bsTieinSetup.Next;
    end;
  end;
  CBX_ZT.ItemIndex:=0;
end;

procedure TFrm_Tiein_Item.SPB_NetClick(Sender: TObject);
begin
  if DM.bsTieinSetup.Locate('Ztmc',CBX_ZT.Text,[]) then
  begin
    if TieDataOpen then
    begin
      P_Tiein_Branchs.Visible:=True;
    end
    else
    begin
      P_Tiein_Branchs.Visible:=False;
    end;
  end;
end;

procedure TFrm_Tiein_Item.TB_outClick(Sender: TObject);
VAR
  i,L:Integer;
begin
  try
    DM.R9GL_Kmxx.Close;
    DM.R9GL_Kmxx.SQL.Text:='select *from GL_Kmxx';
    DM.R9GL_Kmxx.Open;
    if DM.R9GL_Kmxx.IsEmpty then
    begin
      MessageBoxInfo('无下载数据!!');
      Exit;
    end;
    //
    Gauge.Progress:=0;
    Gauge.MaxValue:=DM.R9GL_Kmxx.RecordCount*2;
    Gauge.Visible:=True;
    DBG_bsTiein_Item.DataSource:=nil;
    DM.bsTiein_Item.Close;
    DM.bsTiein_Item.SQL.Text:='delete From bsTiein_Item';
    DM.bsTiein_Item.ExecSQL;
    //
    DM.bsTiein_Item.Close;
    DM.bsTiein_Item.SQL.Text:='select *From bsTiein_Item';
    DM.bsTiein_Item.Open;
    while not DM.R9GL_Kmxx.Eof do
    begin
      DM.bsTiein_Item.append;
      DM.bsTiein_Item.FieldByName('kmdm').AsString:=DM.R9GL_Kmxx.FieldByName('kmdm').AsString;
      DM.bsTiein_Item.FieldByName('kmmc').AsString:=DM.R9GL_Kmxx.FieldByName('kmmc').AsString;
      DM.bsTiein_Item.FieldByName('zjm').AsString:=DM.R9GL_Kmxx.FieldByName('zjm').AsString;
      DM.bsTiein_Item.Post;
      Gauge.Progress:=Gauge.Progress+1;
      DM.R9GL_Kmxx.Next;
    end;
    //
    DM.bsTiein_Item.Close;
    DM.bsTiein_Item.SQL.Text:='select *From  bsTiein_Item order by len(kmdm)';
    DM.bsTiein_Item.Open;
    i:=1;
    L:=0;
    while not DM.bsTiein_Item.Eof do
    begin
      IF Length(Trim(DM.bsTiein_Item.FieldByName('kmdm').AsString))<>L THEN
      begin
        i:=i+1;
        L:=Length(Trim(DM.bsTiein_Item.FieldByName('kmdm').AsString));
      end;
      //
      DM.bsTiein_Item.Edit;
      DM.bsTiein_Item.FieldByName('iGrade').AsInteger:=i;
      DM.bsTiein_Item.Post;
      //
      Gauge.Progress:=Gauge.Progress+1;
      DM.bsTiein_Item.Next;
    end;
    DM.bsTiein_Item.Close;
    DM.bsTiein_Item.SQL.Text:='select *From  bsTiein_Item order by kmdm';
    DM.bsTiein_Item.Open;
    DBG_bsTiein_Item.DataSource:=dsbsTiein_Branchs;
    MessageBoxInfo('数据下载完毕!共'+IntToStr(DM.R9GL_Kmxx.RecordCount)+'条记录。');
  except
    MessageBoxError('数据下载失败!');
  end;
end;

procedure TFrm_Tiein_Item.TB_inClick(Sender: TObject);
begin
  try
    DM.bsTiein_Item.Close;
    DM.bsTiein_Item.SQL.Text:='select *From  bsTiein_Item order by kmdm';
    DM.bsTiein_Item.Open;

    Gauge.Progress:=0;
    Gauge.MaxValue:=DM.bsTiein_Item.RecordCount;
    Gauge.Visible:=True;
    DBG_bsTiein_Item.Enabled:=False;

    DM.bsItem.Close;
    DM.bsItem.SQL.Text:='select *from bsItem where istate>0 order by cNum';
    DM.bsItem.Open;

    while not DM.bsTiein_Item.Eof do
    begin
      if DM.bsItem.Locate('cNum',Trim(DM.bsTiein_Item.FieldByName('kmdm').AsString),[]) then
      begin
        //覆盖
        DM.bsItem.Edit;
        DM.bsItem.FieldByName('cNum').AsString:=Trim(DM.bsTiein_Item.FieldByName('kmdm').AsString);
        DM.bsItem.FieldByName('cName').AsString:=Trim(DM.bsTiein_Item.FieldByName('kmmc').AsString);
        DM.bsItem.FieldByName('iGrade').AsInteger:=DM.bsTiein_Item.FieldByName('iGrade').AsInteger;
        DM.bsItem.FieldByName('iState').AsInteger:=1;
        DM.bsItem.Post;
      end
      else
      begin
        //插入
        DM.bsItem.Insert;
        DM.bsItem.FieldByName('id').AsString:=GetGUID;
        DM.bsItem.FieldByName('cNum').AsString:=Trim(DM.bsTiein_Item.FieldByName('kmdm').AsString);
        DM.bsItem.FieldByName('cName').AsString:=Trim(DM.bsTiein_Item.FieldByName('kmmc').AsString);
        DM.bsItem.FieldByName('iGrade').AsInteger:=DM.bsTiein_Item.FieldByName('iGrade').AsInteger;
        DM.bsItem.FieldByName('iState').AsInteger:=1;
        DM.bsItem.Post;
      end;
      Gauge.Progress:=Gauge.Progress+1;
      DM.bsTiein_Item.Next;
    end;
    DBG_bsTiein_Item.Enabled:=True;
    MessageBoxInfo('数据导入完毕!共'+IntToStr(DM.bsTiein_Item.RecordCount)+'条记录。');
  except
    MessageBoxError('数据导入失败!!');
  end;
end;

end.

⌨️ 快捷键说明

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