D10myYicheng/财务管理(Financial.dll)/U_CWYFList.pas
2025-05-27 14:08:09 +08:00

1493 lines
38 KiB
ObjectPascal
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

unit U_CWYFList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB,
cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls,
cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls,
cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid,
cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common,
RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdFTP, ShellAPI, IniFiles, cxCheckBox, cxCalendar, cxButtonEdit,
cxTextEdit, cxPC, cxDropDownEdit, cxLookAndFeels, cxLookAndFeelPainters,
cxNavigator, dxBarBuiltInMenu, dxSkinsCore, dxSkinsDefaultPainters,
dxDateRanges, U_BaseList, Vcl.Menus, RM_e_Xls, Clipbrd, StrUtils, ComObj,
cxContainer;
type
FdDy = record
inc: integer; //客户端套接字句柄
FDdys: string[32]; //客户端套接字
FdDysName: string[32]; //客户端套接字
end;
TfrmCWYFList = class(TfrmBaseList)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
btnDel: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
Panel1: TPanel;
ADOQueryMain: TADOQuery;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
Label3: TLabel;
FactoryName: TEdit;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v2CRTime: TcxGridDBColumn;
v2Qty: TcxGridDBColumn;
v2QtyUnit: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
begdate: TDateTimePicker;
Enddate: TDateTimePicker;
GPM_1: TcxGridPopupMenu;
DS_1: TDataSource;
CDS_1: TClientDataSet;
btnAdd: TToolButton;
v2Column1: TcxGridDBColumn;
VYB: TcxGridDBColumn;
v2FactoryName: TcxGridDBColumn;
v2Note: TcxGridDBColumn;
v2P_CodeName: TcxGridDBColumn;
v2ps: TcxGridDBColumn;
v2P_Color: TcxGridDBColumn;
P_CodeName: TEdit;
Label4: TLabel;
Button1: TButton;
Label8: TLabel;
P_Color: TEdit;
v2P_Code: TcxGridDBColumn;
CheckBox1: TCheckBox;
Label9: TLabel;
BatchNo: TEdit;
Label6: TLabel;
P_Code: TEdit;
v2OrderNo: TcxGridDBColumn;
v2Column14: TcxGridDBColumn;
v2P_HX: TcxGridDBColumn;
Label1: TLabel;
P_HX: TEdit;
cxTabControl1: TcxTabControl;
Label11: TLabel;
OrderNo: TEdit;
v2BZType: TcxGridDBColumn;
v2Column2: TcxGridDBColumn;
v2P_Spec: TcxGridDBColumn;
v2BatchNo: TcxGridDBColumn;
v2Column3: TcxGridDBColumn;
btnChk: TToolButton;
btnNoChk: TToolButton;
VC_chkstatus: TcxGridDBColumn;
v2Column4: TcxGridDBColumn;
Tv1Column1: TcxGridDBColumn;
Tv1Column2: TcxGridDBColumn;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
Tv1Column5: TcxGridDBColumn;
Tv1Column4: TcxGridDBColumn;
ToolButton1: TToolButton;
Tv1Column6: TcxGridDBColumn;
ToolButton2: TToolButton;
Tv1Column7: TcxGridDBColumn;
Tv1Column9: TcxGridDBColumn;
ToolButton3: TToolButton;
RMDB_Grid: TRMDBDataSet;
RMGrid: TRMGridReport;
ADOQueryPrint: TADOQuery;
ToolButton4: TToolButton;
RMXLSExport1: TRMXLSExport;
N2: TMenuItem;
Label2: TLabel;
FromDataID1: TEdit;
N3: TMenuItem;
ToolButton5: TToolButton;
Tv1Column11: TcxGridDBColumn;
h1: TMenuItem;
Tv1Column13: TcxGridDBColumn;
Tv1Column14: TcxGridDBColumn;
Tv1Column15: TcxGridDBColumn;
Tv1Column16: TcxGridDBColumn;
Tv1Column17: TcxGridDBColumn;
ToolButton6: TToolButton;
OpenDialog1: TOpenDialog;
Panel2: TPanel;
Label5: TLabel;
factoryname1: TcxButtonEdit;
Button2: TButton;
Tv1Column3: TcxGridDBColumn;
N4: TMenuItem;
N5: TMenuItem;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure btnDelClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure btnAddClick(Sender: TObject);
procedure cxGridDBColumn6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure cxTabControl1Change(Sender: TObject);
procedure btnChkClick(Sender: TObject);
procedure btnNoChkClick(Sender: TObject);
procedure FactoryNameKeyPress(Sender: TObject; var Key: Char);
procedure v2Column3PropertiesEditValueChanged(Sender: TObject);
procedure Tv1Column3PropertiesEditValueChanged(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ButtonEdit(Sender: TObject; AButtonIndex: Integer);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure v2QtyUnitPropertiesEditValueChanged(Sender: TObject);
procedure h1Click(Sender: TObject);
procedure Tv2DZYuePropertiesEditValueChanged(Sender: TObject);
procedure Tv1Column16PropertiesEditValueChanged(Sender: TObject);
procedure v2Column1PropertiesEditValueChanged(Sender: TObject);
procedure v2Column14PropertiesEditValueChanged(Sender: TObject);
procedure VYBPropertiesEditValueChanged(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
procedure factoryname1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure Button2Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
private
{ Private declarations }
procedure InitGrid();
public
fFlag: integer;
dFdDy: array[0..20] of FdDy; //客户端连接数组
{ Public declarations }
RKFlag, FCYID, fmanage, FZKType, canshu1: string;
end;
implementation
uses
U_DataLink, U_RTFun, U_ZDYHelp, U_GYSSel;
{$R *.dfm}
procedure TfrmCWYFList.InitGrid();
var
WSql: string;
begin
WSql := SGetFilters(Panel1, 1, 2);
if Trim(WSql) <> '' then
WSql := ' and ' + WSql;
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
SQL.Clear;
Filtered := False;
sql.Add(' select A.*');
// sql.Add(' ,GcHuaNo=(select GcHuaNo from V_CP_CPBP Y where Y.CYNo=A.P_Code)');
// sql.Add(' ,FaType=(select FactType from Company X where X.CoCode=A.FactoryNo and X.Valid=''Y'')');
sql.Add(' from CW_Money_CR A');
sql.Add(' where A.CRType=''应付款登记'' ');
case cxTabControl1.TabIndex of
0:
begin
sql.Add(' and isnull(BZType,'''')=''$'' ');
end;
1:
begin
sql.Add(' and isnull(BZType,'''')=''¥'' ');
end;
2:
begin
sql.Add(' and isnull(BZType,'''')=''€'' ');
end;
end;
if CheckBox1.Checked then
begin
sql.Add(' and A.CRTime>=''' + FormatDateTime('yyyy-MM-dd', begdate.DateTime) + ''' ');
sql.Add(' and CRTime<''' + FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 1) + ''' ');
end;
sql.Add(WSql);
// showmessage(sql.text);
Open;
end;
SCreateCDS(ADOQueryMain, CDS_1);
SInitCDSData(ADOQueryMain, CDS_1);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmCWYFList.N1Click(Sender: TObject);
var
FValue, FFValue, FColumn, FFColumn, FCWID: string;
begin
FCWID := CDS_1.FieldByName('CWID').AsString;
FColumn := Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName;
FValue := Trim(CDS_1.fieldbyname(FColumn).AsString);
if FColumn <> 'Price' then
begin
Application.MessageBox('目前只能替换单价!', '提示', 0);
Exit;
end;
with CDS_1 do
begin
DisableControls;
First;
while not Eof do
begin
if FieldByName('SSel').AsBoolean and (FieldByName('status').AsString = '0') and (FieldByName('DZFlag').AsBoolean = False) then
begin
Edit;
if FValue = '' then
begin
CDS_1.FieldByName(FColumn).Value := null;
end
else
begin
CDS_1.FieldByName(FColumn).Value := FValue;
end;
Post;
if FColumn = 'Price' then
begin
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update CW_Money_CR set Price=' + FValue);
sql.Add(', Money= Qty * ' + FValue + ' + isnull(QTFee,0)');
sql.Add('where CWID=' + quotedstr(Trim(CDS_1.fieldbyname('CWID').AsString)));
ExecSQL;
end;
with CDS_1 do
begin
Edit;
FieldByName('Money').Value := FieldByName('Price').AsFloat * FieldByName('Qty').AsFloat + FieldByName('QTFee').AsFloat;
Post;
end;
end;
end;
Next;
end;
CDS_1.Locate('CWID', FCWID, []);
EnableControls;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmCWYFList.N2Click(Sender: TObject);
begin
Clipboard.SetTextBuf(PChar(Trim(CDS_1.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)));
end;
procedure TfrmCWYFList.N3Click(Sender: TObject);
begin
with CDS_1 do
begin
DisableControls;
First;
while not Eof do
begin
if FieldByName('SSel').AsBoolean then
begin
Edit;
CDS_1.FieldByName('DZFlag').Value := True;
Post;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update CW_Money_CR set DZFlag=1');
sql.Add('where CWID=' + quotedstr(Trim(CDS_1.fieldbyname('CWID').AsString)));
ExecSQL;
end;
end;
Next;
end;
EnableControls;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmCWYFList.N4Click(Sender: TObject);
begin
inherited;
SelOKNoFiler(TV1, TRUE);
end;
procedure TfrmCWYFList.N5Click(Sender: TObject);
begin
inherited;
SelOKNoFiler(TV1, false);
end;
procedure TfrmCWYFList.FactoryNameKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
InitGrid();
end;
end;
procedure TfrmCWYFList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmCWYFList.TBCloseClick(Sender: TObject);
begin
WriteCxGrid('应付款登记GY1', TV1, '财务管理');
Close;
end;
procedure TfrmCWYFList.btnDelClick(Sender: TObject);
begin
if CDS_1.IsEmpty then
Exit;
if Trim(CDS_1.fieldbyname('FromDataID1').AsString) <> '' then
begin
Application.MessageBox('自动生成数据,不能删除!', '提示', 0);
Exit;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' select * from CW_Money_CR');
sql.Add(' where CWID=''' + Trim(CDS_1.fieldbyname('CWID').AsString) + '''');
SQL.Add(' and status=''1''');
Open;
end;
if ADOQueryCmd.IsEmpty = False then
begin
Application.MessageBox('已审核数据,不能删除!', '提示', 0);
Exit;
end;
if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then
Exit;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add(' insert into ZDel_CW_Money_CR ');
sql.Add(' select * from CW_Money_CR where CWID=''' + Trim(CDS_1.fieldbyname('CWID').AsString) + '''');
sql.Add(' Update ZDel_CW_Money_CR Set DelTime=getdate(),DelName=''' + Trim(DName) + ''',DelCode=''' + Trim(DCode) + '''');
sql.Add(' where CWID=''' + Trim(CDS_1.fieldbyname('CWID').AsString) + '''');
sql.Add(' delete CW_Money_CR where CWID=''' + Trim(CDS_1.fieldbyname('CWID').AsString) + '''');
execsql;
end;
ADOQueryCmd.Connection.CommitTrans;
CDS_1.Delete;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('删除失败!', '提示', 0);
end;
end;
procedure TfrmCWYFList.FormShow(Sender: TObject);
begin
inherited;
ReadCxGrid('应付款登记GY1', TV1, '财务管理');
Enddate.DateTime := SGetServerDate(ADOQueryTemp);
begdate.DateTime := Enddate.DateTime;
InitGrid();
end;
procedure TfrmCWYFList.h1Click(Sender: TObject);
begin
with CDS_1 do
begin
DisableControls;
First;
while not Eof do
begin
if FieldByName('SSel').AsBoolean then
begin
Edit;
CDS_1.FieldByName('DZFlagHZ').Value := True;
Post;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update CW_Money_CR set DZFlagHZ=1');
sql.Add('where CWID=' + quotedstr(Trim(CDS_1.fieldbyname('CWID').AsString)));
ExecSQL;
end;
end;
Next;
end;
EnableControls;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmCWYFList.TBRafreshClick(Sender: TObject);
begin
begdate.SetFocus;
InitGrid();
end;
procedure TfrmCWYFList.ToolButton1Click(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
Exit;
TcxGridToExcel(self.Caption, cxgrid1);
end;
procedure TfrmCWYFList.ToolButton2Click(Sender: TObject);
var
filepath: string;
mBegdate, mEnddate: string;
begin
mBegdate := FormatDateTime('yyyy-MM-dd', begdate.Date);
mEnddate := FormatDateTime('yyyy-MM-dd', enddate.Date);
if CDS_1.IsEmpty then
exit;
try
ExportFtErpFile('应付清单.rmf', ADOQueryTemp);
filepath := ExtractFilePath(Application.ExeName) + 'report\应付清单.rmf';
if not FileExists(Pchar(filepath)) then
begin
application.MessageBox(pchar('文件[' + filepath + ']不存在!'), '提示信息', MB_IConError);
exit;
end;
RmVariables['begDate'] := FormatDateTime('yyyy-mm-dd', begDate.Date);
RmVariables['enddate'] := FormatDateTime('yyyy-mm-dd', enddate.Date);
RMVariables['ZDR'] := trim(DName);
RMGrid.LoadFromFile(filepath);
RMGrid.ShowReport;
finally
end;
end;
procedure TfrmCWYFList.ToolButton3Click(Sender: TObject);
var
filepath, maxId, FCWIDS: string;
mBegdate, mEnddate: string;
begin
if GetLSNo(ADOQueryCmd, maxId, 'PJ', 'CW_Money_CR', 4, 1) = False then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('取最大号失败!', '提示', 0);
Exit;
end;
FCWIDS := '';
with CDS_1 do
begin
DisableControls;
First;
while not Eof do
begin
if CDS_1.fieldbyname('SSel').AsBoolean then
begin
if FCWIDS = '' then
FCWIDS := QuotedStr(Trim(CDS_1.fieldbyname('CWID').AsString))
else
FCWIDS := FCWIDS + ',' + QuotedStr(Trim(CDS_1.fieldbyname('CWID').AsString));
Edit;
FieldByName('ZPID').Value := maxId;
Post;
end;
Next;
end;
EnableControls;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('UPDATE CW_Money_CR set ZPID=' + QuotedStr(maxId));
sql.Add('where isnull(ZPID,'''')='''' and CWID in (' + FCWIDS + ') ');
// ShowMessage(sql.Text);
ExecSQL;
end;
end;
procedure TfrmCWYFList.ToolButton4Click(Sender: TObject);
var
filepath, maxId, FCWIDS: string;
mBegdate, mEnddate: string;
begin
with ADOQueryPrint do
begin
Close;
SQL.Clear;
sql.Add('exec P_CW_Print_HBPJ @ZPID=' + QuotedStr(Trim(CDS_1.fieldbyname('ZPID').AsString)));
Open;
end;
try
ExportFtErpFile('合并票据.rmf', ADOQueryTemp);
filepath := ExtractFilePath(Application.ExeName) + 'report\合并票据.rmf';
if not FileExists(Pchar(filepath)) then
begin
application.MessageBox(pchar('文件[' + filepath + ']不存在!'), '提示信息', MB_IConError);
exit;
end;
RmVariables['begDate'] := FormatDateTime('yyyy-mm-dd', begDate.Date);
RmVariables['enddate'] := FormatDateTime('yyyy-mm-dd', enddate.Date);
RMVariables['ZDR'] := trim(DName);
RM1.LoadFromFile(filepath);
RM1.ShowReport;
finally
end;
end;
procedure TfrmCWYFList.ToolButton5Click(Sender: TObject);
var
filepath, maxId, FCWIDS: string;
mBegdate, mEnddate: string;
begin
FCWIDS := '';
with CDS_1 do
begin
DisableControls;
First;
while not Eof do
begin
if CDS_1.fieldbyname('SSel').AsBoolean then
begin
if FCWIDS = '' then
FCWIDS := QuotedStr(Trim(CDS_1.fieldbyname('CWID').AsString))
else
FCWIDS := FCWIDS + ',' + QuotedStr(Trim(CDS_1.fieldbyname('CWID').AsString));
Edit;
FieldByName('ZPID').Value := '';
Post;
end;
Next;
end;
EnableControls;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('UPDATE CW_Money_CR set ZPID=null');
sql.Add('where CWID in (' + FCWIDS + ') ');
// ShowMessage(sql.Text);
ExecSQL;
end;
end;
procedure TfrmCWYFList.ToolButton6Click(Sender: TObject);
var
excelApp, WorkBook: Variant;
i, j, k, LX, ExcelRowCount: integer;
maxId, FCPID, FCPName, MAXNO, t1, t2, t3, MBZType: string;
begin
try
excelApp := CreateOleObject('Excel.Application');
openDialog1.Filter := '*.CSV;*.xls';
if opendialog1.Execute then
begin
WorkBook := excelApp.WorkBooks.Open(OpenDialog1.FileName);
end
else
exit;
excelApp.Visible := false;
ExcelRowCount := WorkBook.WorkSheets[1].UsedRange.Rows.Count;
except
application.MessageBox('加载EXCEL错误', '错误信息', MB_ICONERROR);
exit;
end;
try
k := 0;
for i := 1 to 50 do
begin
if trim(excelApp.Cells[1, i].value) = '' then
continue;
//遍历界面绑定界面中显示的字段和名称
for j := 0 to Tv1.ColumnCount - 1 do
begin
if trim(excelApp.Cells[1, i].value) = trim(Tv1.Columns[j].Caption) then
begin
dFdDy[k].inc := i;
dFdDy[k].FDdys := trim(Tv1.Columns[j].DataBinding.FieldName);
dFdDy[k].FdDysName := trim(Tv1.Columns[j].Caption);
end;
end;
k := k + 1;
end;
except
application.MessageBox('加载数组错误!', '错误信息', MB_ICONERROR);
exit;
end;
case cxTabControl1.TabIndex of
0:
begin
MBZType := '$';
end;
1:
begin
MBZType := '¥';
end;
2:
begin
MBZType := '€';
end;
end;
ADOQueryCmd.Connection.BeginTrans;
panel2.Visible := true;
try
for i := 2 to ExcelRowCount do
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from CW_Money_CR where 1=2');
open;
end;
with ADOQueryCmd do
begin
ADOQueryCmd.Append;
if GetLSNo(ADOQuerytemp, maxId, 'YFDR', 'CW_Money_CR', 4, 1) = False then
begin
Application.MessageBox('取最大号失败!', '提示', 0);
Exit;
end;
FieldByName('CWID').Value := Trim(maxId);
FieldByName('Filler').Value := Trim(DName);
FieldByName('CRType').Value := '应付款登记';
FieldByName('CRFlag').Value := '应付付';
FieldByName('QtyFlag').Value := 1;
FieldByName('BZType').Value := MBZType;
FieldByName('CWType').Value := '导入生成';
end;
for j := 0 to k - 1 do
begin
if (trim(dFdDy[j].FDdys) <> '') then
begin
ADOQueryCmd.fieldbyname(dFdDy[j].FDdys).Value := excelApp.Cells[i, dFdDy[j].inc].Value;
end;
end;
ADOQueryCmd.Post;
end;
WorkBook.Close;
excelApp.Quit;
excelApp := Unassigned;
WorkBook := Unassigned;
ADOQueryCmd.Connection.CommitTrans;
application.MessageBox('导入成功!', '提示信息');
panel2.Visible := false;
InitGrid();
except
WorkBook.Close;
excelApp.Quit;
excelApp := Unassigned;
WorkBook := Unassigned;
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox('保存数据错误!', '错误信息', MB_ICONERROR);
panel2.Visible := false;
exit;
end;
end;
procedure TfrmCWYFList.btnAddClick(Sender: TObject);
var
MFactoryNo, MFactoryName, MBZType, maxId: string;
begin
if GetLSNo(ADOQueryCmd, maxId, 'YF', 'CW_Money_CR', 4, 1) = False then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('取最大号失败!', '提示', 0);
Exit;
end;
case cxTabControl1.TabIndex of
0:
begin
MBZType := '$';
end;
1:
begin
MBZType := '¥';
end;
2:
begin
MBZType := '€';
end;
end;
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'GYSNAME';
flagname := '供应商名称';
if ShowModal = 1 then
begin
with ClientDataSet1 do
begin
// MFactoryNo := Trim(Order_Main.fieldbyname('CoCode').AsString);
MFactoryName := FieldByName('ZDYName').AsString;
end;
end;
end;
finally
frmZDYHelp.Free;
end;
// try
// frmGYSSel := TfrmGYSSel.Create(Application);
// with frmGYSSel do
// begin
// if ShowModal = 1 then
// begin
// MFactoryNo := Trim(Order_Main.fieldbyname('CoCode').AsString);
// MFactoryName := Trim(Order_Main.fieldbyname('CoName').AsString);
// end;
// end;
// finally
// frmGYSSel.Free;
// end;
if trim(MFactoryName) = '' then
Exit;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from CW_Money_CR where 1<>1');
Open;
end;
with ADOQueryCmd do
begin
Append;
FieldByName('CWID').Value := Trim(maxId);
FieldByName('Filler').Value := Trim(DName);
FieldByName('CRType').Value := '应付款登记';
FieldByName('CRFlag').Value := '应付付';
FieldByName('QtyFlag').Value := 1;
FieldByName('FactoryNo').Value := MFactoryNo;
FieldByName('FactoryName').Value := MFactoryName;
FieldByName('HZFactoryNo').Value := MFactoryNo;
FieldByName('HZFactoryName').Value := MFactoryName;
FieldByName('CRTime').Value := formatdateTIme('yyyy-MM-dd', SGetServerDate(ADOQueryTemp));
FieldByName('BZType').Value := MBZType;
Post;
end;
with Self.CDS_1 do
begin
Append;
FieldByName('CWID').Value := Trim(maxId);
FieldByName('FactoryNo').Value := MFactoryNo;
FieldByName('FactoryName').Value := MFactoryName;
FieldByName('HZFactoryNo').Value := MFactoryNo;
FieldByName('HZFactoryName').Value := MFactoryName;
FieldByName('CRTime').Value := SGetServerDate(ADOQueryTemp);
FieldByName('BZType').Value := MBZType;
Post;
end;
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('增行失败!', '提示', 0);
end;
end;
procedure TfrmCWYFList.cxGridDBColumn6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
var
FQtyUnit: string;
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'OrderUnit';
flagname := '数量单位';
if ShowModal = 1 then
begin
Self.CDS_1.Edit;
FQtyUnit := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
with Self.CDS_1 do
begin
Edit;
FieldByName('QtyUnit').Value := Trim(FQtyUnit);
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update CW_Money_CR set QtyUnit=' + quotedstr(Trim(FQtyUnit)));
sql.Add('where CWID=' + quotedstr(Trim(CDS_1.fieldbyname('CWID').AsString)));
ExecSQL;
end;
end;
procedure TfrmCWYFList.Tv1Column16PropertiesEditValueChanged(Sender: TObject);
var
mvalue, FFieldName: string;
FJSQty, FQty, FQtyCha, FPrice, FQTFee, FMoney: Double;
begin
mvalue := TcxTextEdit(Sender).EditingText;
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
if Trim(mvalue) = '' then //不然清空移开焦点报错
begin
mvalue := '0';
end;
with CDS_1 do
begin
Edit;
FieldByName(FFieldName).Value := mvalue;
Post;
FJSQty := CDS_1.fieldbyname('Qty').AsFloat; //结算数量字段Qty
FQty := CDS_1.fieldbyname('FSQty').AsFloat; //数量
FQtyCha := CDS_1.fieldbyname('QTyCha').AsFloat; //调整数量,数量-调整数量=结算数量
FQTFee := CDS_1.fieldbyname('QTFee').AsFloat; //其他费
FPrice := CDS_1.fieldbyname('Price').AsFloat;
FMoney := CDS_1.fieldbyname('Money').AsFloat;
end;
if Trim(FFieldName) <> 'Qty' then
begin
FJSQty := FQty - FQtyCha;
end;
if Trim(FFieldName) <> 'Money' then
begin
FMoney := FJSQty * FPrice + FQTFee;
end;
with CDS_1 do
begin
Edit;
FieldByName('Qty').Value := FJSQty; //结算数量计算后赋值
FieldByName('Money').Value := FMoney;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update CW_Money_CR set ' + FFieldName + '=' + quotedstr(Trim(mvalue)));
if Trim(FFieldName) <> 'Qty' then
sql.Add(' ,Qty=' + FloatToStr(FJSQty));
if Trim(FFieldName) <> 'Money' then
sql.Add(' ,Money=' + FloatToStr(FMoney));
sql.Add('where CWID=' + quotedstr(Trim(CDS_1.fieldbyname('CWID').AsString)));
ExecSQL;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmCWYFList.Tv1Column3PropertiesEditValueChanged(Sender: TObject);
var
mvalue: Boolean;
FFieldName: string;
begin
mvalue := TcxCheckBox(Sender).Checked;
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
with CDS_1 do
begin
Edit;
FieldByName(FFieldName).Value := mvalue;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
if mvalue then
sql.Add('update CW_Money_CR set ' + FFieldName + '=1')
else
sql.Add('update CW_Money_CR set ' + FFieldName + '=0');
sql.Add('where CWID=' + quotedstr(Trim(CDS_1.fieldbyname('CWID').AsString)));
ExecSQL;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmCWYFList.Button2Click(Sender: TObject);
begin
inherited;
if factoryname1.Text = '' then
begin
Application.MessageBox('供应商不能为空!', '提示', 0);
exit;
end;
if CDS_1.IsEmpty then
exit;
try
with CDS_1 do
begin
DisableControls;
First;
while not Eof do
begin
if CDS_1.fieldbyname('SSel').AsBoolean then
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' select * from CW_Money_CR');
sql.Add(' where CWID=''' + Trim(CDS_1.fieldbyname('CWID').AsString) + '''');
SQL.Add(' and status=''1'' ');
Open;
end;
if ADOQueryCmd.IsEmpty = False then
begin
CDS_1.EnableControls;
Application.MessageBox('已审核数据,不能操作!', '提示', 0);
Exit;
end;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.add('update CW_Money_CR set FactoryName=''' + trim(FactoryName1.Text) + ''' ');
sql.Add(',FactoryNo=''''');
sql.add('where CWID=''' + trim(CDS_1.fieldbyname('CWID').asstring) + ''' ');
execsql;
end;
CDS_1.Edit;
CDS_1.FieldByName('FactoryName').Value := trim(FactoryName1.Text);
CDS_1.FieldByName('FactoryNo').Value := trim('''');
CDS_1.Post;
end;
Next;
end;
end;
CDS_1.EnableControls;
application.MessageBox('审核成功', '提示');
except
CDS_1.EnableControls;
application.MessageBox('审核失败', '提示');
end;
end;
procedure TfrmCWYFList.ButtonEdit(Sender: TObject; AButtonIndex: Integer);
var
FComTaiTou: string;
begin
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'GSTTDZ';
flagname := '公司抬头';
if ShowModal = 1 then
begin
FComTaiTou := Trim(ClientDataSet1.fieldbyname('ZdyName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
with Self.CDS_1 do
begin
Edit;
FieldByName('ComTaiTou').Value := Trim(FComTaiTou);
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update CW_Money_CR set ComTaiTou=' + quotedstr(Trim(FComTaiTou)));
sql.Add('where CWID=' + quotedstr(Trim(CDS_1.fieldbyname('CWID').AsString)));
ExecSQL;
end;
end;
procedure TfrmCWYFList.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
i: integer;
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select * from CW_Money_CR');
sql.Add(' where CWID=''' + Trim(CDS_1.fieldbyname('CWID').AsString) + '''');
SQL.Add(' and status=''1'' ');
Open;
end;
if not ADOQueryTemp.IsEmpty then
begin
for i := 0 to TV1.ColumnCount - 1 do
begin
if uppercase(TV1.Columns[i].DataBinding.FieldName) <> 'SSEL' then
TV1.Columns[i].Options.Editing := false;
end;
end
else
begin
for i := 0 to TV1.ColumnCount - 1 do
begin
if uppercase(TV1.Columns[i].DataBinding.FieldName) <> 'SSEL' then
TV1.Columns[i].Options.Editing := True;
end;
end;
if Trim(CDS_1.fieldbyname('FromDataID1').AsString) <> '' then
begin
v2CRTime.Options.Editing := False;
v2FactoryName.Options.Editing := False;
v2OrderNo.Options.Editing := False;
v2P_Code.Options.Editing := False;
v2P_CodeName.Options.Editing := False;
v2P_Color.Options.Editing := False;
v2P_HX.Options.Editing := False;
v2ps.Options.Editing := False;
v2Qty.Options.Editing := False;
v2QtyUnit.Options.Editing := False;
v2BZType.Options.Editing := False;
v2P_Spec.Options.Editing := False;
v2BatchNo.Options.Editing := False;
end
else
begin
v2CRTime.Options.Editing := True;
v2FactoryName.Options.Editing := True;
v2OrderNo.Options.Editing := True;
v2P_Code.Options.Editing := True;
v2P_CodeName.Options.Editing := True;
v2P_Color.Options.Editing := True;
v2P_HX.Options.Editing := True;
v2ps.Options.Editing := True;
v2Qty.Options.Editing := True;
v2QtyUnit.Options.Editing := True;
v2BZType.Options.Editing := True;
v2P_Spec.Options.Editing := True;
v2BatchNo.Options.Editing := True;
end;
end;
procedure TfrmCWYFList.Tv2DZYuePropertiesEditValueChanged(Sender: TObject);
var
mvalue, FFieldName, a, b, c, d: string;
i, j: integer;
begin
mvalue := TcxTextEdit(Sender).EditingText;
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
a := LeftStr(mvalue, 4);
b := Copy(mvalue, 5, 1);
c := Copy(mvalue, 6, 2);
// d := lenght(mvalue);
with CDS_1 do
begin
Edit;
FieldByName(FFieldName).Value := mvalue;
Post;
end;
if TryStrToInt(a, i) or TryStrToInt(c, j) or (b = '-') then
begin
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update CW_Money_CR set ' + FFieldName + '=' + quotedstr(Trim(mvalue)));
sql.Add('where CWID=' + quotedstr(Trim(CDS_1.fieldbyname('CWID').AsString)));
ExecSQL;
end;
end
else
begin
ShowMessage('格式不对');
exit;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmCWYFList.v2Column14PropertiesEditValueChanged(Sender: TObject);
var
mvalue, FFieldName: string;
FQty, FPrice, FQTFee, FMoney: Double;
begin
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
mvalue := TcxTextEdit(Sender).EditingText;
if Trim(mvalue) = '' then
begin
mvalue := '0';
end;
with CDS_1 do
begin
Edit;
FieldByName(FFieldName).Value := Trim(mvalue);
Post;
FQty := CDS_1.fieldbyname('Qty').AsFloat;
FQTFee := CDS_1.fieldbyname('QTFee').AsFloat;
FPrice := CDS_1.fieldbyname('Price').AsFloat;
FMoney := CDS_1.fieldbyname('Money').AsFloat;
end;
if Trim(FFieldName) <> 'Money' then
begin
FMoney := FQty * FPrice + FQTFee;
end;
with CDS_1 do
begin
Edit;
FieldByName('Money').Value := FMoney;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update CW_Money_CR set ' + FFieldName + '=' + Trim(mvalue));
if Trim(FFieldName) <> 'Money' then
sql.Add(' ,Money=' + FloatToStr(FMoney));
sql.Add('where CWID=' + quotedstr(Trim(CDS_1.fieldbyname('CWID').AsString)));
ExecSQL;
end;
Tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmCWYFList.v2Column1PropertiesEditValueChanged(Sender: TObject);
var
mvalue, FFieldName: string;
FQty, FPrice, FQTFee, FMoney: Double;
begin
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
mvalue := TcxTextEdit(Sender).EditingText;
if Trim(mvalue) = '' then
begin
mvalue := '0';
end;
with CDS_1 do
begin
FQty := CDS_1.fieldbyname('Qty').AsFloat;
if FloatToStr(CDS_1.fieldbyname('QTFee').AsFloat) <> '' then
FQTFee := CDS_1.fieldbyname('QTFee').AsFloat
else
FQTFee := 0;
FPrice := CDS_1.fieldbyname('Price').AsFloat;
FMoney := CDS_1.fieldbyname('Money').AsFloat;
end;
if FFieldName = 'Price' then
FPrice := strtofloatdef(mvalue, 0);
if FFieldName = 'Qty' then
FQty := strtofloatdef(mvalue, 0);
if FFieldName = 'QTFee' then
FQTFee := strtofloatdef(mvalue, 0);
if Trim(FFieldName) <> 'Money' then
FMoney := FQty * FPrice + FQTFee;
with CDS_1 do
begin
Edit;
FieldByName('Money').Value := FMoney;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update CW_Money_CR set ' + FFieldName + '=' + Trim(mvalue));
if Trim(FFieldName) <> 'Money' then
sql.Add(' ,Money=' + FloatToStr(FMoney));
sql.Add('where CWID=' + quotedstr(Trim(CDS_1.fieldbyname('CWID').AsString)));
ExecSQL;
end;
with CDS_1 do
begin
Edit;
FieldByName(FFieldName).Value := Trim(mvalue);
Post;
end;
Tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmCWYFList.v2Column3PropertiesEditValueChanged(Sender: TObject);
var
mvalue, FFieldName: string;
begin
mvalue := TcxTextEdit(Sender).EditingText;
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
with CDS_1 do
begin
Edit;
FieldByName(FFieldName).Value := mvalue;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update CW_Money_CR set ' + FFieldName + '=' + quotedstr(Trim(mvalue)));
sql.Add('where CWID=' + quotedstr(Trim(CDS_1.fieldbyname('CWID').AsString)));
ExecSQL;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmCWYFList.v2QtyUnitPropertiesEditValueChanged(Sender: TObject);
var
mvalue, FFieldName: string;
begin
mvalue := TcxTextEdit(Sender).EditingText;
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
with CDS_1 do
begin
Edit;
FieldByName(FFieldName).Value := mvalue;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update CW_Money_CR set ' + FFieldName + '=' + quotedstr(Trim(mvalue)));
sql.Add('where CWID=' + quotedstr(Trim(CDS_1.fieldbyname('CWID').AsString)));
ExecSQL;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmCWYFList.VYBPropertiesEditValueChanged(Sender: TObject);
var
mvalue, FFieldName: string;
begin
mvalue := TcxTextEdit(Sender).EditingText;
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
if Trim(mvalue) = '' then
begin
mvalue := '0';
end;
with CDS_1 do
begin
Edit;
FieldByName(FFieldName).Value := mvalue;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update CW_Money_CR set ' + FFieldName + '=' + quotedstr(Trim(mvalue)));
sql.Add('where CWId=' + quotedstr(Trim(CDS_1.fieldbyname('CWId').AsString)));
ExecSQL;
end;
tv1.Controller.EditingController.ShowEdit();
end;
procedure TfrmCWYFList.cxTabControl1Change(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmCWYFList.factoryname1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
inherited;
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := 'GYSNAME';
flagname := '供应商名称';
if ShowModal = 1 then
begin
with ClientDataSet1 do
begin
// MFactoryNo := Trim(Order_Main.fieldbyname('CoCode').AsString);
FactoryName1.Text := FieldByName('ZDYName').AsString;
end;
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmCWYFList.btnChkClick(Sender: TObject);
begin
if CDS_1.IsEmpty then
exit;
try
with CDS_1 do
begin
DisableControls;
First;
while not Eof do
begin
if CDS_1.fieldbyname('SSel').AsBoolean then
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' select * from CW_Money_CR');
sql.Add(' where CWID=''' + Trim(CDS_1.fieldbyname('CWID').AsString) + '''');
SQL.Add(' and status=''1'' ');
Open;
end;
if ADOQueryCmd.IsEmpty = False then
begin
CDS_1.EnableControls;
Application.MessageBox('已审核数据,不能操作!', '提示', 0);
Exit;
end;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.add('update CW_Money_CR set Chker=''' + trim(DName) + ''',Chktime=getdate(),status=''1'' ');
sql.add('where CWID=''' + trim(CDS_1.fieldbyname('CWID').asstring) + ''' ');
execsql;
end;
CDS_1.Edit;
CDS_1.FieldByName('status').Value := '1';
CDS_1.FieldByName('Chker').Value := DName;
CDS_1.Post;
end;
Next;
end;
end;
CDS_1.EnableControls;
application.MessageBox('审核成功', '提示');
except
CDS_1.EnableControls;
application.MessageBox('审核失败', '提示');
end;
end;
procedure TfrmCWYFList.btnNoChkClick(Sender: TObject);
begin
if CDS_1.IsEmpty then
exit;
try
with CDS_1 do
begin
DisableControls;
First;
while not Eof do
begin
if CDS_1.fieldbyname('SSel').AsBoolean then
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' select * from CW_Money_CR');
sql.Add(' where CWID=''' + Trim(CDS_1.fieldbyname('CWID').AsString) + '''');
SQL.Add(' and Chker=' + QuotedStr(trim(DName)));
Open;
end;
if ADOQueryCmd.IsEmpty then
begin
CDS_1.EnableControls;
Application.MessageBox('不能撤销不是自己审核的数据,不能操作!', '提示', 0);
Exit;
end;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.add('update CW_Money_CR set Chker=null,Chktime=null,status=''0'' ');
sql.add('where CWID=''' + trim(CDS_1.fieldbyname('CWID').asstring) + ''' ');
execsql;
end;
CDS_1.Edit;
CDS_1.FieldByName('status').Value := '0';
CDS_1.FieldByName('Chker').Value := '';
CDS_1.Post;
end;
Next;
end;
end;
CDS_1.EnableControls;
application.MessageBox('撤销审核成功', '提示');
except
CDS_1.EnableControls;
application.MessageBox('撤销审核失败', '提示');
end;
end;
end.