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

📄 frm_mainfareft.pas

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

interface

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

type
  Tfrmmainfareft = class(TFrmCargo)
    Panel2: TPanel;
    Panel1: TPanel;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    LVFT: TListView;
    QryTemp: TADOQuery;
    QryTemp2: TADOQuery;
    QryFareNO: TADOQuery;
    procedure FormActivate(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure LVFTColumnClick(Sender: TObject; Column: TListColumn);
    procedure BitBtn4Click(Sender: TObject);
  private
    { Private declarations }
  public
  ViewRecord:String;
     FeeAcount:Real;
     FareCode:String;
     FareType:String;
     Currency:String;
    { Public declarations }
  end;

var
  frmmainfareft: Tfrmmainfareft;

implementation

uses Frm_Main, Frm_MainFeeGrid;

{$R *.dfm}

procedure Tfrmmainfareft.FormActivate(Sender: TObject);
var
   sqlstr:string;
   CodeGet:String;
   VarTrust:String;
begin
  inherited;
  Panel2.Caption:=Panel2.caption+ViewRecord;
  FrmMain.ExecSQL('delete from temptable');
  qrytemp.close;
  qrytemp.SQL.text:='select * from FileTable where maincode='''+
  frmmainfeegrid.lv.selected.caption+''' and ifdiscard=0 ';
  qrytemp.open;

  while not qrytemp.eof do
      begin
          vartrust:=qrytemp.fieldbyname('FileCode').asstring;
          with qrytemp2 do
             begin
                 close;
                 sql.Text:='select sum(pieces) as pieces,sum(Weight) '+
                 ' as weight,sum(Size) as size,sum(ChargWeight) as charge'+
                 ' from PlaneGoods '+
                 'where FileCode='''+
                  vartrust+'''';
                  open;
             end;
             sqlstr:='';
             FrmMain.UpStr(sqlstr,'FileTable');
             FrmMain.UpStr(sqlstr,'goodsnumber',floattostr(qryTemp2.fieldbyname('pieces').asfloat),',');
             FrmMain.UpStr(sqlstr,'goodssize',floattostr(qryTemp2.fieldbyname('size').asfloat),',');
             FrmMain.UpStr(sqlstr,'goodsweight',floattostr(qryTemp2.fieldbyname('Weight').asfloat),',');
             FrmMain.UpStr(sqlstr,'goodsChargeweight',floattostr(qryTemp2.fieldbyname('charge').asfloat),'');
             FrmMain.UpStr(sqlstr,'FileCode=',vartrust,'w');
             if FrmMain.ExecSQL(sqlstr) then
             else
                begin
                   ShowMessage('数据初始统计失败');
                   exit;
                end;
                qrytemp.Next;
             end;

  with qrytemp do
    begin
 {计费重量  代码  FileNo  分单号 费用对象代码  费用对象  委托日期}
       close;
       sql.text:='select a.goodsChargeweight,a.FileCode,a.fileno,a.hawb,'+
         'a.cuscode,a.cuscodename,a.Dexecdate from FileTable A '+
         ' where a.MainCode='''+
         frmmainfeegrid.lv.selected.caption+''' and a.ifdiscard=0 ';
       open;
    end;
   FrmMain.AddData(lvft,qrytemp);
   qrytemp.close;
end;

procedure Tfrmmainfareft.FormCreate(Sender: TObject);
begin
  inherited;
LVFT.Items.Clear ;
  LVFT.Columns.Clear;
  FrmMain.addcolumn(LVFT,'计费重量',80);
  FrmMain.addcolumn(LVFT,'代码',1);
  FrmMain.addcolumn(LVFT,'FileNo',100);
  FrmMain.addcolumn(LVFT,'分单号',100);
  FrmMain.addcolumn(LVFT,'费用对象',1);
  FrmMain.addcolumn(LVFT,'费用对象',200);
  FrmMain.addcolumn(LVFT,'委托日期',100);
{计费重量  代码  FileNo  分单号 费用对象代码  费用对象  委托日期}
end;

procedure Tfrmmainfareft.BitBtn3Click(Sender: TObject);
var
  i:integer;
  CodeGet:string;
  Sqlstr:string;
  Checkedcount:integer;
  FtAcount:Real;
  AllCharge:Real;
  Recedeal:Integer;
begin
  inherited;
//选择了按比率分摊
try
  qryfareno.close;
  qryfareno.SQL.text:='select * from fareinfo where fareno in ('+frmmainfeegrid.farenogroup+')';
  qryfareno.open;

  FtAcount:=0;
  allcharge:=0;
  for i:=0 to lvft.items.count-1 do
    if lvft.Items.Item[i].Checked then
        allcharge:=allcharge+strtofloat(lvft.items.item[i].caption);

   if allcharge=0 then
     begin
         ShowMessage('计费重量不能够为零');
         exit;
     end;

   while not qryfareno.eof do
     begin
         //记录应收应付
         recedeal:=qryfareno.fieldbyname('recedeal').asinteger;
         //删除同费用号的相应的记录
         sqlstr:='delete from fareinfo where relacode like ''%'+
         qryfareno.fieldbyname('fareno').asstring+'%''';
         if FrmMain.ExecSQL(sqlstr) then
         else
             begin
               ShowMessage('同费用名称的记录删除失败');
               exit;
             end;
            for i:=0 to lvft.Items.Count -1 do
                  begin
                     if lvfT.Items.Item[i].Checked then
                         begin
                          //计算出每笔应当分摊的金额
                           ftacount:=(qryfareno.fieldbyname('acount').asfloat)*strtofloat(lvft.items.item[i].caption)/allcharge;
                           if ftacount=0 then
                           else
                              ftacount:=strtofloat(formatfloat('#.##',ftacount));

                               codeget:=FrmMain.GetCode('F');
                               sqlstr:='insert into fareinfo(fareno,fileno,FileCode,'+
                               'cuscode,cuscodename,farecode,faretype,acount,Unitprice,'+
                                'writedate,FarePayToDate,currencytype,'+
                                'currencyrate,relacode,opercwmark,bxno,recedeal)'+
                                 ' values(';
                                 FrmMain.InsStr(sqlstr,codeget,',');
                                 FrmMain.InsStr(sqlstr,LVFT.Items.Item[i].SubItems.Strings[1],',');
                                 FrmMain.InsStr(sqlstr,LVFT.Items.Item[i].SubItems.Strings[0],',');
                                 FrmMain.InsStr(sqlstr,qryfareno.fieldbyname('cuscode').asstring,',');
                                 FrmMain.InsStr(sqlstr,qryfareno.fieldbyname('cuscodename').asstring,',');
                                 FrmMain.InsStr(sqlstr,qryfareno.fieldbyname('farecode').asstring,',');
                                 FrmMain.InsStr(sqlstr,qryfareno.fieldbyname('faretype').asstring,',');
                                 FrmMain.InsStr(sqlstr,FtAcount,',');
                                 FrmMain.InsStr(sqlstr,qryfareno.fieldbyname('unitprice').asstring,',');
                                 FrmMain.InsStr(sqlstr,datetimetostr(int(date)),',');
                                 FrmMain.InsStr(sqlstr,datetimetostr(int(date)),',');
                                 FrmMain.InsStr(sqlstr,qryfareno.fieldbyname('currencytype').asstring,',');
                                 FrmMain.InsStr(sqlstr,qryfareno.fieldbyname('currencyrate').asstring,',');
                                 FrmMain.InsStr(sqlstr,pchar(qryfareno.fieldbyname('fareno').asstring+'---'+frmmainfeegrid.lv.selected.caption),',');
                                 FrmMain.InsStr(sqlstr,'业务操作',',');
                                 FrmMain.InsStr(sqlstr,qryfareno.fieldbyname('bxno').asstring,',');                                 
                                 FrmMain.InsStr(sqlstr,recedeal,'');
                                 if FrmMain.ExecSQL(sqlstr) then
                                 else
                                    begin
                                       ShowMessage('费用记录插入失败');
                                       exit;
                                    end;

                            end;
                      end;
         qryfareno.next;
     end;
     ShowMessage('费用分摊成功!');
     close;
except
    ShowMessage('费用分摊失败!');
end;
end;

procedure Tfrmmainfareft.LVFTColumnClick(Sender: TObject;
  Column: TListColumn);
begin
  inherited;
 FrmMain.SortLvData(lvft,Column.index);
end;

procedure Tfrmmainfareft.BitBtn4Click(Sender: TObject);
begin
  inherited;
close;
end;

end.

⌨️ 快捷键说明

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