D10xhGemei/A09财务通用管理/U_InvoiceOutSel.pas
DESKTOP-E401PHE\Administrator a5b135ceb3 财务替换畅优
2025-07-17 14:27:41 +08:00

240 lines
6.7 KiB
ObjectPascal
Raw Permalink Blame History

unit U_InvoiceOutSel;
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, cxDropDownEdit, cxPC, RM_e_Xls, Menus, cxLookAndFeels,
cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, dxDateRanges, U_BaseHelp,
Vcl.Clipbrd, cxContainer, dxCore, cxDateUtils, dxScrollbarAnnotations,
FrameDateSel, dxSkinsCore, dxSkinsDefaultPainters, cxProgressBar, U_BaseList,
System.ImageList, Vcl.ImgList;
type
TfrmInvoiceOutSel = class(TfrmBaseHelp)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
Panel1: TPanel;
ToolButton2: TToolButton;
F_Name: TcxTextEdit;
ADOQueryMain: TADOQuery;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
Label3: TLabel;
IVNo: TcxTextEdit;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
cxGridLevel1: TcxGridLevel;
cxGridPopupMenu2: TcxGridPopupMenu;
DS_Invoice: TDataSource;
CDS_Invoice: TClientDataSet;
v1InvoiceNo: TcxGridDBColumn;
v1InvoiceType: TcxGridDBColumn;
v1InvoiceDate: TcxGridDBColumn;
v1FactoryName: TcxGridDBColumn;
v1note: TcxGridDBColumn;
F_Spec: TcxTextEdit;
Label5: TLabel;
OppCoName: TcxTextEdit;
v1Column1: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
RMXLSExport1: TRMXLSExport;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
ADOQueryPrint: TADOQuery;
Label7: TLabel;
OurCoName: TcxTextEdit;
Label8: TLabel;
Label9: TLabel;
v1Column8: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
v1Column12: TcxGridDBColumn;
v1Column13: TcxGridDBColumn;
v1Column14: TcxGridDBColumn;
v1Column15: TcxGridDBColumn;
v1Column17: TcxGridDBColumn;
v1Column18: TcxGridDBColumn;
v1Column19: TcxGridDBColumn;
ToolButton3: TToolButton;
N3: TMenuItem;
Tv1Column1: TcxGridDBColumn;
btnok: TToolButton;
Tv1Column2: TcxGridDBColumn;
frmFrameDateSel1: TfrmFrameDateSel;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure IVNoChange(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure btnokClick(Sender: TObject);
procedure Tv1DblClick(Sender: TObject);
private
{ Private declarations }
procedure InitGrid();
procedure SetStatus();
public
FZKType, canshu1, canshu2: string;
{ Public declarations }
end;
var
frmInvoiceOutSel: TfrmInvoiceOutSel;
implementation
uses
U_DataLink, U_RTFun;
{$R *.dfm}
procedure TfrmInvoiceOutSel.SetStatus();
begin
end;
procedure TfrmInvoiceOutSel.InitGrid();
var
Msql, mbegdate, menddate: string;
SqlStr: string;
begin
SqlStr := ' select A.* ';
SqlStr := SqlStr + ',FJFlag=CAST((CASE WHEN (SELECT COUNT(X.FileName) FROM FJ_File X where X.TFType=''<27><><EFBFBD>Ʊ'' and X.WBID=A.IVNo)>0 THEN 1 ELSE 0 END) AS BIT)';
SqlStr := SqlStr + ' from Finance_Invoice A ';
SqlStr := SqlStr + ' left join Bs_Company B on A.OppCoNo=B.CoCode ';
SqlStr := SqlStr + 'where IVFlag=''<27><><EFBFBD><EFBFBD>'' ';
SqlStr := SqlStr + ' and A.IVDate>=''' + Trim(FormatDateTime('yyyy-MM-dd', frmFrameDateSel1.BegDate.Date)) + '''';
SqlStr := SqlStr + ' and A.IVDate<''' + Trim(FormatDateTime('yyyy-MM-dd', frmFrameDateSel1.enddate.Date + 1)) + '''';
SqlStr := SqlStr + ' and isnull(A.status,''0'')=''9'' ';
if trim(canshu1) = <><C2BC>' then
SqlStr := SqlStr + ' and CHARINDEX(' + quotedstr(DCode) + ',(ISNULL(B.SalesId, '''') +'',''+ISNULL(B.TallyId, '''')+'',''+ISNULL(A.FillId, '''') ) ) > 0 ';
// ShowMessage(SqlStr);
InitCDSData(ADOQueryMain, CDS_Invoice, Tv1, SqlStr, SGetFilters(Panel1, 1, 2), 'IVId');
end;
procedure TfrmInvoiceOutSel.FormDestroy(Sender: TObject);
begin
inherited;
// frmInvoiceXX := nil;
end;
procedure TfrmInvoiceOutSel.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmInvoiceOutSel.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmInvoiceOutSel.FormShow(Sender: TObject);
begin
inherited;
ReadCxGrid(self.Caption, Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
frmFrameDateSel1.Enddate.Date := SGetServerDate(ADOQueryTemp);
frmFrameDateSel1.begdate.Date := frmFrameDateSel1.Enddate.Date - 30;
SetStatus();
InitGrid();
end;
procedure TfrmInvoiceOutSel.TBRafreshClick(Sender: TObject);
begin
ToolBar1.SetFocus;
InitGrid();
end;
procedure TfrmInvoiceOutSel.ToolButton2Click(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS(ADOQueryMain, CDS_Invoice);
SInitCDSData(ADOQueryMain, CDS_Invoice);
end;
end;
procedure TfrmInvoiceOutSel.ToolButton3Click(Sender: TObject);
begin
WriteCxGrid(self.Caption, Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
end;
procedure TfrmInvoiceOutSel.Tv1DblClick(Sender: TObject);
begin
btnok.Click;
end;
procedure TfrmInvoiceOutSel.btnokClick(Sender: TObject);
begin
inherited;
ModalResult := 1;
end;
procedure TfrmInvoiceOutSel.ToolButton1Click(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
Exit;
TcxGridToExcel(self.Caption, cxgrid1);
end;
procedure TfrmInvoiceOutSel.IVNoChange(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmInvoiceOutSel.cxTabControl1Change(Sender: TObject);
begin
SetStatus();
initGrid();
end;
procedure TfrmInvoiceOutSel.N1Click(Sender: TObject);
begin
SelOKNo(CDS_Invoice, True);
end;
procedure TfrmInvoiceOutSel.N2Click(Sender: TObject);
begin
SelOKNo(CDS_Invoice, false);
end;
procedure TfrmInvoiceOutSel.N3Click(Sender: TObject);
begin
Clipboard.SetTextBuf(PChar(Trim(CDS_Invoice.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)));
end;
end.