D7fhtxzhuoyuan/坯布汇总仓库(ClothWarehouse.dll)/U_DBRklist.pas
DESKTOP-E401PHE\Administrator de7ab88622 0
2025-09-30 15:01:08 +08:00

549 lines
15 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_DBRklist;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData,
cxButtonEdit, cxDropDownEdit, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView,
cxGrid, DBClient, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, cxContainer,
cxTextEdit, cxCurrencyEdit, cxCheckBox, RM_System, RM_Dataset, RM_Common,
RM_Class, RM_GridReport, cxPC, Menus, cxLookAndFeels, cxLookAndFeelPainters,
cxNavigator, dxSkinsCore, dxSkinsDefaultPainters, dxSkinscxPCPainter,
dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee,
dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle,
dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast,
dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky,
dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins,
dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green,
dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black,
dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray,
dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven,
dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver,
dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld,
dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue;
type
TfrmDBRklist = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBAdd: TToolButton;
TBEdit: TToolButton;
TBDel: TToolButton;
TBExport: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
Label1: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1P_CodeName: TcxGridDBColumn;
v1Qty: TcxGridDBColumn;
v1Note: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
v1CRType: TcxGridDBColumn;
v1CRTime: TcxGridDBColumn;
v1Filler: TcxGridDBColumn;
v1FillTime: TcxGridDBColumn;
Label2: TLabel;
Label3: TLabel;
CodeName: TEdit;
CRType: TComboBox;
Label5: TLabel;
ADOQueryCmd: TADOQuery;
ADOQueryTmp: TADOQuery;
DataSource1: TDataSource;
CDS_Main: TClientDataSet;
cxGridPopupMenu1: TcxGridPopupMenu;
ckName: TComboBox;
Label6: TLabel;
v1P_Code: TcxGridDBColumn;
v1INoutNo: TcxGridDBColumn;
Label7: TLabel;
CRNo: TEdit;
v1Price: TcxGridDBColumn;
v1money: TcxGridDBColumn;
gangNo: TEdit;
Label10: TLabel;
RMDB_Main: TRMDBDataSet;
v1Column4: TcxGridDBColumn;
ADOQueryPrint: TADOQuery;
RM1: TRMGridReport;
Code: TEdit;
Label15: TLabel;
v1Column10: TcxGridDBColumn;
Label17: TLabel;
fromFactoryName: TEdit;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
v1Column2: TcxGridDBColumn;
ADOQueryMain: TADOQuery;
v1Column1: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
ToolButton1: TToolButton;
v1Column8: TcxGridDBColumn;
Label4: TLabel;
kuwei: TEdit;
v1Column7: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
Tv1Column2: TcxGridDBColumn;
Label8: TLabel;
MLTYPE: TComboBox;
Tv1Column3: TcxGridDBColumn;
Label9: TLabel;
CPColor: TEdit;
Tv1Column4: TcxGridDBColumn;
Tv1Column5: TcxGridDBColumn;
Label11: TLabel;
BatchNo: TEdit;
Tv1Column6: TcxGridDBColumn;
Tv1Column7: TcxGridDBColumn;
ToolButton2: TToolButton;
CDS_Print: TClientDataSet;
DataSource2: TDataSource;
CDS_MX: TClientDataSet;
DS_MX: TDataSource;
Tv1Column1: TcxGridDBColumn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure TBAddClick(Sender: TObject);
procedure CodeNameChange(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure TBEditClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure TBFindClick(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
private
procedure InitGrid();
procedure SetStatus();
{ Private declarations }
public
fCKName, canshu1: string;
fCRType, FZZType: string;
{ Public declarations }
end;
var
frmDBRklist: TfrmDBRklist;
implementation
uses
U_DataLink, U_Fun10, U_Fun, U_ZDYHelp, U_PBRk, U_FjList_RZ;
{$R *.dfm}
procedure TfrmDBRklist.SetStatus();
begin
// TBEdit.Visible:=False;
// ToolButton1.Visible:=False;
// TBDel.Visible:=False;
// TBPrint2.Visible:=False;
// TBPrint1.Visible:=False;
// ToolButton2.Visible:=False;
// ToolButton3.Visible:=False;
// if Trim(DParameters2)='<27><>Ȩ<EFBFBD><C8A8>' then
// begin
// case cxTabControl1.TabIndex of
// 0:begin
// TBEdit.Visible:=true;
// ToolButton1.Visible:=true;
// TBDel.Visible:=true;
// ToolButton2.Visible:=true;
// TBPrint1.Visible:=true;
// end;
// 1:begin
// TBPrint2.Visible:=true;
// TBPrint1.Visible:=true;
// ToolButton3.Visible:=true;
// end;
// 2:begin
//
// end;
// end
// end
// else
// begin
// case cxTabControl1.TabIndex of
// 0:begin
// TBEdit.Visible:=true;
// ToolButton1.Visible:=true;
// TBDel.Visible:=true;
// TBPrint1.Visible:=true;
// end;
// 1:begin
// TBPrint2.Visible:=true;
// TBPrint1.Visible:=true;
// end;
// 2:begin
//
// end;
// end
// end;
end;
procedure TfrmDBRklist.InitGrid();
begin
try
with ADOQueryMain do
begin
close;
sql.Clear;
sql.Add('select A.* ');
sql.Add(',Case when isnull((select count(*) from TP_File where WBID=A.CRNO and TFType=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܸ<EFBFBD><DCB8><EFBFBD>'' ),0)>0 ');
sql.Add('then Cast(1 as bit) else Cast(0 as bit) end as FJFlag');
sql.Add(' from CK_PB_CR A ');
sql.Add('where A.CRTime>=''' + formatdateTime('yyyy-MM-dd', begdate.Date) + ''' ');
sql.Add('and A.CRTime<''' + formatdateTime('yyyy-MM-dd', enddate.Date + 1) + ''' ');
sql.Add('and A.CRFlag=''<27><><EFBFBD><EFBFBD>'' and A.Valid=''Y'' and CKName=''<27><><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD>'' ');
SQL.Add('AND MLTYPE=''<27>ײ<EFBFBD>''');
if canshu1 = <><C2BC>' then
begin
Sql.Add(' and Filler=' + quotedstr(Trim(DName)));
end;
sql.Add('order by A.CRNO,A.Code ');
open;
end;
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
TBFind.Click;
finally
end;
end;
procedure TfrmDBRklist.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := cafree;
end;
procedure TfrmDBRklist.FormDestroy(Sender: TObject);
begin
frmDBRklist := nil;
end;
procedure TfrmDBRklist.TBAddClick(Sender: TObject);
begin
frmPBRk := TfrmPBRk.create(self);
with frmPBRk do
begin
fkeyNo := '';
fType := 0;
fCRType := self.fCRType;
FZZType := self.FZZType;
FactoryName.Text := '<27><><EFBFBD><EFBFBD>';
if showmodal = 1 then
begin
TBRafresh.Click;
self.CDS_Main.Locate('crNo', trim(fkeyNo), []);
end;
free;
end;
end;
procedure TfrmDBRklist.CodeNameChange(Sender: TObject);
begin
if ADOQueryMain.Active = False then
Exit;
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
end;
procedure TfrmDBRklist.FormShow(Sender: TObject);
begin
readCxGrid(self.Caption, Tv1, '<27><><EFBFBD>ϲֿ<CFB2>');
SetStatus();
// InitGrid();
end;
procedure TfrmDBRklist.FormCreate(Sender: TObject);
begin
EndDate.Date := SGetServerDate10(ADOQueryTmp);
BegDate.Date := EndDate.Date - 7;
cxGrid1.Align := alclient;
end;
procedure TfrmDBRklist.TBCloseClick(Sender: TObject);
begin
writeCxGrid(self.Caption, Tv1, '<27><><EFBFBD>ϲֿ<CFB2>');
close;
end;
procedure TfrmDBRklist.TBEditClick(Sender: TObject);
begin
if cds_main.IsEmpty then
exit;
with ADOQueryTmp do
begin
Close;
sql.Clear;
sql.Add('select * from YF_Money_CR_Sub where YFPZNO=''' + Trim(CDS_Main.fieldbyname('CRID').AsString) + '''');
Open;
end;
if ADOQueryTmp.IsEmpty = False then
begin
Application.MessageBox('<27>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ɲ<EFBFBD><C9B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2>ܲ<EFBFBD><DCB2><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
with ADOQueryTmp do
begin
Close;
sql.Clear;
sql.Add('select * from CK_PB_CR where Valid=''Y'' and CRFlag=''<27><><EFBFBD><EFBFBD>''');
sql.Add('and KCID=' + QuotedStr(Trim(CDS_Main.fieldbyname('KCID').AsString)));
Open;
end;
if ADOQueryTmp.IsEmpty = False then
begin
Application.MessageBox('<27>ѳ<EFBFBD><D1B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2>ܲ<EFBFBD><DCB2><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
frmPBRk := TfrmPBRk.create(self);
with frmPBRk do
begin
fkeyNo := self.cds_main.fieldbyname('CRID').AsString;
fType := 1;
fckName := self.fckName;
fCRType := self.fCRType;
if showmodal = 1 then
begin
TBRafresh.Click;
self.CDS_Main.Locate('CRID', trim(fkeyNo), []);
end;
free;
end;
end;
procedure TfrmDBRklist.TBDelClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
with ADOQueryTmp do
begin
Close;
sql.Clear;
sql.Add('select * from CK_PB_CR where Valid=''Y'' and CRFlag=''<27><><EFBFBD><EFBFBD>''');
sql.Add('and KCID=' + QuotedStr(Trim(CDS_Main.fieldbyname('KCID').AsString)));
Open;
end;
if ADOQueryTmp.IsEmpty = False then
begin
Application.MessageBox('<27>ѳ<EFBFBD><D1B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2>ܲ<EFBFBD><DCB2><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
with ADOQueryTmp do
begin
Close;
sql.Clear;
sql.Add('select * from YF_Money_CR_Sub where YFPZNO=''' + Trim(CDS_Main.fieldbyname('CRID').AsString) + '''');
Open;
end;
if ADOQueryTmp.IsEmpty = False then
begin
Application.MessageBox('<27>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ɲ<EFBFBD><C9B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2>ܲ<EFBFBD><DCB2><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
if (cds_main.fieldbyname('Filler').AsString <> trim(DName)) and (trim(canshu1) <> '<27><>Ȩ<EFBFBD><C8A8>') then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ģ<DEB8>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
try
if Trim(CDS_Main.FieldByName('CRID').AsString) <> '' then
begin
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('update CK_PB_CR set Valid=''N'' where CRID=' + quotedstr(Trim(CDS_Main.FieldByName('CRID').AsString)));
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add('exec P_Up_PBKc ' + quotedstr(Trim(CDS_Main.FieldByName('KCID').AsString)));
Open;
end;
if Trim(ADOQueryCmd.FieldByName('Msg').AsString) = '<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>' then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
ADOQueryCmd.Connection.CommitTrans;
CDS_Main.Delete;
end;
except
Application.MessageBox('<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmDBRklist.TBRafreshClick(Sender: TObject);
begin
initGrid();
end;
procedure TfrmDBRklist.TBExportClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
TcxGridToExcel(self.Caption, cxgrid1);
end;
procedure TfrmDBRklist.TBFindClick(Sender: TObject);
begin
if ADOQueryMain.Active = False then
Exit;
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
end;
procedure TfrmDBRklist.N1Click(Sender: TObject);
begin
SelOKNo(CDS_Main, True);
end;
procedure TfrmDBRklist.N2Click(Sender: TObject);
begin
SelOKNo(CDS_Main, False);
end;
procedure TfrmDBRklist.ToolButton1Click(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
try
frmFjList_RZ := TfrmFjList_RZ.Create(Application);
with frmFjList_RZ do
begin
fkeyNO := Trim(Self.CDS_Main.fieldbyname('CRNO').AsString);
fType := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܸ<EFBFBD><DCB8><EFBFBD>';
if ShowModal = 1 then
begin
end;
end;
finally
frmFjList_RZ.Free;
end;
end;
procedure TfrmDBRklist.ToolButton2Click(Sender: TObject);
var
MBCIOID: string;
fPrintFile: string;
Txt, fImagePath: string;
Moudle: THandle;
Makebar: TMakebar;
Mixtext: TMixtext;
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;
// MBCIOID := '';
// CDS_Main.DisableControls;
// with CDS_Main do
// begin
// First;
// while CDS_Main.Locate('SSel', True, []) do
// begin
//
// MBCIOID := MBCIOID + ',' + Trim(CDS_Main.fieldbyname('CRNO').AsString);
//
// Edit;
// FieldByName('SSel').Value := False;
// Post;
// end;
// end;
// CDS_Main.EnableControls;
ExportFtErpFile('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뵥.rmf', ADOQueryTmp);
with ADOQueryPrint do
begin
Close;
sql.Clear;
// sql.Add('exec P_Print_PBRK');
// sql.add('@mainID=' + QuotedStr(trim(MBCIOID)));
// ShowMessage(sql.text);
SQL.Add('exec P_Print_PBRK @CRNO=' + QuotedStr(Trim(CDS_Main.fieldbyname('CRNO').AsString)));
Open;
end;
SCreateCDS20(ADOQueryPrint, CDS_Print);
SInitCDSData20(ADOQueryPrint, CDS_Print);
try
Moudle := LoadLibrary('MakeQRBarcode.dll');
@Makebar := GetProcAddress(Moudle, 'Make');
@Mixtext := GetProcAddress(Moudle, 'MixText');
Txt := Trim(ADOQueryPrint.fieldbyname('CRID').AsString);
fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp';
if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then
CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil);
if FileExists(fImagePath) then
DeleteFile(fImagePath);
Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3);
except
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뵥.rmf';
if FileExists(fPrintFile) then
begin
RMVariables['QRBARCODE'] := fImagePath;
RM1.LoadFromFile(fPrintFile);
// RMVariables['SYRName'] := Trim(SYRName);
RM1.ShowReport;
end
else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>' + ExtractFilePath(Application.ExeName) + 'Report\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뵥.rmf'), '<27><>ʾ', 0);
end;
end;
procedure TfrmDBRklist.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
begin
with ADOQueryTmp do
begin
Close;
sql.Clear;
sql.Add('select * from CK_SXPB_CRMX A where CRNO=' + quotedstr(Trim(CDS_Main.FIELDBYNAME('CRID').AsString)));
sql.Add(' order by MJID');
// ShowMessage(SQL.Text);
Open;
end;
SCreateCDS20(ADOQueryTmp, CDS_MX);
SInitCDSData20(ADOQueryTmp, CDS_MX);
end;
end.