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

📄 frm_mainfeegrid.pas

📁 这是一个基于delphi平台的物流空运管理系统!
💻 PAS
字号:
unit Frm_MainFeeGrid;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Frm_Cargo, XPMenu, Menus, ImgList, StdCtrls, Buttons, ComCtrls,
  ExtCtrls, EnterAsTab, DB, ADODB;

type
  TFrmMainFeeGrid = class(TFrmCargo)
    Splitter1: TSplitter;
    Panel1: TPanel;
    Panel3: TPanel;
    LV: TListView;
    Panel6: TPanel;
    LBLMAIN: TLabel;
    BtnHide: TBitBtn;
    Panel2: TPanel;
    Panel4: TPanel;
    Panel7: TPanel;
    BitBtn4: TBitBtn;
    BtnNew: TBitBtn;
    BtnEdit: TBitBtn;
    BtnDelete: TBitBtn;
    LV2: TListView;
    Panel5: TPanel;
    SpeedButton1: TSpeedButton;
    LblFareNo: TLabel;
    ImageList1: TImageList;
    SaveD: TSaveDialog;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    qryfare: TADOQuery;
    Qrytemp: TADOQuery;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormActivate(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure BtnHideClick(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure BtnNewClick(Sender: TObject);
    procedure BtnEditClick(Sender: TObject);
    procedure BtnDeleteClick(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure LV2DblClick(Sender: TObject);
  private
    { Private declarations }
  public
   VarCode:String;
     IsFirstOpen:Boolean;
     FareNoGroup:String;
     FareAcount:String;
    { Public declarations }
  end;

var
  FrmMainFeeGrid: TFrmMainFeeGrid;

implementation

uses Frm_MainFareSeek, Frm_Main, frm_mainfareft, Frm_MainFee;

{$R *.dfm}

procedure TFrmMainFeeGrid.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
 
 FrmmainFeeGrid:=nil;
end;

procedure TFrmMainFeeGrid.FormActivate(Sender: TObject);
begin
  inherited;
  if isfirstopen then
    begin
       try
         {主单自动编号为  K  分单自动编号为  H}
       {自动编号,FileNo,主单号,航空公司,进出,委托日期,完成标记}
          qryfare.Close;
          qryfare.SQL.text:='select a.FileCode,a.fileno,a.maincode,b.shipcomcname,'+
          'a.inout,a.Dexecdate,a.keydown from '+
          'FileTable a,shipcompany b '+
          ' where b.shipcomcode=*a.Carrier and a.ifdiscard=0 '+
          ' and a.Dexecdate>='''+DatetoStr(Date)+''' and substring(a.filecode,1,1)=''K''';
          qryfare.open;
          FrmMain.AddData(lv,qryfare);
          IsFirstOpen:=false;
          LBLMAIN.Caption:='主单的数量为 '+inttostr(lv.items.count);
       except
           ShowMessage('打开数据集错误,请重新打开');
       end;
    end;

 qryfare.close;

end;

procedure TFrmMainFeeGrid.FormCreate(Sender: TObject);
begin
  inherited;
FrmMain.AddColumn(LV,'',1);
  FrmMain.AddColumn(LV,'工作单号',120);
  FrmMain.AddColumn(LV,'主运单号',120);
  FrmMain.AddColumn(LV,'航空公司',200);
  FrmMain.AddColumn(LV,'进出',60);
  FrmMain.AddColumn(LV,'委托日期',100);
  FrmMain.AddColumn(LV,'确认标记',80);
{自动编号,FileNo,主单号,航空公司,进出,委托日期,完成标记}

  FrmMain.AddColumn(LV2,'编号',1);
  FrmMain.AddColumn(LV2,'费用对象',150);
  FrmMain.AddColumn(LV2,'应收',80);
  FrmMain.AddColumn(LV2,'应付',80);
  FrmMain.AddColumn(LV2,'费用类型',80);
  FrmMain.AddColumn(LV2,'费用名称',80);
  FrmMain.AddColumn(LV2,'币种',50);
  ISFIRSTOPEN:=TRUE;
{编号   费用对象 应收  应付  费用类型名称}
{ 费用名称  币种  }
end;

procedure TFrmMainFeeGrid.N1Click(Sender: TObject);
var
  sqlstr:string;
begin
  inherited;
  if lv2.SelCount =1 then
  else
    begin
      ShowMessage('请选择一条费用记录进行删除分摊记录操作');
      exit;
    end;

  If lv.Selected.SubItems.Strings[5]='1' then
    begin

        exit;
    end;

  if MessageDlg(pchar('是否将该费用记录已经分摊的记录删除,请再次确定'),mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   begin
       sqlstr:='delete from fareinfo where relacode like ''%'+lv2.Selected.Caption+'%''';
       if FrmMain.ExecSQL(sqlstr) then
           lblfareno.Visible:=false
       else
            ShowMessage('删除记录失败!');
   end;
end;

procedure TFrmMainFeeGrid.BtnHideClick(Sender: TObject);
begin
  inherited;

  FrmMainFareSeek:=TFrmMainFareSeek.Create(self);
  FrmMainFareSeek.showmodal;
end;

procedure TFrmMainFeeGrid.SpeedButton1Click(Sender: TObject);
var
   i:integer;
   FilterStr:String;
begin
  inherited;

  If lv.Selected.SubItems.Strings[5]='1' then
    begin
        exit;
    end;

  if lv2.SelCount =0 then
    begin
        ShowMessage('请选择相应的费用进行分摊');
        exit;
    end;


  Farenogroup:='';
  fareacount:='';
{编号   费用对象 应收  应付  费用类型名称}
{ 费用名称  币种  单据号码}
 lblfareno.Visible :=false;  {先把已分摊标记置为FALSE}
  for i:=0 to lv2.Items.Count-1 do
    begin
      if lv2.Items.Item[i].Selected then
        begin
           QryTemp.Close;
           QryTemp.SQL.Text:='Select * From FareInfo where  relacode like ''%'+lv2.Items.Item[i].Caption +'%''';
           QryTemp.Open;
           if FrmMain.RecordCount(QryTemp)>=1 then
              lblfareno.Visible:=true;

           if Farenogroup='' then
              Farenogroup:=Farenogroup+''''+lv2.Items.Item[i].caption+''''
           else
              Farenogroup:=Farenogroup+','''+lv2.Items.Item[i].caption+'''';

           if trim(lv2.Items.Item[i].SubItems.Strings[1])='' then
             begin
               fareacount:=fareacount+'---'+'应收'+lv2.Items.Item[i].SubItems.Strings[1];
             end
           else
             begin
               fareacount:=fareacount+'---'+'应收'+lv2.Items.Item[i].SubItems.Strings[2];
             end;
        end;
    end;

  if  lblfareno.Visible then
    if MessageDlg(pchar('所选中的费用中存在已经分摊的费用,是否继续,请确定?'),mtConfirmation, [mbYes, mbNo], 0) = mrNo then
       exit;
       
  frmmainfareft:=tfrmmainfareft.create(self);
  frmmainfareft.viewrecord:='费用额分别为:'+fareacount;
  frmmainfareft.showmodal;
end;

procedure TFrmMainFeeGrid.BtnNewClick(Sender: TObject);
begin
  inherited;

  if (lv.SelCount =0)  then
    begin
       ShowMessage('请先选中相应的主单号');
       exit;
    end;

  If lv.Selected.SubItems.Strings[5]='1' then
    begin
        ShowMessage('该主单纪录的完成标记已设为True,不能够再进行修改!'+chr(13)+'如果修改,请先清除完成标记,并重新进行统计!');
        exit;
    end;

  FrmMainFee:=tFrmmainFee.Create(self);
  FrmMainFee.IsEdit:=false;
  FrmMainFee.Alone :=false;
  FrmMainFee.Showmodal;
end;

procedure TFrmMainFeeGrid.BtnEditClick(Sender: TObject);
begin
  inherited;

  if (lv2.SelCount =0) or (lv2.SelCount>1) then
     begin
        ShowMessage('请选中一条记录进行编辑');
         exit;
     end;

  If lv.Selected.SubItems.Strings[5]='1' then
    begin
        ShowMEssage('该主单纪录的完成标记已设为True,不能够再进行修改!'+chr(13)+'如果修改,请先清除完成标记,并重新进行统计!');
        exit;
    end;

  VarCode:=lv2.Selected.Caption;
  Frmmainfee:=TFrmmainfee.Create(self);
  frmmainfee.IsEdit:=true;
  Frmmainfee.Showmodal;
end;

procedure TFrmMainFeeGrid.BtnDeleteClick(Sender: TObject);
var
  SearchCode:String;
  SqlStr:String;
begin
  inherited;

  if lv2.Items.Count =0 then
    begin
       ShowMessage('记录集为空,不能够删除');
       exit;
    end;

  IF (LV2.SelCount =0) or (lv2.SelCount>1) then
    begin
       ShowMessage('请选中一条要删除的记录');
       exit;
    end;

  If lv.Selected.SubItems.Strings[5]='1' then
    begin
        ShowMessage('相应的主单纪录的确认完成标记已设为True,不能够再进行修改!'+chr(13)+'如果修改,请先清除完成标记,并重新进行统计!');
        exit;
    end;

   qryfare.close;
   qryfare.sql.text:='select * from fareinfo where relacode like ''%'+lv2.Selected.Caption+'%''';
   qryfare.open;
   if qryfare.RecordCount >=1 then
      begin
           if MessageDlg(pchar('该费用记录已经分摊'+'删除该记录,将删除分摊到分单中的费用记录,请确定'),mtConfirmation, [mbYes, mbNo], 0) = mrYes then
           begin
             SearchCode:=lv2.Selected.Caption;
             if FrmMain.ExecSQL('delete  from fareinfo where fareno='''+searchcode+'''') then
               else
                 begin
                   ShowMessage('操作失误,记录未删除,请检查');
                   exit;
                 end;
             if FrmMain.ExecSQL('delete  from fareinfo where relacode like ''%'+searchcode+'%''') then
               else
                 begin
                   ShowMessage('操作失误,记录未删除,请检查');
                   exit;
                 end;
              lv2.Selected.Delete ;                 
           end;
      end
   else
     begin
        if MessageDlg('是否删除所选中的记录,请确定',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
        begin
           SearchCode:=lv2.Selected.Caption;
           if FrmMain.ExecSQL('delete  from fareinfo where fareno='''+searchcode+'''') then
           else
             begin
                ShowMessage('操作失误,记录未删除,请检查');
                exit;
             end;
            lv2.Selected.Delete ;
        end;
     end;
end;

procedure TFrmMainFeeGrid.BitBtn4Click(Sender: TObject);
begin
  inherited;
  Close;
end;

procedure TFrmMainFeeGrid.LV2DblClick(Sender: TObject);
begin
  inherited;
  
  if (lv2.SelCount =0) or (lv2.SelCount>1) then
     begin
        ShowMessage('请选中一条记录进行编辑');
         exit;
     end;

  If lv.Selected.SubItems.Strings[5]='1' then
    begin
        ShowMessage('该主单纪录的完成标记已设为True,不能够再进行修改!'+chr(13)+'如果修改,请先清除完成标记,并重新进行统计!');
        exit;
    end;

  VarCode:=lv2.Selected.Caption;
  Frmmainfee:=TFrmmainfee.Create(self);
  frmmainfee.IsEdit:=true;
  Frmmainfee.Showmodal;
end;

end.

⌨️ 快捷键说明

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