423 lines
12 KiB
ObjectPascal
423 lines
12 KiB
ObjectPascal
unit U_CPDBAOList;
|
||
|
||
interface
|
||
|
||
uses
|
||
Windows, Messages, strutils, SysUtils, Variants, Classes, Graphics, Controls,
|
||
Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
|
||
cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView,
|
||
cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView,
|
||
cxGrid, StdCtrls, cxContainer, cxTextEdit, cxCurrencyEdit, BtnEdit, ExtCtrls,
|
||
ComCtrls, ToolWin, DBClient, ADODB, MovePanel, Buttons, Menus,
|
||
cxLookAndFeelPainters, cxButtons, RM_Common, RM_Class, RM_GridReport,
|
||
RM_System, RM_Dataset, cxCheckBox, MMSystem, Math, cxGridCustomPopupMenu,
|
||
cxGridPopupMenu, cxLookAndFeels, cxNavigator, RM_e_Xls, dxSkinsCore,
|
||
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, dxSkinsDefaultPainters, dxSkinValentine,
|
||
dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, dxSkinscxPCPainter;
|
||
|
||
type
|
||
TfrmCPDBAOList = class(TForm)
|
||
Panel1: TPanel;
|
||
Label1: TLabel;
|
||
Panel2: TPanel;
|
||
ADOQueryMain: TADOQuery;
|
||
ADOQueryCmd: TADOQuery;
|
||
ADOQueryTmp: TADOQuery;
|
||
RMDB_Main: TRMDBDataSet;
|
||
RM2: TRMGridReport;
|
||
ADOQueryPrint: TADOQuery;
|
||
CDS_YDB: TClientDataSet;
|
||
cxGrid1: TcxGrid;
|
||
TV1: TcxGridDBTableView;
|
||
cxGridDBColumn8: TcxGridDBColumn;
|
||
cxGridDBColumn10: TcxGridDBColumn;
|
||
cxGridDBColumn11: TcxGridDBColumn;
|
||
cxGridDBColumn12: TcxGridDBColumn;
|
||
cxGridDBColumn17: TcxGridDBColumn;
|
||
cxGridDBColumn18: TcxGridDBColumn;
|
||
cxGridDBColumn19: TcxGridDBColumn;
|
||
cxGridLevel3: TcxGridLevel;
|
||
DS_YDB: TDataSource;
|
||
V4Column2: TcxGridDBColumn;
|
||
PM_YDB: TPopupMenu;
|
||
btnClose: TcxButton;
|
||
N3: TMenuItem;
|
||
CDS_DDY: TClientDataSet;
|
||
cxGridPopupMenu3: TcxGridPopupMenu;
|
||
RMDBHZ: TRMDBDataSet;
|
||
CDS_HZ: TClientDataSet;
|
||
CDS_PRT: TClientDataSet;
|
||
RMDBPRT: TRMDBDataSet;
|
||
RM3: TRMGridReport;
|
||
ComboBox1: TComboBox;
|
||
cxButton1: TcxButton;
|
||
V1Column1: TcxGridDBColumn;
|
||
V1Column2: TcxGridDBColumn;
|
||
edtFHSQ: TBtnEditA;
|
||
BaoLab: TEdit;
|
||
cbbFS: TComboBox;
|
||
Label10: TLabel;
|
||
V1Column3: TcxGridDBColumn;
|
||
cxGrid2: TcxGrid;
|
||
Tv2: TcxGridDBTableView;
|
||
v2Column5: TcxGridDBColumn;
|
||
v2Column12: TcxGridDBColumn;
|
||
v2Column6: TcxGridDBColumn;
|
||
v2Column7: TcxGridDBColumn;
|
||
v1Column5: TcxGridDBColumn;
|
||
v2Column2: TcxGridDBColumn;
|
||
v2Column1: TcxGridDBColumn;
|
||
v2Column3: TcxGridDBColumn;
|
||
v2Column4: TcxGridDBColumn;
|
||
v2Column8: TcxGridDBColumn;
|
||
v2Column9: TcxGridDBColumn;
|
||
cxGridLevel1: TcxGridLevel;
|
||
ClientDataSet2: TClientDataSet;
|
||
cxGridPopupMenu2: TcxGridPopupMenu;
|
||
DataSource2: TDataSource;
|
||
cxButton2: TcxButton;
|
||
edtStatus: TEdit;
|
||
v2Column10: TcxGridDBColumn;
|
||
V1Column4: TcxGridDBColumn;
|
||
RMXLSExport1: TRMXLSExport;
|
||
procedure FormDestroy(Sender: TObject);
|
||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||
procedure FormCreate(Sender: TObject);
|
||
procedure btnCloseClick(Sender: TObject);
|
||
procedure N3Click(Sender: TObject);
|
||
procedure cxButton1Click(Sender: TObject);
|
||
procedure edtFHSQBtnClick(Sender: TObject);
|
||
procedure edtFHSQKeyPress(Sender: TObject; var Key: Char);
|
||
procedure cxButton2Click(Sender: TObject);
|
||
procedure TV1CustomDrawIndicatorCell(Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean);
|
||
private
|
||
FFSID, NLBName: string;
|
||
procedure InitGridYDB();
|
||
procedure PrintBao(PBaoId: string);
|
||
procedure InitGridFHZB();
|
||
{ Private declarations }
|
||
public
|
||
{ Public declarations }
|
||
end;
|
||
|
||
var
|
||
frmCPDBAOList: TfrmCPDBAOList;
|
||
newh: hwnd;
|
||
|
||
implementation
|
||
|
||
uses
|
||
U_DataLink, U_Fun, U_ZDYHelp, U_CPFHSQListSel;
|
||
{$R *.dfm}
|
||
|
||
procedure TfrmCPDBAOList.InitGridFHZB();
|
||
begin
|
||
with ADOQueryTmp do
|
||
begin
|
||
Close;
|
||
sql.Clear;
|
||
sql.Add('select A.* from FHSQ_Sub_CP A ');
|
||
sql.Add(' where A.FSId=''' + Trim(FFSID) + '''');
|
||
Open;
|
||
end;
|
||
SCreateCDS20(ADOQueryTmp, ClientDataSet2);
|
||
SInitCDSData20(ADOQueryTmp, ClientDataSet2);
|
||
end;
|
||
|
||
procedure TfrmCPDBAOList.PrintBao(PBaoId: string);
|
||
var
|
||
fPrintFile: string;
|
||
Txt, fImagePath: string;
|
||
Moudle: THandle;
|
||
Makebar: TMakebar;
|
||
Mixtext: TMixtext;
|
||
begin
|
||
|
||
with ADOQueryPrint do
|
||
begin
|
||
Close;
|
||
SQL.Clear;
|
||
SQL.Add('exec P_Do_PrintDaBao ' + quotedstr(PBaoId));
|
||
Open;
|
||
end;
|
||
if Trim(BaoLab.Text) <> '' then
|
||
begin
|
||
NLBName := Trim(BaoLab.Text);
|
||
end
|
||
else
|
||
begin
|
||
NLBName := '<27><><EFBFBD><EFBFBD>ǩ';
|
||
end;
|
||
try
|
||
Moudle := LoadLibrary('MakeQRBarcode.dll');
|
||
@Makebar := GetProcAddress(Moudle, 'Make');
|
||
@Mixtext := GetProcAddress(Moudle, 'MixText');
|
||
Txt := PBaoId;
|
||
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;
|
||
|
||
begin
|
||
ExportFtErpFile(Trim(NLBName) + '.rmf', ADOQueryTmp);
|
||
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(NLBName) + '.rmf';
|
||
if not FileExists(fPrintFile) then
|
||
begin
|
||
Application.MessageBox(PChar('û<><C3BB><EFBFBD><EFBFBD>' + fPrintFile), '<27><>ʾ', 0);
|
||
Exit;
|
||
end;
|
||
if FileExists(fPrintFile) then
|
||
begin
|
||
RMVariables['QRBARCODE'] := fImagePath;
|
||
RM2.LoadFromFile(fPrintFile);
|
||
RM2.DefaultCopies := strtointdef(trim(cbbFS.Text), 1);
|
||
RM2.printReport;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmCPDBAOList.InitGridYDB();
|
||
begin
|
||
with ADOQueryMain do
|
||
begin
|
||
close;
|
||
sql.Clear;
|
||
sql.Add('exec P_DB_View_YDBHZ ' + QUOTEDSTR(FFSID)); //P_DB_View_YDB
|
||
open;
|
||
end;
|
||
SCreateCDS20(ADOQueryMain, CDS_YDB);
|
||
SInitCDSData20(ADOQueryMain, CDS_YDB);
|
||
end;
|
||
|
||
procedure TfrmCPDBAOList.FormDestroy(Sender: TObject);
|
||
begin
|
||
frmCPDBAOList := nil;
|
||
end;
|
||
|
||
procedure TfrmCPDBAOList.FormClose(Sender: TObject; var Action: TCloseAction);
|
||
begin
|
||
writeCxGrid(trim(Self.Caption), Tv1, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
|
||
Action := cafree;
|
||
end;
|
||
|
||
procedure TfrmCPDBAOList.FormCreate(Sender: TObject);
|
||
begin
|
||
readCxGrid(trim(Self.Caption), Tv1, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
|
||
|
||
end;
|
||
|
||
procedure TfrmCPDBAOList.btnCloseClick(Sender: TObject);
|
||
begin
|
||
|
||
close;
|
||
end;
|
||
|
||
procedure TfrmCPDBAOList.N3Click(Sender: TObject);
|
||
begin
|
||
PrintBao(Trim(CDS_YDB.FieldByName('baoid').AsString));
|
||
end;
|
||
|
||
procedure TfrmCPDBAOList.cxButton1Click(Sender: TObject);
|
||
var
|
||
fPrintFile, fPrintFile10, FMainID, FKHName, FFPNo: string;
|
||
begin
|
||
if Trim(FFSID) = '' then
|
||
Exit;
|
||
|
||
if trim(ComboBox1.Text) = '<27>ֿ<EFBFBD><D6BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뵥' then
|
||
begin
|
||
with ADOQueryTmp do
|
||
begin
|
||
|
||
Close;
|
||
sql.Clear;
|
||
sql.add('exec P_Print_CKBMD1 ');
|
||
sql.add('@CKOrdNo=' + quotedstr(Trim(FFSID)));
|
||
Open;
|
||
end;
|
||
SCreateCDS20(ADOQueryTmp, CDS_PRT);
|
||
SInitCDSData20(ADOQueryTmp, CDS_PRT);
|
||
end;
|
||
if trim(ComboBox1.Text) = '<27><>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD>뵥' then
|
||
begin
|
||
with ADOQueryTmp do
|
||
begin
|
||
|
||
Close;
|
||
sql.Clear;
|
||
sql.add('exec P_Print_CKBMD2 ');
|
||
sql.add('@CKOrdNo=' + quotedstr(Trim(FFSID)));
|
||
Open;
|
||
end;
|
||
SCreateCDS20(ADOQueryTmp, CDS_PRT);
|
||
SInitCDSData20(ADOQueryTmp, CDS_PRT);
|
||
|
||
with ADOQueryTmp do
|
||
begin
|
||
Close;
|
||
sql.Clear;
|
||
sql.add('exec P_Print_CKBMD3 ');
|
||
sql.add('@CKOrdNo=' + quotedstr(Trim(FFSID)));
|
||
Open;
|
||
end;
|
||
SCreateCDS20(ADOQueryTmp, CDS_HZ);
|
||
SInitCDSData20(ADOQueryTmp, CDS_HZ);
|
||
end;
|
||
|
||
if trim(ComboBox1.Text) = '<27><><EFBFBD><EFBFBD><EFBFBD>ܽᵥ' then
|
||
begin
|
||
with ADOQueryTmp do
|
||
begin
|
||
|
||
Close;
|
||
sql.Clear;
|
||
sql.add('exec P_Print_CKBMD4 ');
|
||
sql.add('@CKOrdNo=' + quotedstr(Trim(FFSID)));
|
||
Open;
|
||
end;
|
||
SCreateCDS20(ADOQueryTmp, CDS_PRT);
|
||
SInitCDSData20(ADOQueryTmp, CDS_PRT);
|
||
end;
|
||
|
||
if trim(ComboBox1.Text) = '<27>泵ϸ<E6B3B5>뵥' then
|
||
begin
|
||
with ADOQueryTmp do
|
||
begin
|
||
|
||
Close;
|
||
sql.Clear;
|
||
sql.add('exec P_Print_CKBMD5 ');
|
||
sql.add('@CKOrdNo=' + quotedstr(Trim(FFSID)));
|
||
Open;
|
||
end;
|
||
SCreateCDS20(ADOQueryTmp, CDS_PRT);
|
||
SInitCDSData20(ADOQueryTmp, CDS_PRT);
|
||
end;
|
||
RMXLSExport1:= TRMXLSExport.Create(RMXLSExport1);
|
||
ExportFtErpFile(trim(ComboBox1.Text) + '.rmf', ADOQueryTmp);
|
||
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + Trim(ComboBox1.Text) + '.rmf';
|
||
if FileExists(fPrintFile) then
|
||
begin
|
||
RM3.LoadFromFile(fPrintFile);
|
||
RMVariables['ZDR'] := trim(DName);
|
||
RM3.ShowReport;
|
||
end
|
||
else
|
||
begin
|
||
Application.MessageBox(PChar('û<><C3BB><EFBFBD>ҵ<EFBFBD>' + fPrintFile), '<27><>ʾ', 0);
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmCPDBAOList.edtFHSQBtnClick(Sender: TObject);
|
||
var
|
||
FBaoID: string;
|
||
FMainID: string;
|
||
begin
|
||
try
|
||
frmFHSQListSel := TfrmFHSQListSel.Create(self);
|
||
with frmFHSQListSel do
|
||
begin
|
||
FSQStatus := '<27>Ѵ<EFBFBD><D1B4><EFBFBD>';
|
||
if ShowModal = 1 then
|
||
begin
|
||
FFSID := Trim(Order_Main.fieldbyname('FSID').AsString);
|
||
BaoLab.Text := Trim(Order_Main.fieldbyname('BaoLab').AsString);
|
||
edtStatus.Text := Trim(Order_Main.fieldbyname('Status').AsString);
|
||
end;
|
||
end;
|
||
finally
|
||
frmFHSQListSel.Free;
|
||
end;
|
||
edtFHSQ.SetFocus;
|
||
|
||
InitGridYDB();
|
||
InitGridFHZB();
|
||
end;
|
||
|
||
procedure TfrmCPDBAOList.edtFHSQKeyPress(Sender: TObject; var Key: Char);
|
||
begin
|
||
if Key = #13 then
|
||
begin
|
||
FFSID := Trim(edtFHSQ.Text);
|
||
with ADOQueryTmp do
|
||
begin
|
||
Close;
|
||
sql.Clear;
|
||
Sql.Add(' select A.* ');
|
||
sql.Add(' from FHSQ_Main_CP A');
|
||
SQL.Add(' where isnull(A.Chker,'''')= ' + quotedstr(Trim(FFSID)));
|
||
Open;
|
||
end;
|
||
BaoLab.Text := Trim(ADOQueryTmp.fieldbyname('BaoLab').AsString);
|
||
edtStatus.Text := Trim(ADOQueryTmp.fieldbyname('Status').AsString);
|
||
InitGridFHZB();
|
||
InitGridYDB();
|
||
edtFHSQ.Text := '';
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmCPDBAOList.cxButton2Click(Sender: TObject);
|
||
begin
|
||
if FFSID = '' then
|
||
Exit;
|
||
try
|
||
ADOQueryCmd.Connection.BeginTrans;
|
||
|
||
with ADOQueryCmd do
|
||
begin
|
||
close;
|
||
sql.Clear;
|
||
sql.Add('update FHSQ_Main_CP SET Status=''<27><>ȷ<EFBFBD><C8B7>'' ');
|
||
sql.Add('where FSID=' + quotedstr(Trim(FFSID)));
|
||
sql.Add('and Status<>''<27>ѷ<EFBFBD><D1B7><EFBFBD>''');
|
||
execsql;
|
||
end;
|
||
|
||
ADOQueryCmd.Connection.CommitTrans;
|
||
edtStatus.Text := '<27><>ȷ<EFBFBD><C8B7>';
|
||
except
|
||
ADOQueryCmd.Connection.RollbackTrans;
|
||
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmCPDBAOList.TV1CustomDrawIndicatorCell(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;
|
||
|
||
end.
|
||
|