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