D7myzhenyong/应收应付/U_BPRKList.pas
DESKTOP-E401PHE\Administrator 237de1c308 0
2025-08-26 15:25:51 +08:00

359 lines
10 KiB
ObjectPascal
Raw Permalink 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_BPRKList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView,
cxGridBandedTableView, cxGridDBBandedTableView, cxGridLevel, cxClasses,
cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls,
ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient,
cxDropDownEdit, cxCheckBox, RM_Common, RM_Class, RM_e_Xls, RM_Dataset,
RM_System, RM_GridReport, Menus, cxCalendar, cxButtonEdit, cxTextEdit,
cxContainer, cxImage, cxDBEdit, cxMaskEdit, cxCurrencyEdit, cxLookAndFeels,
cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, cxPC;
type
TfrmBPRKList = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
cxGridPopupMenu1: TcxGridPopupMenu;
Label1: TLabel;
Label2: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
CDS_Main: TClientDataSet;
RM1: TRMGridReport;
RMDBMain: TRMDBDataSet;
RMXLSExport1: TRMXLSExport;
RMDBHZ: TRMDBDataSet;
CDS_HZ: TClientDataSet;
CDS_PRT: TClientDataSet;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label8: TLabel;
SPName: TEdit;
FactoryName: TEdit;
SPID: TEdit;
SPSpec: TEdit;
Label6: TLabel;
SPCF: TEdit;
Label7: TLabel;
OrderNo: TEdit;
cxGrid2: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column6: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
v1Column13: TcxGridDBColumn;
v1Column15: TcxGridDBColumn;
v1Column17: TcxGridDBColumn;
v1Column14: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v1Column7: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
v2Column6: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column16: TcxGridDBColumn;
v1Column12: TcxGridDBColumn;
cxGrid2Level1: TcxGridLevel;
Label9: TLabel;
ToFactoryName: TEdit;
Label12: TLabel;
CRType: TComboBox;
v1Column18: TcxGridDBColumn;
Label10: TLabel;
KuWei: TEdit;
v1Column19: TcxGridDBColumn;
Label11: TLabel;
RCGangNo: TEdit;
Label13: TLabel;
SPColor: TEdit;
ADOQueryImage: TADOQuery;
DSImage: TDataSource;
v1Column21: TcxGridDBColumn;
cxGrid1: TcxGrid;
TvMX: TcxGridDBTableView;
cxGridDBColumn8: TcxGridDBColumn;
cxGridLevel2: TcxGridLevel;
CDS_MX: TClientDataSet;
DS_MX: TDataSource;
cxGridPopupMenu2: TcxGridPopupMenu;
Label14: TLabel;
spcode: TEdit;
v1Column5: TcxGridDBColumn;
Tv1Column1: TcxGridDBColumn;
ToolButton1: TToolButton;
cxTabControl1: TcxTabControl;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ConNoMChange(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBFindClick(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure SPIDChange(Sender: TObject);
procedure SPSpecChange(Sender: TObject);
procedure FactoryNameChange(Sender: TObject);
procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
procedure ToolButton1Click(Sender: TObject);
procedure TvMXCustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean);
procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
procedure cxTabControl1Change(Sender: TObject);
private
canshu1, canshu2: string;
procedure InitGrid();
procedure InitImage(fsubID: string);
procedure InitMXGrid(MCRNO: string);
{ Private declarations }
public
{ Public declarations }
end;
var
frmBPRKList: TfrmBPRKList;
implementation
uses
U_DataLink, U_RTFun, U_ZdyAttachGYS;
{$R *.dfm}
procedure TfrmBPRKList.InitMXGrid(MCRNO: string);
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from CK_SXPB_CRMX where CRNO=' + quotedstr(Trim(MCRNO)));
sql.Add(' order by MXID');
Open;
end;
SCreateCDS20(ADOQueryTemp, CDS_MX);
SInitCDSData20(ADOQueryTemp, CDS_MX);
end;
procedure TfrmBPRKList.InitImage(fsubID: string);
begin
ADOQueryImage.close;
// IF fwbid='' then exit;
with ADOQueryImage do
begin
close;
sql.Clear;
sql.Add('select * from TP_File A');
sql.Add('inner join JYOrder_Sub B on B.HXFile=A.WBID');
sql.Add('where B.SubID=' + quotedstr(trim(fsubID)));
open;
end;
end;
procedure TfrmBPRKList.FormDestroy(Sender: TObject);
begin
frmBPRKList := nil;
end;
procedure TfrmBPRKList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmBPRKList.FormCreate(Sender: TObject);
begin
//cxGrid1.Align:=alClient;
canshu1 := Trim(DParameters1);
canshu2 := Trim(DParameters2);
EndDate.DateTime := SGetServerDate10(ADOQueryTemp);
BegDate.DateTime := EndDate.DateTime;
end;
procedure TfrmBPRKList.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
sql.Clear;
sql.Add(' select A.* ');
sql.Add(' from CK_SXPB_CR A');
sql.add(' where A.CRTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)) + '''');
sql.Add(' and A.CRTime<''' + Trim(FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1)) + '''');
sql.Add(' and isnull(CKName,'''')=''<27><><EFBFBD>첼''');
SQL.Add(' and CRFlag=''<27><><EFBFBD><EFBFBD>'' ');
if cxTabControl1.TabIndex = 0 then
SQL.Add(' and not exists(select YFPZNO from YF_Money_CR_Sub X where X.YFPZNO=A.SPID ) ')
else
SQL.Add(' and exists(select YFPZNO from YF_Money_CR_Sub X where X.YFPZNO=A.SPID )');
Open;
//ShowMessage(SQL.Text);
end;
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmBPRKList.TBRafreshClick(Sender: TObject);
begin
BegDate.SetFocus;
InitGrid();
end;
procedure TfrmBPRKList.ConNoMChange(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
end;
end;
procedure TfrmBPRKList.TBCloseClick(Sender: TObject);
begin
WriteCxGrid('<27><><EFBFBD><EFBFBD><ECB2BC><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>', Tv1, '<27><><EFBFBD><EFBFBD>ֿ<EFBFBD>');
WriteCxGrid('<27><><EFBFBD><EFBFBD><ECB2BC><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>2', TvMX, '<27><><EFBFBD><EFBFBD>ֿ<EFBFBD>');
Close;
end;
procedure TfrmBPRKList.FormShow(Sender: TObject);
begin
ReadCxGrid('<27><><EFBFBD><EFBFBD><ECB2BC><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>', Tv1, '<27><><EFBFBD><EFBFBD>ֿ<EFBFBD>');
ReadCxGrid('<27><><EFBFBD><EFBFBD><ECB2BC><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>2', TvMX, '<27><><EFBFBD><EFBFBD>ֿ<EFBFBD>');
end;
procedure TfrmBPRKList.TBFindClick(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
end;
end;
procedure TfrmBPRKList.N1Click(Sender: TObject);
begin
SelOKNo(CDS_Main, True);
end;
procedure TfrmBPRKList.N2Click(Sender: TObject);
begin
SelOKNo(CDS_Main, False);
end;
procedure TfrmBPRKList.SPIDChange(Sender: TObject);
begin
if Length(Trim(SPID.Text)) < 4 then
begin
if Trim(SPID.Text) <> '' then
Exit;
end;
TBFind.Click;
end;
procedure TfrmBPRKList.SPSpecChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmBPRKList.FactoryNameChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmBPRKList.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
// ADOQueryImage.Close;
// IF CDS_Main.IsEmpty then exit;
// InitImage(CDS_Main.fieldbyname('OrdSubIdRK').AsString);
end;
procedure TfrmBPRKList.ToolButton1Click(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
if CDS_Main.Locate('ssel', true, []) = false then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
// if Application.MessageBox('ȷ<><C8B7>Ҫɾ<D2AA><C9BE>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
// Exit;
try
ADOQueryCmd.Connection.BeginTrans;
while CDS_Main.Locate('SSel', True, []) do
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' exec P_CW_SXPB ''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + '''');
ExecSQL;
end;
CDS_Main.Delete;
end;
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C9BE><EFBFBD>쳣!', '<27><>ʾ', 0);
end;
end;
procedure TfrmBPRKList.TvMXCustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean);
var
FValue: string;
FBounds: TRect;
begin
FBounds := AViewInfo.Bounds;
if (AViewInfo is TcxGridIndicatorRowItemViewInfo) then
begin
ACanvas.FillRect(FBounds);
ACanvas.DrawComplexFrame(FBounds, clBtnHighlight, clBtnShadow, [bBottom, bLeft, bRight], 1);
FValue := IntToStr(TcxGridIndicatorRowItemViewInfo(AViewInfo).GridRecord.Index + 1);
InflateRect(FBounds, -1, -1); //Platform specific. May not work on Linux.
ACanvas.Font.Color := clBlack;
ACanvas.Brush.Style := bsClear;
ACanvas.DrawText(FValue, FBounds, cxAlignCenter or cxAlignTop);
ADone := True;
end;
end;
procedure TfrmBPRKList.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
begin
InitMXGrid(Trim(CDS_Main.fieldbyname('SPID').AsString));
end;
procedure TfrmBPRKList.cxTabControl1Change(Sender: TObject);
begin
INITGrid();
end;
end.