📄 frm_mainfareft.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 + -