You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1120 lines
35 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

unit u_ch_precost;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, dxExEdtr, DB, ADODB, u_ch_add_do, u_ch_delete_do, StdCtrls,
DBCtrls, wwdblook, ComCtrls, bsSkinTabs, RxLookup, bsSkinCtrls,
bsdbctrls, Mask, dxDBGrid, dxDBTLCl, dxGrClms, dxTL, dxDBCtrl, dxCntner,
Menus, XPMenu, wwdbdatetimepicker, wwdbedit, Wwdotdot, Wwdbcomb,
kbmMemTable, bsSkinBoxCtrls, DBCtrlsEh;
type
Tfrm_ch_precost = class(TForm)
bsSkinPanel2: TbsSkinPanel;
bsSkinButton1: TbsSkinButton;
bsSkinButton2: TbsSkinButton;
bsSkinButton4: TbsSkinButton;
bsSkinButton3: TbsSkinButton;
bsSkinButton5: TbsSkinButton;
bsSkinButton9: TbsSkinButton;
bsSkinButton10: TbsSkinButton;
bsSkinButton11: TbsSkinButton;
bsSkinButton6: TbsSkinButton;
bsSkinNotebook1: TbsSkinNotebook;
dxdbgrid1: TdxDBGrid;
bsSkinPanel1: TbsSkinPanel;
t_ch_precost: TADOQuery;
t_ch_precost1: TDataSource;
t_ch_fee_do_precost: TADOQuery;
dxdbgrid1Column1: TdxDBGridMaskColumn;
dxdbgrid1Column2: TdxDBGridMaskColumn;
dxdbgrid1Column3: TdxDBGridMaskColumn;
dxdbgrid1Column10: TdxDBGridMaskColumn;
dxdbgrid1Column11: TdxDBGridDateColumn;
XPMenu1: TXPMenu;
PopupMenu2: TPopupMenu;
N16: TMenuItem;
dxdbgrid1Column18: TdxDBGridColumn;
dxdbgrid1Column19: TdxDBGridColumn;
memtblprint1: TDataSource;
memtblprint: TkbmMemTable;
bsSkinButton38: TbsSkinButton;
DBEdit12: TDBEdit;
PopupMenu1: TPopupMenu;
MenuItem4: TMenuItem;
MenuItem5: TMenuItem;
N21: TMenuItem;
N22: TMenuItem;
N20: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
dxdbgrid1Column27: TdxDBGridColumn;
Label9: TLabel;
Label11: TLabel;
Label14: TLabel;
Label16: TLabel;
Label20: TLabel;
Label22: TLabel;
DBEdit5: TDBEdit;
DBEdit9: TDBEdit;
RxDBLookupCombo3: TRxDBLookupCombo;
DBEdit10: TDBEdit;
DBEdit11: TDBEdit;
DBMemo2: TDBMemo;
bsSkinButton21: TbsSkinButton;
bsSkinPanel3: TbsSkinPanel;
dxDBGrid2: TdxDBGrid;
dxDBGrid2Column1: TdxDBGridColumn;
dxDBGrid2Column2: TdxDBGridColumn;
dxDBGrid2Column3: TdxDBGridColumn;
dxDBGrid2Column4: TdxDBGridColumn;
dxDBGrid2Column5: TdxDBGridColumn;
dxDBGrid2Column6: TdxDBGridColumn;
bsSkinPanel4: TbsSkinPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label12: TLabel;
Label4: TLabel;
Label125: TLabel;
Label30: TLabel;
Label35: TLabel;
Edit4: TEdit;
Edit2: TEdit;
wwDBDateTimePicker1: TwwDBDateTimePicker;
wwDBDateTimePicker2: TwwDBDateTimePicker;
bsSkinButton7: TbsSkinButton;
bsSkinButton8: TbsSkinButton;
Edit16: TEdit;
bsSkinPanel5: TbsSkinPanel;
dxDBGrid3: TdxDBGrid;
dxDBGridColumn1: TdxDBGridColumn;
dxDBGridColumn2: TdxDBGridColumn;
dxDBGridColumn3: TdxDBGridColumn;
dxDBGridColumn4: TdxDBGridColumn;
dxDBGridColumn5: TdxDBGridColumn;
dxDBGridColumn6: TdxDBGridColumn;
dxDBGridColumn7: TdxDBGridColumn;
Label38: TLabel;
wwDBComboBox42: TwwDBComboBox;
RxDBLookupCombo5: TRxDBLookupCombo;
t_ch_fee_do_precost1: TDataSource;
memtblItems: TkbmMemTable;
memtblItems1: TDataSource;
memtblItemsField: TBooleanField;
memtblItemsField2: TStringField;
memtblItemsField3: TStringField;
memtblItemsField4: TStringField;
memtblItemsField5: TStringField;
memtblItemsField6: TStringField;
memtblItemsField7: TFloatField;
memtblItemsField8: TFloatField;
memtblItemsch_id: TIntegerField;
memtblItemsField9: TStringField;
dxDBGrid3Column8: TdxDBGridCheckColumn;
bsSkinButton13: TbsSkinButton;
bsSkinButton14: TbsSkinButton;
bsSkinButton15: TbsSkinButton;
dxDBGrid2Column7: TdxDBGridColumn;
Label5: TLabel;
DBEdit1: TDBEdit;
bsSkinButton16: TbsSkinButton;
memtblItemsField10: TFloatField;
dxDBGrid3Column9: TdxDBGridColumn;
bsSkinButton17: TbsSkinButton;
Label26: TLabel;
wwDBDateTimePicker3: TwwDBDateTimePicker;
t_cw_design: TADOQuery;
dxdbgrid1Column9: TdxDBGridColumn;
RxDBLookupCombo16: TRxDBLookupCombo;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
memtblItemsField11: TDateField;
dxDBGrid3Column10: TdxDBGridColumn;
dxDBGrid2Column8: TdxDBGridColumn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure bsSkinButton11Click(Sender: TObject);
procedure t_ch_precostAfterInsert(DataSet: TDataSet);
procedure bsSkinButton1Click(Sender: TObject);
procedure bsSkinButton2Click(Sender: TObject);
procedure bsSkinButton4Click(Sender: TObject);
procedure bsSkinButton3Click(Sender: TObject);
procedure t_ch_precostBeforePost(DataSet: TDataSet);
procedure t_ch_precostBeforeEdit(DataSet: TDataSet);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure bsSkinButton9Click(Sender: TObject);
procedure bsSkinButton5Click(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure bsSkinPanel2Resize(Sender: TObject);
procedure bsSkinButton38Click(Sender: TObject);
procedure DBEdit12Change(Sender: TObject);
procedure bsSkinButton8Click(Sender: TObject);
procedure bsSkinButton7Click(Sender: TObject);
procedure bsSkinButton13Click(Sender: TObject);
procedure bsSkinButton14Click(Sender: TObject);
procedure bsSkinButton15Click(Sender: TObject);
procedure dxDBGrid3SelectedCountChange(Sender: TObject);
procedure bsSkinButton16Click(Sender: TObject);
procedure bsSkinButton17Click(Sender: TObject);
procedure dxdbgrid1Column2CustomDraw(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; ANode: TdxTreeListNode; AColumn: TdxDBTreeListColumn;
const AText: String; AFont: TFont; var AColor: TColor; ASelected,
AFocused: Boolean; var ADone: Boolean);
procedure DBEdit9Change(Sender: TObject);
procedure dxDBGrid3CustomDraw(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; ANode: TdxTreeListNode; AColumn: TdxDBTreeListColumn;
const AText: String; AFont: TFont; var AColor: TColor; ASelected,
AFocused: Boolean; var ADone: Boolean);
procedure dxDBGrid3DblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function GetCustID(CorpID,DC:String):String;
procedure UpdateBillAmt;
procedure NewDCVou_One;
function NewDCVou_Patch(fDataSet:TDataSet;ZDR:String;voudate:TDatetime):Boolean;
end;
var
ch_check_shen_open:boolean;
frm_ch_precost: Tfrm_ch_precost;
implementation
uses u_main, u_ch_shen_query, my_sys_function, u_data_share, my_sys_chat,u_op_kuaidi_shen,
dmAccu, VouItemStlu;
{$R *.dfm}
function Tfrm_ch_precost.GetCustID(CorpID,DC:String):String;
var
i:integer;
aQuery:TADOQuery;
begin
aQuery:=createADOQuery;
with aQuery do
try
Close;SQL.Clear;
SQL.Add('select <20><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ʿ<EFBFBD><CABF><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ʿ<EFBFBD><CABF><EFBFBD><EFBFBD><EFBFBD> from t_crm_client where <20>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>='''+CorpID+'''');
Open;
if DC='<27><>' then
Result:=fieldByName('<27><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ʿ<EFBFBD><CABF><EFBFBD><EFBFBD><EFBFBD>').AsString
else
Result:=fieldByName('<27><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ʿ<EFBFBD><CABF><EFBFBD><EFBFBD><EFBFBD>').AsString;
if result='' then begin
showmessage(CorpID+' '+DC+' '+'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>');
Abort;
end;
finally
FreeAndNil(aQuery);
end;
end;
function Tfrm_ch_precost.NewDCVou_Patch(fDataSet:TDataSet;ZDR:String;voudate:TDatetime):Boolean;
var
aQuery,aQuery2:TADOQuery;
mAccOK:Boolean;
aModal:TModalResult;
StlAmtDR,StlAmtCR,StlUSDAmtDR,StlUSDAmtCR,UsdExRate:Double;
AmtDR,AmtCR,USDAmtDR,USDAmtCR,amtvat:Double;
ordno:integer;
MBlNo,Explan:string;
begin
Result:=false;
aQuery:=CreateADOQuery;
aQuery2:=CreateADOQuery;
StlAmtDR:=0.00;
StlAmtCR:=0.00;
StlUSDAmtDR:=0.00;
StlUSDAmtCR:=0.00;
UsdExRate:=StrToFloatDef(DBEdit1.Text,7.8);
amtvat:=0.00;
Explan:='';
with aQuery,SQL do
begin
Close;Clear;
Add('Select V_op_bscard_All.ί<>б<EFBFBD><D0B1><EFBFBD>,t_ch_fee.<2E>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>,t_crm_client.<2E>ͻ<EFBFBD>ȫ<EFBFBD><C8AB>');
Add(',t_ch_fee_do_precost.<2E>ұ<EFBFBD>,sum(t_ch_fee_do_precost.<2E><><EFBFBD><EFBFBD>) <20><><EFBFBD><EFBFBD>');
Add('FROM t_ch_fee_do_precost');
Add('INNER JOIN t_ch_fee ON t_ch_fee_do_precost.CH_ID = t_ch_fee.CH_ID');
Add('LEFT JOIN V_op_bscard_All ON t_ch_fee_do_precost.ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = V_op_bscard_All.<2E><><EFBFBD><EFBFBD>');
Add('Left Join t_crm_client on t_ch_fee.<2E>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>=t_crm_client.<2E>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>');
Add('where t_ch_fee_do_precost.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>='''+fDataSet.fieldbyName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').AsString+'''');
Add('group by V_op_bscard_All.ί<>б<EFBFBD><D0B1><EFBFBD>,t_ch_fee.<2E>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>,t_crm_client.<2E>ͻ<EFBFBD>ȫ<EFBFBD><C8AB>,t_ch_fee_do_precost.<2E>ұ<EFBFBD>');
Open;
end;
OrdNo:=dmAcc.AdotblVou.fieldByName('OrdNo').AsInteger;
dmAcc.AdotblVouItems.Open;
aQuery.First;
while not aQuery.Eof do
begin
dmAcc.AdotblVouItems.Insert;
dmAcc.AdotblVouItems.FieldByName('AccID').AsString:='5121.021'; //<2F>ɱ<EFBFBD>
dmAcc.AdotblVouItems.FieldByName('QTYSPECS').AsString:=trim(t_cw_design.fieldbyname('<27><>Ӧ<EFBFBD>̺<EFBFBD><CCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').AsString);
if aQuery.FieldByName('<27>ұ<EFBFBD>').AsString='USD' then
begin
dmAcc.AdotblVouItems.FieldByName('FCYDr').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0',aQuery.fieldByName('<27><><EFBFBD><EFBFBD>').AsFloat),0);
dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=UsdExRate;
dmAcc.AdotblVouItems.FieldByName('FCYCr').AsFloat:=0.0;
dmAcc.AdotblVouItems.FieldByName('AmtCr').AsFloat:=0.0;
dmAcc.AdotblVouItems.FieldByName('FCYNO').AsString:='RMB';
dmAcc.AdotblVouItems.FieldByName('AmtDr').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0', StrToFloat(FloatToStr(aQuery.fieldByName('<27><><EFBFBD><EFBFBD>').AsFloat*UsdExRate))), 0);
end
else
begin
dmAcc.AdotblVouItems.FieldByName('AmtCr').AsFloat:=0.0;
dmAcc.AdotblVouItems.FieldByName('AmtDR').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0',aQuery.fieldByName('<27><><EFBFBD><EFBFBD>').AsFloat),0);
dmAcc.AdotblVouItems.FieldByName('FCYDR').AsFloat:=0.0;
dmAcc.AdotblVouItems.FieldByName('FCYCr').AsFloat:=0.0;
dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=0.0;
dmAcc.AdotblVouItems.FieldByName('FCYNO').AsString:='RMB';
end;
dmAcc.AdotblVouItems.FieldByName('BSNO').AsString:=aQuery.fieldByName('ί<>б<EFBFBD><D0B1><EFBFBD>').AsString;
Explan:=getstrfromdataset(aQuery,t_cw_design.fieldByName('<27><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ժҪ').AsString);
dmAcc.AdotblVouItems.FieldByName('EXPLAN').AsString:='Ԥ<><D4A4>'+Explan;
dmAcc.AdotblVouItems.FieldByName('CorpID').AsString:=GetCustID(aQuery.fieldByName('<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>').AsString,'<27><>');
dmAcc.AdotblVouItems.FieldByName('CorpBf').AsString:='F';
dmAcc.AdotblVouItems.post;
dmAcc.AdotblVouItems.Insert;
dmAcc.AdotblVouItems.FieldByName('QTYSPECS').AsString:=trim(t_cw_design.fieldbyname('<27><>Ӧ<EFBFBD>̺<EFBFBD><CCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').AsString);
if aQuery.FieldByName('<27>ұ<EFBFBD>').AsString='USD' then
begin
dmAcc.AdotblVouItems.FieldByName('AccID').AsString:=t_cw_design.fieldbyname('Ӧ<><D3A6><EFBFBD>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>').AsString;
dmAcc.AdotblVouItems.FieldByName('FCYNO').AsString:='USD';
dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=UsdExRate;
dmAcc.AdotblVouItems.FieldByName('FCYDR').AsFloat:=0.0;
dmAcc.AdotblVouItems.FieldByName('FCYCr').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0',aQuery.fieldByName('<27><><EFBFBD><EFBFBD>').AsFloat),0);
dmAcc.AdotblVouItems.FieldByName('AmtDr').AsFloat:=0.0;
dmAcc.AdotblVouItems.FieldByName('AmtCr').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0', StrToFloat(FloatToStr(aQuery.fieldByName('<27><><EFBFBD><EFBFBD>').AsFloat*UsdExRate))), 0);
end
else
begin
dmAcc.AdotblVouItems.FieldByName('AccID').AsString:=t_cw_design.fieldbyname('Ӧ<><D3A6><EFBFBD>˿<EFBFBD>').AsString;
dmAcc.AdotblVouItems.FieldByName('FCYNO').AsString:='RMB';
dmAcc.AdotblVouItems.FieldByName('AmtDr').AsFloat:=0.0;
dmAcc.AdotblVouItems.FieldByName('AmtCR').AsFloat:=StrToFloatDef(FormatFloat('0.00;-0.00;0.0',aQuery.fieldByName('<27><><EFBFBD><EFBFBD>').AsFloat),0);
dmAcc.AdotblVouItems.FieldByName('FCYCR').AsFloat:=0.0;
dmAcc.AdotblVouItems.FieldByName('FCYCr').AsFloat:=0.0;
dmAcc.AdotblVouItems.FieldByName('FCYEXRATE').AsFloat:=0.0;
end;
dmAcc.AdotblVouItems.FieldByName('BSNO').AsString:=aQuery.fieldByName('ί<>б<EFBFBD><D0B1><EFBFBD>').AsString;
Explan:=getstrfromdataset(aQuery,t_cw_design.fieldByName('<27><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ժҪ').AsString);
dmAcc.AdotblVouItems.FieldByName('EXPLAN').AsString:=Explan;
dmAcc.AdotblVouItems.FieldByName('CorpID').AsString:=GetCustID(aQuery.fieldByName('<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>').AsString,'<27><>');
dmAcc.AdotblVouItems.FieldByName('CorpBf').AsString:='F';
dmAcc.AdotblVouItems.post;
aQuery.next;
end;
FreeAndNil(aQuery);
end;
procedure Tfrm_ch_precost.NewDCVou_One;
var
i,ordno:integer;
aQuery:TAdoQuery;
aModal:TModalResult;
mAccOK:boolean;
begin
if wwDBDateTimePicker3.Text='' then begin
MessageDlg('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>',mterror,[mbyes],0);
exit;
end;
if DBEdit1.Text='' then begin
MessageDlg('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƾ֤<C6BE><D6A4><EFBFBD>ʣ<EFBFBD>',mterror,[mbyes],0);
exit;
end;
if t_ch_fee_do_precost.IsEmpty then Exit;
dmacc:=TdmAcc.Create(self);
aQuery:=CreateAdoQuery;
// try
dmAcc.ADOtblVou.Open;
dmAcc.ADOtblVouItems.Open;
aVKNO:=1;
aQuery.Close;
aQuery.SQL.Clear;
aQuery.SQL.add('update t_ch_precost set <20><><EFBFBD><EFBFBD>=1,<2C><><EFBFBD><EFBFBD>ƾ֤=:<3A><><EFBFBD><EFBFBD>ƾ֤,<2C><><EFBFBD><EFBFBD>״̬=''<27><><EFBFBD><EFBFBD>ƾ֤'' where <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
VoucherDate:=wwDBDateTimePicker3.Date;
// try
dmAcc.AdotblVou.Insert;
dmAcc.AdotblVou.FieldByName('SourceType').AsInteger:=4;
dmAcc.AdotblVou.FieldByName('ATTACHS').AsInteger:=AccInfo.ATTACHS;
if Trim(t_cw_design.FieldByName('ת<><D7AA>ƾ֤<C6BE><D6A4>').AsString)<>'' then
begin
dmAcc.AdotblVou.FieldByName('VKNO').AsString:=Trim(t_cw_design.FieldByName('ת<><D7AA>ƾ֤<C6BE><D6A4>').AsString);
end
else dmAcc.AdotblVou.FieldByName('VKNO').AsString:='<27><>';
dmAcc.AdotblVou.FieldByName('PREPARED').AsString:=employee;
dmAcc.AdotblVou.Post;
dmAcc.AdotblVou.Edit;
NewDCVou_Patch(t_ch_precost,employee,wwDBDateTimePicker3.Date);
aQuery.Parameters.ParamByName('<27><><EFBFBD><EFBFBD>ƾ֤').Value:=dmacc.ADOTblVou.fieldbyname('ordno').AsString;
aQuery.Parameters.ParamByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').Value:=t_ch_precost.fieldbyname('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').AsString;
aQuery.ExecSQL;
ordno:=dmAcc.AdotblVou.fieldbyname('ordno').asinteger;
dmAcc.AdotblVou.Post;
FrmVouItemStl:=TFrmVouItemStl.Create(Application);
// try
dmACC.AdotblVouItems.Last;
FrmVouItemStl.DBGridVouItems.SelectedField:=dmACC.AdotblVouItems.FieldByName('AccID');
FrmVouItemStl.ShowModal;
mAccOK:=false;
aModal:=frmVouItemStl.ModalResult;
mAccOK:=aModal=mrok;
if mAccOK then begin
if dmAcc.AdotblVouItems.State in [dsEdit,dsInsert] then
dmAcc.AdotblVouItems.Post;
if dmAcc.AdotblVou.State in [dsEdit,dsInsert] then
dmAcc.AdotblVou.Post;
end else begin
dmAcc.TempQuery.Close;
dmAcc.TempQuery.SQL.Clear;
dmAcc.TempQuery.SQL.Add('delete from vouchers where ordno=:mOrdNo');
dmAcc.TempQuery.Parameters.ParamByName('mOrdNo').value:=OrdNo;
dmAcc.TempQuery.ExecSQL;
dmAcc.TempQuery.Close;
dmAcc.TempQuery.SQL.Clear;
dmAcc.TempQuery.SQL.Add('update t_ch_precost set <20><><EFBFBD><EFBFBD>״̬=''¼<><C2BC>״̬'' , <20><><EFBFBD><EFBFBD>=0,<2C><><EFBFBD><EFBFBD>ƾ֤='''' where <20><><EFBFBD><EFBFBD>ƾ֤='''+inttostr(OrdNo)+'''');
dmAcc.TempQuery.ExecSQL;
end;
// finally
freeAndNil(FrmVouItemStl);
// end;
{
except
dmAcc.TempQuery.Close;
dmAcc.TempQuery.SQL.Clear;
dmAcc.TempQuery.SQL.Add('delete from vouchers where ordno=:mOrdNo');
dmAcc.TempQuery.Parameters.ParamByName('mOrdNo').value:=OrdNo;
dmAcc.TempQuery.ExecSQL;
end;
}
// finally
dmAcc.AdotblVouItems.Close;
dmAcc.AdotblVou.Close;
freeAndNil(dmacc);
// end;
end;
procedure Tfrm_ch_precost.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
ch_check_shen_open:=false;
savereggrid(dxdbgrid1,caption+'1');
frm_ch_precost.Hide;
frm_ch_precost.ManualFloat(frm_ch_precost.BoundsRect );
frm_main.freeTabs('frm_ch_precost');
action:=cafree;
frm_ch_precost:=nil;
end;
procedure Tfrm_ch_precost.FormShow(Sender: TObject);
begin
wwDBComboBox42.Text:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
RxDBLookupCombo16.Value:='PHF';
bsSkinNotebook1.PageIndex:=0;
t_ch_precost.Close;
t_ch_precost.SQL.clear;
t_ch_precost.SQL.Add('select * from t_ch_precost where <20><><EFBFBD><EFBFBD>״̬ not in ('+''''+'<27><>׼֧<D7BC><D6A7>'+''''
+','+''''+'֧<><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'+''''+') and '
+open_data('1003','<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','no','no','no','no')
+'order by <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> desc');
t_ch_precost.open;
t_ch_fee_do_precost.Close;
t_ch_fee_do_precost.Open;
ch_check_shen_open:=true;
t_cw_design.Open;
end;
procedure Tfrm_ch_precost.bsSkinButton11Click(Sender: TObject);
var
answer:TModalResult;
begin
if bsSkinButton11.Caption='<27><EFBFBD>޸<EFBFBD>' then
begin
if t_ch_precost.IsEmpty then
exit;
bsSkinNotebook1.PageIndex:=1;
bsSkinButton11.Caption:='<27><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>';
end
else
begin
if (t_ch_precost.State=dsinsert)or(t_ch_precost.State=dsedit) then
BEGIN
answer:=messagedlg( '<27><><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE>޸ģ<DEB8><C4A3>Ƿ񱣴棿',mtWarning,mbYesNoCancel,0);
if answer=mrYes then
begin
t_ch_precost.post;
end;
if answer=mrNo then
begin
t_ch_precost.cancel;
end;
if answer=mrCancel then
begin
exit;
end;
END;
bsSkinNotebook1.PageIndex:=0;
bsSkinButton11.Caption:='<27><EFBFBD>޸<EFBFBD>';
end;
end;
procedure Tfrm_ch_precost.t_ch_precostAfterInsert(DataSet: TDataSet);
begin
t_ch_precost['<27><><EFBFBD><EFBFBD>״̬']:='¼<><C2BC>״̬';
t_ch_precost['<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>']:=employee;
t_ch_precost['<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>']:=now;
t_ch_precost['ƾ֤<C6BE><D6A4><EFBFBD><EFBFBD>']:=date;
t_ch_precost['<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>']:='';
IF frm_data_share.t_code_currency.Locate('<27>ұ<EFBFBD>','USD',[])THEN
begin
t_ch_precost['<27><><EFBFBD><EFBFBD>']:=frm_data_share.t_code_currency.fieldbyname('<27><><EFBFBD><EFBFBD>').asfloat;
end;
end;
procedure Tfrm_ch_precost.bsSkinButton1Click(Sender: TObject);
begin
t_ch_precost.insert;
bsSkinNotebook1.PageIndex:=1;
bsSkinButton11.Caption:='<27><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>';
end;
procedure Tfrm_ch_precost.bsSkinButton2Click(Sender: TObject);
begin
table_post(t_ch_precost);
end;
procedure Tfrm_ch_precost.bsSkinButton4Click(Sender: TObject);
begin
if t_ch_precost.IsEmpty then
exit;
if not t_ch_fee_do_precost.IsEmpty then
begin
showmessage('<27><><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>');
exit;
end;
if (t_ch_precost.FieldByName('<27><><EFBFBD><EFBFBD>״̬').asstring='<27><><EFBFBD><EFBFBD>ƾ֤') then
begin
showmessage('<27><>ǰҵ<C7B0><D2B5><EFBFBD><EFBFBD>״̬Ϊ:'+t_ch_precost.FieldByName('<27><><EFBFBD><EFBFBD>״̬').asstring+'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸Ļ<DEB8>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
exit;
end;
t_ch_precost.Delete;
end;
procedure Tfrm_ch_precost.bsSkinButton3Click(Sender: TObject);
begin
table_cancel(t_ch_precost);
end;
procedure Tfrm_ch_precost.t_ch_precostBeforePost(DataSet: TDataSet);
begin
table_before_post(t_ch_precost,'<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>');
if (t_ch_precost.state=dsinsert) and (trim(t_ch_precost.FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').AsString)='') then
begin
t_ch_precost['<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>']:=get_no(date,'PC');
end;
end;
procedure Tfrm_ch_precost.t_ch_precostBeforeEdit(DataSet: TDataSet);
begin
if not modify_all then
begin
if (t_ch_precost.FieldByName('<27><><EFBFBD><EFBFBD>״̬').asstring='<27><><EFBFBD><EFBFBD>ƾ֤')then
begin
showmessage(t_ch_precost.FieldByName('<27><><EFBFBD><EFBFBD>״̬').asstring+'״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
abort;
end;
end;
end;
procedure Tfrm_ch_precost.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
CanClose:=frm_close_query(t_ch_precost);
end;
procedure Tfrm_ch_precost.bsSkinButton9Click(Sender: TObject);
var
Pnt:Tpoint;
begin
Pnt:=bsSkinButton9.ClientToScreen(Point(0,bsSkinButton9.Height));
PopupMenu1.Popup(Pnt.x,Pnt.y);
end;
procedure Tfrm_ch_precost.bsSkinButton5Click(Sender: TObject);
begin
close;
end;
procedure Tfrm_ch_precost.N16Click(Sender: TObject);
begin
grid_save_xls(dxdbgrid3);
end;
procedure Tfrm_ch_precost.bsSkinPanel2Resize(Sender: TObject);
var
i:integer;
begin
i:=round(bsSkinPanel2.Width/10);
bsSkinButton10.Width:=i;
bsSkinButton9.Width:=i;
bsSkinButton2.Width:=i;
bsSkinButton3.Width:=i;
bsSkinButton4.Width:=i;
bsSkinButton1.Width:=i;
bsSkinButton11.Width:=i;
bsSkinButton6.Width:=i;
bsSkinButton38.Width:=i;
end;
procedure Tfrm_ch_precost.bsSkinButton38Click(Sender: TObject);
var
book1:Tbookmark;
begin
if t_ch_precost.IsEmpty then
exit;
if bsSkinNotebook1.PageIndex=0 then
begin
book1:=t_ch_precost.GetBookmark;
t_ch_precost.Requery;
t_ch_precost.GotoBookmark(book1);
end
else
begin
book1:=t_ch_precost.GetBookmark;
t_ch_precost.Refresh;
t_ch_precost.GotoBookmark(book1);
end;
end;
procedure Tfrm_ch_precost.DBEdit12Change(Sender: TObject);
begin
bsSkinButton6.Caption:='<27><EFBFBD><E1BDBB><EFBFBD><EFBFBD>';
if t_ch_precost.State in [dsinsert] then exit;
if t_ch_precost.IsEmpty then exit;
if t_ch_precost.FieldByName('<27><><EFBFBD><EFBFBD>״̬').AsString='<27><EFBFBD><E1BDBB><EFBFBD><EFBFBD>' then begin
bsSkinButton6.Caption:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
end else begin
bsSkinButton6.Caption:='<27><EFBFBD><E1BDBB><EFBFBD><EFBFBD>';
end;
end;
procedure Tfrm_ch_precost.bsSkinButton8Click(Sender: TObject);
begin
RxDBLookupCombo5.ClearValue;
Edit4.text:='';
Edit2.text:='';
wwDBDateTimePicker1.Clear;
wwDBDateTimePicker2.clear;
RxDBLookupCombo16.ClearValue;
end;
procedure Tfrm_ch_precost.UpdateBillAmt;
var aAdoQuery:TAdoQuery;
amt:Double;
begin
aAdoQuery:=CreateAdoQuery;
with aAdoQuery do
try
close;
SQL.clear;
sql.add('select ');
sql.Add('sum(case when <20>ұ<EFBFBD>=''RMB'' then <20><><EFBFBD><EFBFBD> else 0 end) as <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
sql.Add(',sum(case when <20>ұ<EFBFBD><>''RMB'' then <20><><EFBFBD><EFBFBD> else 0 end) as <20><><EFBFBD><EFBFBD>');
sql.Add('from t_ch_fee_do_precost ');
sql.Add('where <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ');
Parameters.ParamByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').Value:=t_ch_precost.fieldbyname('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').AsString;
Open;First;
if not IsEmpty then
begin
t_ch_precost.Edit;
t_ch_precost.FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD>').value:=FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').value;
t_ch_precost.FieldByName('<27><>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD>').value:=FieldByName('<27><><EFBFBD><EFBFBD>').value;
t_ch_precost.Post;
end;
finally
Free;
end;
end;
procedure Tfrm_ch_precost.bsSkinButton7Click(Sender: TObject);
var
str_fee,str_op,str_zhfee,str_zhop:widestring;
Str:String;
aAdoQuery:TAdoQuery;
begin
aAdoQuery:=CreateAdoQuery;
with aAdoQuery do
try
memtblItems.Close;
memtblItems.Open;
memtblItems.EmptyTable;
memtblItems.DisableControls;
Close;SQL.Clear;
SQL.Add('select v_op_bscard_All.<2E><><EFBFBD><EFBFBD>, v_op_bscard_All.<2E><><EFBFBD><EFBFBD><E1B5A5>, v_op_bscard_All.ί<>б<EFBFBD><D0B1><EFBFBD>, v_op_bscard_All.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
SQL.Add(',t_ch_fee.ch_id,t_ch_fee.<2E>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>,t_ch_fee.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,t_ch_fee.<2E><><EFBFBD><EFBFBD>,t_ch_fee.<2E>ұ<EFBFBD>,t_ch_fee.<2E><><EFBFBD><EFBFBD>');
SQL.Add('from V_op_bscard_All');
SQL.Add('left join t_ch_fee on t_ch_fee.<2E><><EFBFBD><EFBFBD> = v_op_bscard_All.<2E><><EFBFBD><EFBFBD>');
SQL.Add('where t_ch_fee.<2E><><EFBFBD><EFBFBD>=''<27><>'' and isnull(t_ch_fee.<2E><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>+t_ch_fee.<2E><><EFBFBD>뿪Ʊ,0)=0 and isnull(Ԥ<><D4A4><EFBFBD>ɱ<EFBFBD>,0)=0');
if ComboBox1.ItemIndex=0 then
SQL.Add(' and V_op_bscard_All.<2E><><EFBFBD><EFBFBD>״̬=''<27><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD>'' ');
if ComboBox2.ItemIndex=0 then
SQL.Add(' and V_op_bscard_All.<2E><><EFBFBD><EFBFBD> in (select distinct <20><><EFBFBD><EFBFBD> from t_ch_fee where isnull(<28><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>+<2B><><EFBFBD>뿪Ʊ,0)<>0 and <20><><EFBFBD><EFBFBD>=''<27><>'')')
else
if ComboBox2.ItemIndex=1 then
begin
SQL.Add(' and V_op_bscard_All.<2E><><EFBFBD><EFBFBD> in (select distinct <20><><EFBFBD><EFBFBD> from t_ch_fee where isnull(<28><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>+<2B><><EFBFBD>뿪Ʊ,0)<>0 and <20><><EFBFBD><EFBFBD>=''<27><>'')');
SQL.Add(' and V_op_bscard_All.<2E><><EFBFBD><EFBFBD> in (select distinct <20><><EFBFBD><EFBFBD> from t_ch_fee where isnull(<28><><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,0)<>0 and <20><><EFBFBD><EFBFBD>=''<27><>'')');
end;
if RxDBLookupCombo5.DisplayValues[1]<>'' then
SQL.Add(' and t_ch_fee.<2E>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>='''+RxDBLookupCombo5.DisplayValues[1]+'''');
if Edit4.text<>''then
SQL.Add(' and v_op_bscard_All.ί<>б<EFBFBD><D0B1><EFBFBD> like '''+'%'+Edit4.text+'%''');
if Edit2.text<>''then
SQL.Add(' and v_op_bscard_All.<2E><><EFBFBD><EFBFBD><E1B5A5> like '''+'%'+Edit2.text+'%''');
if Edit16.text<>''then
SQL.Add(' and (v_op_bscard_All.<2E><><EFBFBD><EFBFBD><E1B5A5> like '''+'%'+Edit2.text+'%'' or ί<>б<EFBFBD><D0B1><EFBFBD> like '''+'%'+Edit4.text+'%'' )');
if wwDBDateTimePicker1.text<>''then
SQL.Add(' and v_op_bscard_All.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>='''+wwDBDateTimePicker1.text+'''');
if wwDBDateTimePicker2.text<>''then
SQL.Add(' and v_op_bscard_All.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><='''+wwDBDateTimePicker2.text+'''');
if RxDBLookupCombo16.DisplayValues[1]<>'' then
if wwDBComboBox42.Text<>'' then
begin
if wwDBComboBox42.Text='<27><><EFBFBD><EFBFBD>' then
SQL.Add(' and t_ch_fee.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>='''+RxDBLookupCombo16.DisplayValues[1]+'''')
else
if wwDBComboBox42.Text='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' then
SQL.Add(' and t_ch_fee.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><>'''+RxDBLookupCombo16.DisplayValues[1]+'''')
else
SQL.Add(' and t_ch_fee.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> like '''+'%'+RxDBLookupCombo16.DisplayValues[1]+'%''');
end;
SQL.Add(' order by v_op_bscard_All.ί<>б<EFBFBD><D0B1><EFBFBD>');
Open;First;
while not eof do
begin
memtblItems.Insert;
memtblItems.FieldByName('CH_ID').AsInteger:=FieldByName('CH_ID').AsInteger;
memtblItems.FieldByName('ѡ<><D1A1>').AsBoolean:=false;
memtblItems.FieldByName('<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>').AsString:=FieldByName('<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>').AsString;
memtblItems.FieldByName('<27><><EFBFBD><EFBFBD><E1B5A5>').AsString:=FieldByName('<27><><EFBFBD><EFBFBD><E1B5A5>').AsString;
memtblItems.FieldByName('ί<>б<EFBFBD><D0B1><EFBFBD>').AsString:=FieldByName('ί<>б<EFBFBD><D0B1><EFBFBD>').AsString;
memtblItems.FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').AsString:=FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').AsString;
memtblItems.FieldByName('<27>ұ<EFBFBD>').AsString:=FieldByName('<27>ұ<EFBFBD>').AsString;
memtblItems.FieldByName('<27><><EFBFBD><EFBFBD>').AsFloat:=s_w(2,FieldByName('<27><><EFBFBD><EFBFBD>').AsFloat);
// memtblItems.FieldByName('<27><><EFBFBD><EFBFBD>').AsFloat:=s_w(2,FieldByName('<27><><EFBFBD><EFBFBD>').AsFloat/1.06);
memtblItems.FieldByName('<27><>˰<EFBFBD><CBB0><EFBFBD><EFBFBD>').AsFloat:=FieldByName('<27><><EFBFBD><EFBFBD>').AsFloat;
memtblItems.FieldByName('<27><><EFBFBD><EFBFBD>').AsFloat:=FieldByName('<27><><EFBFBD><EFBFBD>').AsFloat;
memtblItems.FieldByName('<27><><EFBFBD><EFBFBD>').AsString:=FieldByName('<27><><EFBFBD><EFBFBD>').AsString;
memtblItems.FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').AsString:=FormatdateTime('YYYY-MM-DD',FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').AsDateTime);
memtblItems.Post;
Next;
end;
finally
memtblItems.EnableControls;
FreeAndNil(aAdoQuery);
end;
end;
procedure Tfrm_ch_precost.bsSkinButton13Click(Sender: TObject);
var
book1:Tbookmark;
aAdoQuery:TAdoQuery;
begin
if memtblItems.IsEmpty then
exit;
try
book1:=memtblItems.GetBookmark;
memtblItems.DisableControls;
with memtblItems do
begin
First;
while not Eof do
begin
Edit;
memtblItems.FieldByName('ѡ<><D1A1>').AsBoolean:=true;
Post;
Next;
end;
end;
finally
memtblItems.EnableControls;
memtblItems.GotoBookmark(book1);
end;
end;
procedure Tfrm_ch_precost.bsSkinButton14Click(Sender: TObject);
var
book1:Tbookmark;
begin
if memtblItems.IsEmpty then
exit;
try
book1:=memtblItems.GetBookmark;
memtblItems.DisableControls;
with memtblItems do
begin
First;
while not Eof do
begin
Edit;
memtblItems.FieldByName('ѡ<><D1A1>').AsBoolean:=False;
Post;
Next;
end;
end;
finally
memtblItems.EnableControls;
memtblItems.GotoBookmark(book1);
end;
end;
procedure Tfrm_ch_precost.bsSkinButton15Click(Sender: TObject);
var
aAdoQuery,bAdoQuery:TAdoQuery;
begin
if t_ch_precost=nil then
exit;
if (t_ch_precost.State=dsinsert)or(t_ch_precost.State=dsedit) then
t_ch_precost.post;
if memtblItems.IsEmpty then
exit;
if (t_ch_precost.FieldByName('<27><><EFBFBD><EFBFBD>״̬').asstring='<27><><EFBFBD><EFBFBD>ƾ֤') then
begin
showmessage('<27>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>ƾ֤<C6BE><D6A4><EFBFBD>ܼ<EFBFBD><DCBC><EFBFBD>');
exit;
end;
aAdoQuery:=CreateAdoQuery;
with aAdoQuery do
begin
Close;SQL.Clear;
SQL.Add('Insert into t_ch_fee_do_precost (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,CH_ID ,<2C>ұ<EFBFBD>,<2C><><EFBFBD><EFBFBD>ʼ<D4AD><CABC><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>)');
SQL.Add('values (:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,:ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,:CH_ID ,:<3A>ұ<EFBFBD>,:<3A><><EFBFBD><EFBFBD> ,:ԭʼ<D4AD><CABC><EFBFBD><EFBFBD>,:<3A><><EFBFBD><EFBFBD>)');
end;
bAdoQuery:=CreateAdoQuery;
with bAdoQuery do
begin
Close;SQL.Clear;
SQL.Add('update t_ch_fee');
SQL.Add('set Ԥ<><D4A4><EFBFBD>ɱ<EFBFBD>=:Ԥ<><D4A4><EFBFBD>ɱ<EFBFBD>');
SQL.Add('where Ch_id=:ch_id');
end;
try
frm_main.db.BeginTrans;
memtblItems.DisableControls;
with memtblItems do
begin
First;
while not Eof do
begin
if (FieldByName('ѡ<><D1A1>').AsBoolean) and (t_ch_precost.FieldByName('<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>').AsString=FieldByName('<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>').AsString) then
begin
aAdoQuery.Close;
aAdoQuery.Parameters.ParamByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').Value:=t_ch_precost.FieldByName('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').AsString;
aAdoQuery.Parameters.ParamByName('ҵ<><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>').Value:=FieldByName('<27><><EFBFBD><EFBFBD>').AsString;
aAdoQuery.Parameters.ParamByName('CH_ID').Value:=FieldByName('CH_ID').AsInteger;
aAdoQuery.Parameters.ParamByName('<27>ұ<EFBFBD>').Value:=FieldByName('<27>ұ<EFBFBD>').AsString;
aAdoQuery.Parameters.ParamByName('<27><><EFBFBD><EFBFBD>').Value:=FieldByName('<27><><EFBFBD><EFBFBD>').AsFloat;
aAdoQuery.Parameters.ParamByName('ԭʼ<D4AD><CABC><EFBFBD><EFBFBD>').Value:=FieldByName('<27><><EFBFBD><EFBFBD>').AsFloat;
aAdoQuery.Parameters.ParamByName('<27><><EFBFBD><EFBFBD>').Value:='1';
aAdoQuery.ExecSQL;
bAdoQuery.Close;
bAdoQuery.Parameters.ParamByName('CH_ID').Value:=FieldByName('CH_ID').AsInteger;
bAdoQuery.Parameters.ParamByName('Ԥ<><D4A4><EFBFBD>ɱ<EFBFBD>').Value:=FieldByName('<27><><EFBFBD><EFBFBD>').AsFloat;
bAdoQuery.ExecSQL;
end;
Next;
end;
end;
UpdateBillAmt;
frm_main.db.CommitTrans;
finally
if frm_main.db.InTransaction then
begin
frm_main.db.RollbackTrans;
end;
memtblItems.EnableControls;
FreeAndNil(aAdoQuery);
FreeAndNil(bAdoQuery);
t_ch_fee_do_precost.Requery;
bsSkinButton7Click(Sender);
end;
end;
procedure Tfrm_ch_precost.dxDBGrid3SelectedCountChange(Sender: TObject);
var
i,k:integer;
DR,CR,USDDR,USDCR,NDR,NCR,NUSDDR,NUSDCR,OTDR,OTCR,NOTDR,NOTCR:Double;
aFieldName:string;
begin
{
aFieldName:='<27><><EFBFBD><EFBFBD>';
DR:=0;
CR:=0;
USDDR:=0;
USDCR:=0;
NDR:=0;
NCR:=0;
NUSDDR:=0;
NUSDCR:=0;
OTDR:=0;
OTCR:=0;
NOTDR:=0;
NOTCR:=0;
if memtblItems.IsEmpty then
exit;
if dxDBGrid3.SelectedCount>=1 then
begin
for i:=0 to dxDBGrid3.SelectedCount-1 do
begin
memtblItems.GotoBookmark(pointer(dxDBGrid3.selectedrows[i]));
if memtblItems.FieldByName('<27>ұ<EFBFBD>').AsString='USD' then
begin
USDCR:=USDCR+memtblItems.fieldByName(aFieldName).AsFloat;
end
else
begin
CR:=CR+memtblItems.fieldByName(aFieldName).AsFloat;
end;
end;
end
else
begin
memtblItems.GotoBookmark(pointer(dxDBGrid3.selectedrows[i]));
if memtblItems.FieldByName('<27>ұ<EFBFBD>').AsString='USD' then
begin
USDCR:=USDCR+memtblItems.fieldByName(aFieldName).AsFloat;
end
else
begin
CR:=CR+memtblItems.fieldByName(aFieldName).AsFloat;
end;
end;
bsSkinLabel1.Caption:='<27><>ѡ<EFBFBD><D1A1> USD:'+FormatFloat('#,##,0.00;-0.00',USDCR)+',RMB:'+FormatFloat('#,##,0.00;-0.00',CR);
}
end;
procedure Tfrm_ch_precost.bsSkinButton16Click(Sender: TObject);
var
i:integer;
aAdoQuery,bAdoQuery,cAdoQuery:TAdoQuery;
begin
if t_ch_fee_do_precost.IsEmpty then
exit;
if (t_ch_precost.FieldByName('<27><><EFBFBD><EFBFBD>״̬').asstring='<27><><EFBFBD><EFBFBD>ƾ֤') then
begin
showmessage('<27><>ǰҵ<C7B0><D2B5><EFBFBD><EFBFBD>״̬Ϊ:'+t_ch_precost.FieldByName('<27><><EFBFBD><EFBFBD>״̬').asstring+'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸Ļ<DEB8>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
exit;
end;
aAdoQuery:=CreateAdoQuery;
with aAdoQuery do
begin
Close;SQL.Clear;
SQL.Add('delete from t_ch_fee_do_precost');
SQL.Add('where DO_ID=:DO_ID');
end;
bAdoQuery:=CreateAdoQuery;
with bAdoQuery do
begin
Close;SQL.Clear;
SQL.Add('update t_ch_fee');
SQL.Add('set Ԥ<><D4A4><EFBFBD>ɱ<EFBFBD><><D4A4><EFBFBD>ɱ<EFBFBD>-:Ԥ<><D4A4><EFBFBD>ɱ<EFBFBD>');
SQL.Add('where Ch_id=:ch_id');
end;
cAdoQuery:=CreateAdoQuery;
with cAdoQuery do
begin
Close;SQL.Clear;
SQL.Add('select <20><><EFBFBD>ֳɱ<D6B3> from t_ch_fee');
SQL.Add('where Ch_id=:ch_id ');
end;
try
frm_main.db.BeginTrans;
if dxDBGrid2.SelectedCount>=1 then
begin
for i:=0 to dxDBGrid2.SelectedCount-1 do
begin
t_ch_fee_do_precost.GotoBookmark(pointer(dxDBGrid2.selectedrows[i]));
cAdoQuery.Close;
cAdoQuery.Parameters.ParamByName('CH_ID').Value:=t_ch_fee_do_precost.FieldByName('CH_ID').AsInteger;
cAdoQuery.Open;
if cAdoQuery.FieldByName('<27><><EFBFBD>ֳɱ<D6B3>').AsFloat=0 then
begin
aAdoQuery.Close;
aAdoQuery.Parameters.ParamByName('DO_ID').Value:=t_ch_fee_do_precost.FieldByName('DO_ID').AsInteger;
aAdoQuery.ExecSQL;
bAdoQuery.Close;
bAdoQuery.Parameters.ParamByName('CH_ID').Value:=t_ch_fee_do_precost.FieldByName('CH_ID').AsInteger;
bAdoQuery.Parameters.ParamByName('Ԥ<><D4A4><EFBFBD>ɱ<EFBFBD>').Value:=t_ch_fee_do_precost.FieldByName('<27><><EFBFBD><EFBFBD>').AsFloat;
bAdoQuery.ExecSQL;
end
else
begin
ShowMessage('<27>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ֳɱ<D6B3> <20><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>');
end;
end;
end
else
begin
cAdoQuery.Close;
cAdoQuery.Parameters.ParamByName('CH_ID').Value:=t_ch_fee_do_precost.FieldByName('CH_ID').AsInteger;
cAdoQuery.Open;
if cAdoQuery.FieldByName('<27><><EFBFBD>ֳɱ<D6B3>').AsFloat=0 then
begin
aAdoQuery.Close;
aAdoQuery.Parameters.ParamByName('DO_ID').Value:=t_ch_fee_do_precost.FieldByName('DO_ID').AsInteger;
aAdoQuery.ExecSQL;
bAdoQuery.Close;
bAdoQuery.Parameters.ParamByName('CH_ID').Value:=t_ch_fee_do_precost.FieldByName('CH_ID').AsInteger;
bAdoQuery.Parameters.ParamByName('Ԥ<><D4A4><EFBFBD>ɱ<EFBFBD>').Value:=t_ch_fee_do_precost.FieldByName('<27><><EFBFBD><EFBFBD>').AsFloat;
bAdoQuery.ExecSQL;
end
else
begin
ShowMessage('<27>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ֳɱ<D6B3> <20><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>');
end;
end;
UpdateBillAmt;
frm_main.db.CommitTrans;
finally
if frm_main.db.InTransaction then
begin
frm_main.db.RollbackTrans;
end;
FreeAndNil(aAdoQuery);
FreeAndNil(bAdoQuery);
FreeAndNil(cAdoQuery);
t_ch_fee_do_precost.Requery;
end;
end;
procedure Tfrm_ch_precost.bsSkinButton17Click(Sender: TObject);
begin
if t_ch_precost=nil then
exit;
if (t_ch_precost.State=dsinsert)or(t_ch_precost.State=dsedit) then
t_ch_precost.post;
if t_ch_fee_do_precost.IsEmpty then
exit;
if (t_ch_precost.FieldByName('<27><><EFBFBD><EFBFBD>״̬').asstring='<27><><EFBFBD><EFBFBD>ƾ֤') then
begin
showmessage('<27>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>ƾ֤');
exit;
end;
NewDCVou_One;
t_ch_precost.Refresh;
end;
procedure Tfrm_ch_precost.dxdbgrid1Column2CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean; var ADone: Boolean);
begin
if (ANode.strings[dxDBGrid1Column2.Index]='¼<><C2BC>״̬') then
AColor :=clwhite
else if (ANode.strings[dxDBGrid1Column2.Index]='<27><><EFBFBD><EFBFBD>ƾ֤') then
AColor :=$00DDF21C;
AFont.Color:=clblack;
end;
procedure Tfrm_ch_precost.DBEdit9Change(Sender: TObject);
begin
if t_ch_precost.FieldByName('<27><><EFBFBD><EFBFBD>״̬').asstring='<27><><EFBFBD><EFBFBD>ƾ֤' then
DBEdit9.Color :=$00DDF21C
else DBEdit9.Color :=clwhite;
end;
procedure Tfrm_ch_precost.dxDBGrid3CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean; var ADone: Boolean);
begin
if uppercase(ANode.Strings[dxDBGrid3Column8.Index])='TRUE' then
begin
AColor:=clSkyBlue;
exit;
end;
end;
procedure Tfrm_ch_precost.dxDBGrid3DblClick(Sender: TObject);
begin
fee_view(memtblItems.fieldbyname('<27><><EFBFBD><EFBFBD>').asstring);
end;
end.