📄 frm_mainfee.pas
字号:
unit Frm_MainFee;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Frm_Cargo, DB, ADODB, StdCtrls, ComCtrls, Buttons, ExtCtrls,
XPMenu;
type
TFrmMainFee = class(TFrmCargo)
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label7: TLabel;
Label5: TLabel;
Label6: TLabel;
Label8: TLabel;
Label82: TLabel;
Label85: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label1: TLabel;
Label87: TLabel;
Label12: TLabel;
Label14: TLabel;
Label15: TLabel;
Panel1: TPanel;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
EdtAcount: TEdit;
EdtRemark: TEdit;
ComFeeType: TComboBox;
HappenDate: TDateTimePicker;
ComObject: TComboBox;
ComFeeName: TComboBox;
EdtOperator: TEdit;
Rece: TRadioButton;
Deal: TRadioButton;
ComCurrencyType: TComboBox;
EdtRate: TEdit;
ComHAWB: TComboBox;
EdtBill: TEdit;
EdtUnitPrice: TEdit;
MemCusCode: TMemo;
EdtInvoice: TEdit;
ComOther: TComboBox;
EdtBxh: TEdit;
PayToDate: TEdit;
QryTemp: TADOQuery;
QryTemp2: TADOQuery;
procedure FormActivate(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ComFeeTypeExit(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
private
{ Private declarations }
public
IsEdit: Boolean;
Alone: Boolean;
{ Public declarations }
end;
var
FrmMainFee: TFrmMainFee;
implementation
uses Frm_MainFeeGrid, Frm_Main;
{$R *.dfm}
procedure TFrmMainFee.FormActivate(Sender: TObject);
var
Fss: Tlocateoptions;
begin
inherited;
EdtOperator.Text := FrmMain.LoginName;
happendate.date := date;
if isedit then
begin
with QryTemp do
begin
close;
sql.text := 'select * from fareinfo where fareno =''' +
Frmmainfeegrid.varcode + '''';
open;
end;
if QryTemp.recordcount > 0 then
begin
comhawb.text :=
FrmMain.setcomboboxtext(qrytemp.fieldbyname('FileCode').asstring,
comhawb);
comhawb.Enabled := false;
comfeetype.text :=
FrmMain.SetComboBoxText(QryTemp.fieldbyname('faretype').asstring,
comfeetype);
comfeename.text :=
FrmMain.SetComboBoxText(QryTemp.fieldbyname('farecode').asstring,
comfeename);
comobject.text :=
FrmMain.SetComboBoxText(QryTemp.fieldbyname('cuscode').asstring,
comobject);
memcuscode.text := QryTemp.fieldbyname('cuscodename').asstring;
edtacount.text := floattostr(QryTemp.fieldbyname('acount').asfloat);
edtunitprice.text := QryTemp.fieldbyname('unitprice').asstring;
edtoperator.text := QryTemp.fieldbyname('operator').asstring;
happendate.date :=
strtodatetime(QryTemp.fieldbyname('writedate').asstring);
comcurrencytype.text :=
FrmMain.setcomboboxtext(QryTemp.fieldbyname('currencytype').asstring,
comcurrencytype);
edtrate.text := QryTemp.fieldbyname('currencyrate').asstring;
edtbill.text := QryTemp.fieldbyname('billno').asstring;
edtinvoice.text := QryTemp.fieldbyname('invoiceno').asstring;
edtbxh.text := QryTemp.fieldbyname('bxno').asstring;
paytodate.text := QryTemp.fieldbyname('farepaytodate').asstring;
edtremark.text := QryTemp.fieldbyname('remark').asstring;
ComOther.text := QryTemp.fieldbyname('GoodsCode').asstring;
if QryTemp.fieldbyname('recedeal').asinteger = 1 then
rece.Checked := true
else
deal.Checked := true;
end;
end
else
begin
if not alone then
begin
comhawb.text :=
FrmMain.setcomboboxtext(frmMAINfeegrid.LV.Selected.Caption,
comhawb);
Comhawb.Enabled := false;
end;
end;
end;
procedure TFrmMainFee.FormCreate(Sender: TObject);
var
sqlstr: string;
begin
inherited;
FrmMain.Full_ComboBox(comfeetype, 'faretype', 'farecode', 'cname');
FrmMain.Full_ComboBox(comfeename, 'fareinformation', 'farecode', 'farecname');
SqlStr := 'select * from Customerinfo';
FrmMain.Full_FilterCombobox(comobject, SqlStr, 'cuscode', 'custcname');
FrmMain.Full_ComboBox(comcurrencytype, 'currency', 'code', 'Cname');
sqlstr := 'select * from Filetable where Dexecdate>=''' +
datetimetostr(int(date - 60)) + '''';
FrmMain.Full_FilterCombobox(comhawb, sqlstr, 'FileCode', 'MainCode');
end;
procedure TFrmMainFee.ComFeeTypeExit(Sender: TObject);
begin
inherited;
comfeetype.text := FrmMain.CheckComboBox(comfeetype);
end;
procedure TFrmMainFee.BitBtn3Click(Sender: TObject);
var
ValueArray: array[0..20] of string;
ArrayCount: integer;
SqlStr: string;
Codeget: string;
Wentdutch: Boolean;
begin
inherited;
WentDutch := false;
if frmmainfeegrid.lv.Selected.SubItems.Strings[5] = '1' then
begin
ShowMessage('相应主单纪录的完成标记已设为True,不能够再进行修改!' +
chr(13) + '如果修改,请先清除完成标记,并重新进行统计!');
exit;
end;
if isedit then
begin
{如果处于编辑状态,则测试一下是否是已分摊的费用}
QryTemp2.Close;
QryTemp2.SQL.Text:='Select * From FareInfo where relacode like ''%' + frmmainfeegrid.varcode + '%''';
QryTemp2.Open;
if FrmMain.RecordCount(QryTemp2) >= 1 then
begin
if
MessageDlg('该费用记录已经分摊,继续后也不能够保存金额信息和应收应付,是否继续?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
WentDutch := true {已分摊费用的标记}
else
exit;
end;
end;
if FrmMain.TestTextNumber(edtAcount.text, 'real') then
else
begin
ShowMessage('请在费用数额中输入数值类型的信息');
exit;
end;
if (comfeename.text = '') then
begin
ShowMessage('费用名称,费用对象不能为空');
exit;
end;
if comcurrencytype.text = '' then
comcurrencytype.text := comcurrencytype.Items.Strings[0];
if edtrate.text = '' then
edtrate.text := '1';
if IsEdit then
begin
try
sqlstr := '';
FrmMain.UpStr(sqlstr, 'fareinfo ');
FrmMain.UpStr(sqlstr, 'faretype', FrmMain.GetFieldText(comfeetype.text), ',');
FrmMain.UpStr(sqlstr, 'farecode', FrmMain.getfieldtext(comfeename.text), ',');
FrmMain.UpStr(sqlstr, 'cuscode', FrmMain.getfieldtext(comobject.text), ',');
FrmMain.UpStr(sqlstr, 'cuscodename', memcuscode.lines.text, ',');
if WentDutch then {如果是分摊费用,则不进行金额,应收应付,币种的保存}
else
begin
FrmMain.UpStr(sqlstr, 'acount', strtofloat(edtacount.text), ',');
if rece.Checked then
FrmMain.UpStr(sqlstr, 'recedeal', 1, ',')
else
FrmMain.UpStr(sqlstr, 'recedeal', -1, ',');
FrmMain.UpStr(sqlstr, 'currencytype',
FrmMain.getfieldtext(comcurrencytype.text), ',');
FrmMain.UpStr(sqlstr, 'currencyrate', edtrate.text, ',');
end;
FrmMain.UpStr(sqlstr, 'unitprice', edtunitprice.text, ',');
FrmMain.UpStr(sqlstr, 'operator', edtoperator.text, ',');
FrmMain.UpStr(sqlstr, 'writedate', datetimetostr(int(happendate.date)), ',');
FrmMain.UpStr(sqlstr, 'billno', edtbill.text, ',');
FrmMain.UpStr(sqlstr, 'invoiceno', edtinvoice.text, ',');
FrmMain.UpStr(sqlstr, 'bxno', edtbxh.text, ',');
FrmMain.UpStr(sqlstr, 'GoodsCode', ComOther.text, ',');
FrmMain.UpStr(sqlstr, 'farepaytodate', paytodate.text, ',');
FrmMain.UpStr(sqlstr, 'remark', edtremark.text, '');
FrmMain.UpStr(sqlstr, 'fareno=', frmmainfeegrid.varcode, 'w');
if FrmMain.execsql(sqlstr) then
else
begin
ShowMessage('操作失误,记录未保存,请检查');
exit;
end;
{编号 费用对象 应收 应付 费用类型名称 费用名称 币种 }
ValueArray[0] := Frmmainfeegrid.Varcode;
ValueArray[1] := memcuscode.lines.text;
if rece.checked then
begin
ValueArray[2] := edtacount.text; //应收
ValueArray[3] := ''; //应付
end
else
begin
ValueArray[2] := '';
ValueArray[3] := edtacount.text;
end;
ValueArray[4] := FrmMain.GetFieldText(comfeetype.text,0);
ValueArray[5] := FrmMain.GetFieldText(comfeename.text,0);
ValueArray[6] := FrmMain.GetFieldText(comcurrencytype.text,0);
ArrayCount := 6;
FrmMain.RefeshOne(ValueArray, ArrayCount, FrmMainfeegrid.lv2);
close;
except
ShowMessage('操作有失误,请检查!');
end;
end
else
begin
try
codeget := FrmMain.getcode('F');
sqlstr := 'insert into fareinfo(fareno,FileCode,farecode,' +
'cuscode,cuscodename,faretype,acount,unitprice,recedeal,writedate,operator,currencytype,' +
'currencyrate,billno,invoiceno,bxno,farepaytodate,' +
'opercwmark,GoodsCode,remark) values(';
FrmMain.InsStr(sqlstr, CODEGET, ',');
FrmMain.InsStr(sqlstr, FrmMain.getfieldtext(comhawb.text), ',');
FrmMain.InsStr(sqlstr, FrmMain.getfieldtext(comfeename.text), ',');
FrmMain.InsStr(sqlstr, FrmMain.GetFieldText(comobject.text), ',');
FrmMain.InsStr(sqlstr, memcuscode.lines.text, ',');
FrmMain.InsStr(sqlstr, FrmMain.GetFieldText(comfeetype.text), ',');
FrmMain.InsStr(sqlstr, strtofloat(edtacount.text), ',');
FrmMain.InsStr(sqlstr, edtunitprice.text, ',');
if rece.Checked then
FrmMain.InsStr(sqlstr, 1, ',')
else
FrmMain.InsStr(sqlstr, -1, ',');
FrmMain.InsStr(sqlstr, datetimetostr(int(happendate.date)), ',');
FrmMain.InsStr(sqlstr, edtoperator.text, ',');
FrmMain.InsStr(sqlstr, FrmMain.getfieldtext(comcurrencytype.text), ',');
FrmMain.InsStr(sqlstr, edtrate.text, ',');
FrmMain.InsStr(sqlstr, edtbill.text, ',');
FrmMain.InsStr(sqlstr, edtinvoice.text, ',');
FrmMain.InsStr(sqlstr, edtbxh.text, ',');
FrmMain.InsStr(sqlstr, paytodate.text, ',');
FrmMain.InsStr(sqlstr, '业务操作', ',');
FrmMain.InsStr(sqlstr, ComOther.text, ',');
FrmMain.InsStr(sqlstr, edtremark.text, '');
if FrmMain.execsql(sqlstr) then
else
begin
ShowMessage('操作失误,记录未保存,请检查');
exit;
end;
ValueArray[0] := codeget;
ValueArray[1] := memcuscode.lines.text;
if rece.checked then
begin
ValueArray[2] := edtacount.text; //应收
ValueArray[3] := ''; //应付
end
else
begin
ValueArray[2] := '';
ValueArray[3] := edtacount.text;
end;
ValueArray[4] := FrmMain.GetFieldText(comfeetype.text,0);
ValueArray[5] := FrmMain.GetFieldText(comfeename.text,0);
ValueArray[6] := FrmMain.GetFieldText(comcurrencytype.text,0);
ArrayCount := 6;
if alone then
else
FrmMain.AddListView(ValueArray, ArrayCount, Frmmainfeegrid.lv2);
close;
except
ShowMessage('操作有失误,请检查!');
end;
end;
end;
procedure TFrmMainFee.BitBtn4Click(Sender: TObject);
begin
inherited;
Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -