📄 frm_planequoteinfo.pas
字号:
unit Frm_PlaneQuoteInfo;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Frm_Cargo, XPMenu, ComCtrls, StdCtrls, ImgList, Buttons,
ExtCtrls, DB, ADODB, Grids, BaseGrid, AdvGrid,Math;
type
TFrmPlaneQuoteInfo = class(TFrmCargo)
Panel3: TPanel;
Label2: TLabel;
Panel4: TPanel;
Label4: TLabel;
Label7: TLabel;
Label1: TLabel;
Label3: TLabel;
Label6: TLabel;
CmbPlaneCompany: TComboBox;
CmbCurrencyType: TComboBox;
CmbUnLoad: TComboBox;
BtnQuery: TBitBtn;
CmbCountry: TComboBox;
EdtCity: TEdit;
ChkBL: TCheckBox;
EdtBL: TEdit;
ImageList1: TImageList;
Panel1: TPanel;
Panel2: TPanel;
BtnCancel: TBitBtn;
BtnNew: TBitBtn;
BtnDelete: TBitBtn;
BtnEdit: TBitBtn;
LVH: TListView;
GridAirBaseQuote: TAdvStringGrid;
QryTemp: TADOQuery;
QryTemp1: TADOQuery;
procedure FormActivate(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BtnQueryClick(Sender: TObject);
procedure BtnNewClick(Sender: TObject);
procedure BtnEditClick(Sender: TObject);
procedure BtnDeleteClick(Sender: TObject);
procedure BtnCancelClick(Sender: TObject);
procedure GridAirBaseQuoteDblClickCell(Sender: TObject; ARow,
ACol: Integer);
private
IsFirstOpen:Boolean;
{ Private declarations }
public
AirBaseCurrentRow:Integer;
{ Public declarations }
end;
var
FrmPlaneQuoteInfo: TFrmPlaneQuoteInfo;
implementation
uses Frm_Main, Frm_PlaneQuoteEdit;
{$R *.dfm}
procedure TFrmPlaneQuoteInfo.FormActivate(Sender: TObject);
Var
SqlStr:String;
begin
inherited;
if IsFirstOpen then
else
exit;
SqlStr := 'select b.PlaneCompanyName,a.Area,a.LoadPort,a.UnLoadPort,a.quoteM,'
+ 'a.quoteN,a.quote45,a.quote100,a.quote300,a.quote500,' +
'a.quote1000,a.quote1500,a.quote2000,a.quote2500,a.quote3000,a.quotes300,a.quotes500,' +
'a.quotes1000,a.quotes1500,a.quoted500,a.quoted1000,a.quoteQt,a.Quotecode' +
' from AirBaseQuote a,PlaneCompanyInfo b' +
' where b.PlaneCompanyCode=*a.PlaneCompany';
FrmMain.AddGridData(GridAirBaseQuote, SqlStr);
IsFirstOpen := False;
end;
procedure TFrmPlaneQuoteInfo.FormCreate(Sender: TObject);
var
querystr:string;
begin
inherited;
AirBaseCurrentRow := 1;
IsFirstOpen := True;
querystr:='Select PlaneCompanyCode,PlaneCompanyCName from PlaneCompanyInfo';
FrmMain.Full_FilterCombobox(CmbPlaneCompany,querystr,'PlaneCompanyCode','PlaneCompanyCName');
querystr:='Select Code,CName from CountryInfo';
FrmMain.Full_FilterCombobox(CmbCountry,querystr,'code','cname');
querystr:='select PortCode,PortName From PortInfo';
FrmMain.Full_FilterCombobox(cmbunload,QueryStr,'portcode','portname');
querystr:='Select Code,cName From Currency ';
FrmMain.Full_FilterCombobox(CmbCurrencyType,QueryStr,'portcode','portname');
end;
procedure TFrmPlaneQuoteInfo.BtnQueryClick(Sender: TObject);
var
sTmp: string;
Flag: integer;
i, j: integer;
SqlStr: string;
TempI: Integer;
SearchCity: array[0..30] of string;
SearchPort: array[0..30] of string;
CountryCity, NameCity: string;
OriCity: string;
begin
inherited;
try
SqlStr := 'select b.PlaneCompanyName,a.Area,a.LoadPort,a.UnLoadPort,a.quoteM,'
+ 'a.quoteN,a.quote45,a.quote100,a.quote300,a.quote500,' +
'a.quote1000,a.quote1500,a.quote2000,a.quote2500,a.quote3000,a.quotes300,a.quotes500,' +
'a.quotes1000,a.quotes1500,a.quoted500,a.quoted1000,a.quoteQt,a.Quotecode' +
' from AirBaseQuote a,PlaneCompanyInfo b' +
' where b.PlaneCompanyCode=*a.PlaneCompany';
stmp :=FrmMain.GetFieldText(CmbPlaneCompany.text);
if sTmp <> '' then
SqlStr := SqlStr + ' And a.PlaneCompany = ''' + sTmp + ''' ';
stmp := trim(FrmMain.GetFieldText(CmbCountry.text));
if sTmp <> '' then
begin
QryTemp.close;
qrytemp.sql.text := 'select * from portinfo where countrycode=''' + stmp + '''';
qrytemp.open;
if qrytemp.RecordCount > 0 then
begin
SqlStr := SqlStr + ' And ( ';
while not qrytemp.eof do
begin
CountryCity := CountryCity + ',' + qrytemp.fieldbyname('portcode').asstring;
SqlStr := SqlStr + ' (a.unloadport like ''%' + qrytemp.fieldbyname('portcode').asstring + '%'') or ';
qrytemp.Next;
end;
SqlStr := copy(SqlStr, 1, length(SqlStr) - 4) + ' )';
end;
end;
stmp := EdtCity.text;
if sTmp <> '' then
begin
FrmMain.GetSplitText(EdtCity.text, ',', SearchCity);
SqlStr := SqlStr + ' And (';
I := 0;
for i := 0 to 30 do
begin
QryTemp.close;
qrytemp.sql.text := 'select * from portinfo where portname=''' + searchcity[i] + '''';
qrytemp.open;
if qrytemp.RecordCount > 0 then
begin
while not qrytemp.eof do
begin
SqlStr := SqlStr + ' (a.unloadport like ''%' + qrytemp.fieldbyname('portcode').asstring + '%'') or ';
qrytemp.Next;
end;
end;
end;
SqlStr := copy(SqlStr, 1, length(SqlStr) - 4) + ' )';
end;
stmp := FrmMain.GetFieldText(CmbUnLoad.text);
SqlStr := SqlStr + ' (a.unloadport like ''%' + stmp + '%'') ';
FrmMain.AddGridData(GridAirBaseQuote, SqlStr);
if ChkBl.Checked then
begin
for j := 1 to GridAirBaseQuote.RowCount - 1 do
begin
for i := 4 to 21 do
begin
if GridAirBaseQuote.Cells[i, j] = '' then
GridAirBaseQuote.Cells[i, j] := '0';
GridAirBaseQuote.Cells[i, j] := FloattoStr(StrtoFloat(GridAirBaseQuote.Cells[i, j]) * StrtoFloat(EdtBl.Text));
end;
end;
end;
if CmbCurrencyType.Text <> '' then
begin
QryTemp1.Close;
QryTemp1.SQL.Text := 'Select Rate From Currency where code=''' + 'USD' + '''';
QryTemp1.Open;
if FrmMain.GetFieldText(CmbCurrencyType.Text) = 'USD' then
begin
for j := 1 to GridAirBaseQuote.RowCount - 1 do
begin
QryTemp.Close;
Qrytemp.SQL.Text := 'Select CurrencyType from AirBaseQuote where Quotecode=''' + GridAirBaseQuote.Cells[22,j] + '''';
QryTemp.Open;
for i := 4 to 21 do
begin
if GridAirBaseQuote.Cells[i, j] = '' then
GridAirBaseQuote.Cells[i, j] := '0';
if Qrytemp.FieldByName('CurrencyType').AsString = FrmMain.GetFieldText(CmbCurrencyType.Text) then
GridAirBaseQuote.Cells[i, j] := FloattoStr(StrtoFloat(GridAirBaseQuote.Cells[i, j]) * 1)
else
GridAirBaseQuote.Cells[i, j] := FloattoStr(RoundTO((StrtoFloat(GridAirBaseQuote.Cells[i, j]) / QryTemp1.fieldByName('Rate').AsFloat),-2));
end;
end;
end;
if FrmMain.GetFieldText(CmbCurrencyType.Text) = 'RMB' then
begin
for j := 1 to GridAirBaseQuote.RowCount - 1 do
begin
QryTemp.Close;
Qrytemp.SQL.Text := 'Select CurrencyType from AirBaseQuote where Quotecode=''' + GridAirBaseQuote.Cells[22,j] + '''';
QryTemp.Open;
for i := 4 to 21 do
begin
if GridAirBaseQuote.Cells[i, j] = '' then
GridAirBaseQuote.Cells[i, j] := '0';
if Qrytemp.FieldByName('CurrencyType').AsString = FrmMain.GetFieldText(CmbCurrencyType.Text) then
GridAirBaseQuote.Cells[i, j] := FloattoStr(StrtoFloat(GridAirBaseQuote.Cells[i, j]) * 1)
else
GridAirBaseQuote.Cells[i, j] := FloattoStr(StrtoFloat(GridAirBaseQuote.Cells[i, j]) * QryTemp1.fieldByName('Rate').AsFloat);
end;
end;
end;
end;
except
ShowMessage('没有符合条件的记录,请重新查询!');
Exit;
end;
end;
procedure TFrmPlaneQuoteInfo.BtnNewClick(Sender: TObject);
begin
inherited;
if FrmMain.IncludeValue('底价维护') then
else
begin
ShowMessage('对不起,你不具有该操作的权限!');
exit;
end;
FrmPlaneQuoteEdit := TFrmPlaneQuoteEdit.create(Self);
FrmPlaneQuoteEdit.IsEdit := False;
FrmPlaneQuoteEdit.Showmodal;
end;
procedure TFrmPlaneQuoteInfo.BtnEditClick(Sender: TObject);
begin
inherited;
if (AirBaseCurrentRow = 1) and (GridAirBaseQuote.Cells[22, 1] = '') then
begin
ShowMessage('数据为空,不可修改,请点增加!');
exit;
end;
FrmPlaneQuoteEdit := TFrmPlaneQuoteEdit.create(Self);
FrmPlaneQuoteEdit.IsEdit := true;
FrmPlaneQuoteEdit.BtnAdd.Enabled := True;
FrmPlaneQuoteEdit.QuoteCode := GridAirBaseQuote.Cells[22, AirBaseCurrentRow];
FrmPlaneQuoteEdit.Showmodal;
end;
procedure TFrmPlaneQuoteInfo.BtnDeleteClick(Sender: TObject);
var
Sqlstr: string;
PlaneCompany: string;
//PlaneCompany:String;
begin
inherited;
if FrmMain.IncludeValue('底价维护') then
else
begin
ShowMessage('对不起,你不具有该操作的权限!');
exit;
end;
if (AirBaseCurrentRow = 1) and (GridAirBaseQuote.Cells[22, 1] = '') then
Exit;
if MessageDlg('是否删除所选中的记录,请确定', mtConfirmation,[mbYes,mbNO], 1) = mrNO then
exit;
try
SqlStr := 'Delete From AirBaseQuote Where QuoteCode=''' + GridAirBaseQuote.Cells[22, AirBaseCurrentRow] + '''';
if FrmMain.ExecSQL(SqlStr) then
else
begin
ShowMessage('记录删除失败,请检查!');
exit;
end;
except
ShowMessage('删除操作进行失败,请检查!');
Exit;
end;
FrmMain.DeleteGridRow(GridAirBaseQuote, 23, AirBaseCurrentRow);
end;
procedure TFrmPlaneQuoteInfo.BtnCancelClick(Sender: TObject);
begin
inherited;
Close;
end;
procedure TFrmPlaneQuoteInfo.GridAirBaseQuoteDblClickCell(Sender: TObject;
ARow, ACol: Integer);
begin
inherited;
BtnEditClick(Self);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -