Apply new .gitignore

This commit is contained in:
DESKTOP-E401PHE\Administrator 2025-07-19 16:54:23 +08:00
parent ff5a18cd95
commit 914ef198d5
362 changed files with 454934 additions and 1311 deletions

6
.gitignore vendored
View File

@ -14,3 +14,9 @@
*.~dfm
*.~ddp
*.~dpr
*.~dpr
*.~bpg
*.identcache
*.local
*.zip
*.rar

View File

@ -0,0 +1,307 @@
object frmLabelAdd: TfrmLabelAdd
Left = 191
Top = 109
Width = 997
Height = 612
BorderIcons = [biMaximize]
Caption = #26631#31614#32534#36753
Color = clBtnFace
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
OldCreateOrder = False
OnCreate = FormCreate
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 12
object Panel1: TPanel
Left = 0
Top = 28
Width = 413
Height = 513
BevelInner = bvRaised
BevelOuter = bvLowered
TabOrder = 0
object Label1: TLabel
Left = 40
Top = 404
Width = 60
Height = 12
Caption = #23458#25143#21517#31216#65306
Enabled = False
Font.Charset = GB2312_CHARSET
Font.Color = clBlue
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
ParentFont = False
Visible = False
end
object Label2: TLabel
Left = 31
Top = 69
Width = 60
Height = 12
Caption = #26631#31614#25991#20214#65306
Font.Charset = GB2312_CHARSET
Font.Color = clBlue
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
ParentFont = False
end
object Label3: TLabel
Left = 31
Top = 95
Width = 60
Height = 12
Caption = #22791' '#27880#65306
end
object Label9: TLabel
Left = 32
Top = 16
Width = 60
Height = 12
Caption = #26631#31614#21517#31216#65306
Font.Charset = ANSI_CHARSET
Font.Color = clBlue
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
ParentFont = False
end
object Label10: TLabel
Left = 32
Top = 44
Width = 60
Height = 12
Caption = #26631#31614#31867#22411#65306
Font.Charset = ANSI_CHARSET
Font.Color = clBlue
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
ParentFont = False
end
object customerNo: TBtnEditA
Left = 104
Top = 400
Width = 295
Height = 20
Enabled = False
ReadOnly = True
TabOrder = 0
Visible = False
OnBtnClick = customerNoBtnClick
end
object LabelFileName: TBtnEditA
Left = 92
Top = 65
Width = 260
Height = 20
ReadOnly = True
TabOrder = 1
OnBtnClick = LabelFileNameBtnClick
end
object beizhu: TMemo
Left = 92
Top = 92
Width = 257
Height = 149
ScrollBars = ssBoth
TabOrder = 2
end
object BtOpen: TBitBtn
Left = 353
Top = 64
Width = 36
Height = 19
Caption = #25171#24320
TabOrder = 3
OnClick = BtOpenClick
end
object LabelCaption: TEdit
Left = 92
Top = 12
Width = 260
Height = 20
TabOrder = 4
end
object LabelType: TFTComboBox
Tag = 99
Left = 92
Top = 37
Width = 260
Height = 20
Style = csDropDownList
ItemHeight = 12
ItemIndex = 0
TabOrder = 5
Text = #20013#25991#26631#31614
Items.Strings = (
#20013#25991#26631#31614
#33521#25991#26631#31614
#20013#33521#25991#26631#31614)
end
end
object ToolBar1: TToolBar
Left = 0
Top = 0
Width = 981
Height = 20
AutoSize = True
ButtonHeight = 18
ButtonWidth = 60
Caption = 'ToolBar2'
Color = clBtnFace
Flat = True
List = True
ParentColor = False
ShowCaptions = True
TabOrder = 1
Transparent = False
object Tsave: TToolButton
Left = 0
Top = 0
AutoSize = True
Caption = #20445#23384#26631#31614
ImageIndex = 5
OnClick = TsaveClick
end
object Tclose: TToolButton
Left = 64
Top = 0
AutoSize = True
Caption = #20851#38381
ImageIndex = 10
OnClick = TcloseClick
end
end
object RMPreview1: TRMPreview
Left = 428
Top = 20
Width = 553
Height = 553
Align = alRight
BevelOuter = bvLowered
Caption = #26631#31614#39044#35272
TabOrder = 2
OnDblClick = RMPreview1DblClick
Options.RulerUnit = rmutScreenPixels
Options.RulerVisible = False
Options.DrawBorder = False
Options.BorderPen.Color = clGray
Options.BorderPen.Style = psDash
end
object ADOQueryCmd: TADOQuery
Connection = LabelSet_DataLink.ADOLink
CommandTimeout = 300
Parameters = <>
Left = 512
Top = 208
end
object OpenDialog1: TOpenDialog
Filter = 'RMFl(*.rmf)|*.rmf'
InitialDir = '.'
Left = 200
Top = 4
end
object RMGridReport1: TRMGridReport
ThreadPrepareReport = True
InitialZoom = pzDefault
PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator]
DefaultCollate = False
ShowPrintDialog = False
SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\'
Preview = RMPreview1
PreviewOptions.RulerUnit = rmutScreenPixels
PreviewOptions.RulerVisible = False
PreviewOptions.DrawBorder = False
PreviewOptions.BorderPen.Color = clGray
PreviewOptions.BorderPen.Style = psDash
CompressLevel = rmzcFastest
CompressThread = False
LaterBuildEvents = True
OnlyOwnerDataSet = False
Left = 336
Top = 8
ReportData = {}
end
object ADOQueryTmp: TADOQuery
Connection = LabelSet_DataLink.ADOLink
LockType = ltReadOnly
CommandTimeout = 300
Parameters = <>
Left = 528
Top = 184
end
object RMGridReportDesigner1: TRMGridReportDesigner
Left = 376
Top = 8
end
object RMBarCodeObject1: TRMBarCodeObject
Left = 280
Top = 4
end
object RMBMPExport1: TRMBMPExport
ScaleX = 1.000000000000000000
ScaleY = 1.000000000000000000
Left = 408
Top = 8
end
object RMXLSExport1: TRMXLSExport
ShowAfterExport = True
ExportPrecision = 1
PagesOfSheet = 10
ExportImages = True
ExportFrames = True
ExportImageFormat = ifBMP
JPEGQuality = 0
ScaleX = 1.000000000000000000
ScaleY = 1.000000000000000000
CompressFile = False
Left = 440
Top = 8
end
object RMDS_Main: TRMDBDataSet
Visible = True
AliasName = #26631#31614#25968#25454
Left = 498
Top = 72
end
object RMDataDictionary1: TRMDataDictionary
FieldFieldNames.TableName = 'TableName'
FieldFieldNames.FieldName = 'FieldName'
FieldFieldNames.FieldAlias = 'FieldAlias'
Left = 562
Top = 72
end
object ADOQuery1: TADOQuery
Connection = LabelSet_DataLink.ADOLink
Parameters = <>
Left = 352
Top = 480
end
object RMGridReport2: TRMGridReport
ThreadPrepareReport = True
InitialZoom = pzDefault
PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator]
DefaultCollate = False
SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\'
PreviewOptions.RulerUnit = rmutScreenPixels
PreviewOptions.RulerVisible = False
PreviewOptions.DrawBorder = False
PreviewOptions.BorderPen.Color = clGray
PreviewOptions.BorderPen.Style = psDash
Dataset = RMDS_Main
CompressLevel = rmzcFastest
CompressThread = False
LaterBuildEvents = True
OnlyOwnerDataSet = False
Left = 432
Top = 368
ReportData = {}
end
end

View File

@ -0,0 +1,344 @@
unit U_LabelAdd;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, StdCtrls, BtnEdit, ExtCtrls, DB, ADODB,
RM_System, RM_Common, RM_Class, RM_GridReport, Buttons, FTComboBox,
RM_Preview, RM_e_Xls, RM_e_Graphic, RM_e_bmp, RM_BarCode,
RM_DsgGridReport, RM_Dataset, cxStyles, cxCustomData, cxGraphics,
cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid;
type
TfrmLabelAdd = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
customerNo: TBtnEditA;
LabelFileName: TBtnEditA;
beizhu: TMemo;
ToolBar1: TToolBar;
Tsave: TToolButton;
Tclose: TToolButton;
ADOQueryCmd: TADOQuery;
OpenDialog1: TOpenDialog;
RMGridReport1: TRMGridReport;
BtOpen: TBitBtn;
Label9: TLabel;
LabelCaption: TEdit;
Label10: TLabel;
LabelType: TFTComboBox;
ADOQueryTmp: TADOQuery;
RMPreview1: TRMPreview;
RMGridReportDesigner1: TRMGridReportDesigner;
RMBarCodeObject1: TRMBarCodeObject;
RMBMPExport1: TRMBMPExport;
RMXLSExport1: TRMXLSExport;
RMDS_Main: TRMDBDataSet;
RMDataDictionary1: TRMDataDictionary;
ADOQuery1: TADOQuery;
RMGridReport2: TRMGridReport;
procedure TcloseClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TsaveClick(Sender: TObject);
procedure LabelFileNameBtnClick(Sender: TObject);
procedure customerNoBtnClick(Sender: TObject);
procedure BtOpenClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure RMPreview1DblClick(Sender: TObject);
private
fIsChg:Boolean;
function SaveData():Boolean;
function EditData():Boolean;
procedure InitWinData();
procedure InitVarDictionary();
procedure InitDataSetDictionary();
public
fcustomNo:string;
fKeyNo:string;
fWinStatus:integer;
end;
var
frmLabelAdd: TfrmLabelAdd;
implementation
uses
U_DataLink,U_RTFun;
{$R *.dfm}
procedure TfrmLabelAdd.TcloseClick(Sender: TObject);
begin
if fIsChg then
begin
if application.MessageBox('标签设计过,是否要保存?','提示信息',1)=1 then
begin
Tsave.Click ;
end
else
close;
end
else
close;
end;
procedure TfrmLabelAdd.FormCreate(Sender: TObject);
begin
panel1.Align :=alClient;
fIsChg:=false;
// ClearWinData(panel1);
// InitVarDictionary();
end;
procedure TfrmLabelAdd.TsaveClick(Sender: TObject);
begin
if trim(labelCaption.Text)='' then
begin
application.MessageBox('标签名称不能为空!','提示');
labelCaption.SetFocus;
exit;
end;
if trim(LabelFileName.Text)='' then
begin
application.MessageBox('标签文件不能为空,请选择标签!','提示');
LabelFileName.SetFocus;
exit;
end;
if fWinStatus=0 then
begin
if SaveData() then
begin
ModalResult:=1;
end;
end
else
begin
if EditData() then
begin
ModalResult:=1;
end;
end;
end;
/////////////////////////////////////////////////////////////////////
//函数功能:保存数据
/////////////////////////////////////////////////////////////////////
function TfrmLabelAdd.SaveData():Boolean;
begin
try
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from P_Label');
sql.Add('where 1<>1');
Open;
Append;
fieldByName('CustomerNO').value:=trim(customerno.txtCode);
fieldByName('filler').value:=DName;
fieldByName('filltime').value:=DServerDate;
fieldByName('beizhu').value:= trim(beizhu.text);
fieldByName('LabelCaption').value:=trim(LabelCaption.text);
fieldByName('LabelType').value:=trim(LabelType.text);
fieldByName('LabelFileName').value:= trim(LabelFileName.text);
//TBlobField(FieldByName('LabelFile')).LoadFromStream(fStream);
RMGridReport1.SaveToBlobField(TBlobField(FieldByName('LabelFile')));
Post;
end;
result:=true;
except
Result:=false;
application.MessageBox('保存标签模板出错!','警告信息',0);
end;
end;
/////////////////////////////////////////////////////////////////////
//函数功能:保存数据
/////////////////////////////////////////////////////////////////////
function TfrmLabelAdd.EditData():Boolean;
begin
try
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from P_Label');
sql.Add('where labelId='+fkeyNo);
Open;
Edit;
fieldByName('LabelCaption').value:=trim(LabelCaption.text);
fieldByName('LabelType').value:=trim(LabelType.text);
fieldByName('LabelFileName').value:= trim(LabelFileName.text);
RMGridReport1.SaveToBlobField(TBlobField(FieldByName('LabelFile')));
fieldByName('Editer').value:=DName;
fieldByName('EditTime').value:=DServerDate;
fieldByName('beizhu').value:= trim(beizhu.text);
Post;
end;
result:=true;
except
Result:=false;
application.MessageBox('保存标签模板出错!','警告信息',0);
end;
end;
procedure TfrmLabelAdd.LabelFileNameBtnClick(Sender: TObject);
begin
if OpenDialog1.Execute() then
begin
LabelFileName.Text:=OpenDialog1.FileName;
RMGridReport1.LoadFromFile(LabelFileName.Text);
RMGridReport1.Preview :=RMPreview1;
RMGridReport1.ShowReport ;
end;
end;
procedure TfrmLabelAdd.customerNoBtnClick(Sender: TObject);
begin
{
FormGetCust:=TFormGetCust.Create(self);
if FormGetCust.ShowModal=mrok then
begin
customNo.TxtCode:=trim(FormGetCust.ADOQuery1.Fieldbyname('customno').AsString);
customNo.Text:=trim(FormGetCust.ADOQuery1.Fieldbyname('shortname').AsString);
end;
FormGetCust.Free;
}
{ frmCustHelp:=TfrmCustHelp.create(self);
with frmCustHelp do
begin
if showModal=1 then
begin
customNo.TxtCode:=trim(ADOQueryHelp.Fieldbyname('customno').AsString);
customNo.Text:=trim(ADOQueryHelp.Fieldbyname('shortname').AsString);
end;
free;
end; }
end;
procedure TfrmLabelAdd.BtOpenClick(Sender: TObject);
begin
with RMGridReport2 do
begin
if trim(LabelFileName.Text)='' then
LoadFromFile(ExtractFilePath(Application.ExeName)+'report/标签模板.rmf');
InitDataSetDictionary();
RMDS_Main.DataSet :=ADOQuery1;
application.ProcessMessages;
DesignReport() ;
fIsChg:=true;
RMDS_Main.DataSet :=nil;
RMGridReport1.NewReport;
RMGridReport1.LoadFromFile(LabelFileName.Text);
RMGridReport1.ShowReport ;
end;
end;
////////////////////////////////////////////////////////////
//初始化窗口数据
////////////////////////////////////////////////////////////
procedure TfrmLabelAdd.InitWinData();
begin
try
with ADOQueryTmp do
begin
close;
sql.Clear ;
sql.Add('select A.*');
// sql.Add('customNoName=isnull((select customName from BC_customer where customNO=A.customNo),A.customNo)');
sql.Add('from P_Label A');
sql.Add('WHERE LabelId='+fkeyNo);
Open;
if isEmpty then
begin
close;
exit;
end;
SSetWinData(ADOQueryTmp,panel1);
RMGridReport1.LoadFromBlobField(tblobfield(fieldbyname('labelFile')));
RMGridReport2.FileName:=trim(fieldByName('labelFileName').AsString);
RMGridReport2.LoadFromBlobField(tblobfield(fieldbyname('labelFile')));
RMGridReport1.Preview :=RMPreview1;
//RMGridReport1.PrepareReport;
RMGridReport1.ShowReport ;
end;
except
end;
end;
procedure TfrmLabelAdd.FormShow(Sender: TObject);
begin
if fWinStatus>0 then
InitWinData();
end;
procedure TfrmLabelAdd.RMPreview1DblClick(Sender: TObject);
begin
//btOpen.Click ;
end;
////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////
procedure TfrmLabelAdd.InitVarDictionary();
var
i:integer;
begin
{ try
with RMGridReport2 do
begin
Dictionary.Variables.Clear ;
Dictionary.Variables.AddCategory('客户单位信息');
with ADOQueryTmp do
begin
close;
sql.clear;
sql.Add('exec P_Label_CustPrintData');
sql.Add(quotedStr(fCustomNo));
Open;
for i:=0 to FieldCount-1 do
begin
Dictionary.Variables.Add(trim(fields[i].FieldName)
,'');
Dictionary.Variables.AsString[trim(fields[i].FieldName)]:=trim(fields[i].AsString);
end;
end;
end;
finally
end; }
end;
/////////////////////////////////////////////////
//
/////////////////////////////////////////////////
procedure TfrmLabelAdd.InitDataSetDictionary();
begin
{ with ADOQuery1 do
begin
close;
sql.Clear ;
sql.Add('exec P_Label_PrintSet');
sql.Add(quotedStr(''));
//sql.Add(','+quotedStr(''));
//sql.Add(','+quotedStr(''));
//sql.Add(','+quotedStr(''));
//sql.Add(','+quotedStr(''));
OPen;
end;
with RMGridReport2 do
begin
Dictionary.FieldAliases.Clear;
Dictionary.FieldAliases['RMDS_Main']:= '标签数据';
Dictionary.FieldAliases['RMDS_Main."barcode"']:='标签条码';
end; }
end;
end.

View File

@ -0,0 +1,428 @@
object frmLabelList: TfrmLabelList
Left = 192
Top = 29
Width = 1057
Height = 705
BorderIcons = [biMaximize]
Caption = #26631#31614#20449#24687
Color = clBtnFace
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
OldCreateOrder = False
Position = poOwnerFormCenter
OnClose = FormClose
OnCreate = FormCreate
OnDestroy = FormDestroy
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 12
object Panel1: TPanel
Left = 12
Top = 80
Width = 452
Height = 561
BevelOuter = bvNone
TabOrder = 0
object Panel2: TPanel
Left = 0
Top = 3
Width = 452
Height = 558
Align = alClient
BevelInner = bvRaised
BevelOuter = bvLowered
TabOrder = 0
object cxGrid1: TcxGrid
Left = 2
Top = 2
Width = 448
Height = 554
Align = alClient
TabOrder = 0
object tv1: TcxGridDBTableView
OnDblClick = tv1DblClick
NavigatorButtons.ConfirmDelete = False
OnFocusedRecordChanged = tv1FocusedRecordChanged
DataController.DataSource = DS_Label
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <>
DataController.Summary.SummaryGroups = <>
OptionsCustomize.ColumnFiltering = False
OptionsSelection.CellSelect = False
OptionsView.GroupByBox = False
object tv1labelId: TcxGridDBColumn
Caption = #26631#31614'ID'
DataBinding.FieldName = 'labelId'
Width = 53
end
object tv1labeltype: TcxGridDBColumn
Caption = #26631#31614#31867#22411
DataBinding.FieldName = 'labeltype'
HeaderAlignmentHorz = taCenter
HeaderAlignmentVert = vaCenter
Width = 90
end
object tv1labelCaption: TcxGridDBColumn
Caption = #26631#31614#26631#39064
DataBinding.FieldName = 'labelCaption'
HeaderAlignmentHorz = taCenter
HeaderAlignmentVert = vaCenter
Width = 120
end
object tv1labelFile: TcxGridDBColumn
Caption = #25991#20214#21517
DataBinding.FieldName = 'labelFile'
HeaderAlignmentHorz = taCenter
HeaderAlignmentVert = vaCenter
Width = 167
end
end
object cxGrid1Level1: TcxGridLevel
GridView = tv1
end
end
end
object Panel3: TPanel
Left = 0
Top = 0
Width = 452
Height = 3
Align = alTop
Caption = 'Panel3'
TabOrder = 1
Visible = False
object Label1: TLabel
Left = 40
Top = 13
Width = 60
Height = 12
Caption = #23458#25143#21517#31216#65306
Font.Charset = GB2312_CHARSET
Font.Color = clBlue
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
ParentFont = False
end
object Label2: TLabel
Left = 52
Top = 35
Width = 48
Height = 12
Caption = #19994#21153#21592#65306
Visible = False
end
object Label4: TLabel
Left = 40
Top = 61
Width = 60
Height = 12
Caption = #30005#35805#21495#30721#65306
end
object Label5: TLabel
Left = 39
Top = 86
Width = 60
Height = 12
Caption = #20844#21496#21517#31216#65306
end
object Label6: TLabel
Left = 14
Top = 108
Width = 84
Height = 12
Caption = #20844#21496#33521#25991#21517#31216#65306
end
object Label7: TLabel
Left = 61
Top = 133
Width = 36
Height = 12
Caption = #22320#22336#65306
end
object Label8: TLabel
Left = 37
Top = 157
Width = 60
Height = 12
Caption = #33521#25991#22320#22336#65306
end
object Label3: TLabel
Left = 61
Top = 192
Width = 36
Height = 12
Caption = #22791#27880#65306
end
object Note: TMemo
Left = 120
Top = 175
Width = 293
Height = 63
ScrollBars = ssBoth
TabOrder = 0
end
object EngAddress: TEdit
Left = 120
Top = 151
Width = 294
Height = 20
Enabled = False
TabOrder = 1
end
object ChnAddress: TEdit
Left = 120
Top = 127
Width = 293
Height = 20
TabOrder = 2
end
object engFactory: TEdit
Left = 119
Top = 104
Width = 295
Height = 20
TabOrder = 3
end
object ChnFactory: TEdit
Left = 119
Top = 81
Width = 294
Height = 20
TabOrder = 4
end
object TelePhone: TEdit
Left = 119
Top = 58
Width = 294
Height = 20
TabOrder = 5
end
object ywy: TEdit
Tag = 99
Left = 119
Top = 31
Width = 295
Height = 20
ReadOnly = True
TabOrder = 6
Text = 'ywy'
Visible = False
end
object customNo: TBtnEditA
Tag = 1
Left = 120
Top = 7
Width = 295
Height = 20
Enabled = False
ReadOnly = True
TabOrder = 7
OnBtnClick = customNoBtnClick
end
end
end
object RMPreview1: TRMPreview
Left = 488
Top = 85
Width = 553
Height = 581
Align = alRight
BevelOuter = bvLowered
Caption = 'Insert After'
Font.Charset = GB2312_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
ParentFont = False
ParentShowHint = False
ShowHint = False
TabOrder = 1
OnDblClick = RMPreview1DblClick
Options.RulerUnit = rmutScreenPixels
Options.RulerVisible = False
Options.DrawBorder = False
Options.BorderPen.Color = clGray
Options.BorderPen.Style = psDash
end
object ToolBar2: TToolBar
Left = 0
Top = 0
Width = 1041
AutoSize = True
ButtonHeight = 30
ButtonWidth = 83
Caption = 'ToolBar2'
Color = clBtnFace
Flat = True
Images = LabelSet_DataLink.ThreeImgList
List = True
ParentColor = False
ShowCaptions = True
TabOrder = 2
Transparent = False
object ToolButton1: TToolButton
Left = 0
Top = 0
AutoSize = True
Caption = #26597#35810
ImageIndex = 21
OnClick = ToolButton1Click
end
object TOK: TToolButton
Left = 63
Top = 0
AutoSize = True
Caption = #30830#23450
ImageIndex = 41
OnClick = TOkClick
end
object Tadd: TToolButton
Left = 126
Top = 0
AutoSize = True
Caption = #26032#22686#26631#31614
ImageIndex = 44
OnClick = TaddClick
end
object Tupd: TToolButton
Left = 213
Top = 0
AutoSize = True
Caption = #20462#25913#26631#31614
ImageIndex = 54
OnClick = TupdClick
end
object Tdel: TToolButton
Left = 300
Top = 0
AutoSize = True
Caption = #21024#38500#26631#31614
ImageIndex = 48
OnClick = TdelClick
end
object Tclose: TToolButton
Left = 387
Top = 0
AutoSize = True
Caption = #20851#38381
ImageIndex = 55
OnClick = TcloseClick
end
end
object Panel4: TPanel
Left = 0
Top = 32
Width = 1041
Height = 53
Align = alTop
BevelInner = bvRaised
BevelOuter = bvLowered
TabOrder = 3
object Label9: TLabel
Left = 36
Top = 20
Width = 48
Height = 12
Caption = #26631#31614#31867#22411
end
object Label10: TLabel
Left = 280
Top = 20
Width = 48
Height = 12
Caption = #26631#31614#26631#39064
end
object LabelCaption: TEdit
Left = 332
Top = 16
Width = 100
Height = 20
TabOrder = 0
OnChange = LabelTypeChange
end
object LabelType: TFTComboBox
Tag = 99
Left = 88
Top = 17
Width = 100
Height = 20
Style = csDropDownList
ItemHeight = 12
ItemIndex = 0
TabOrder = 1
OnChange = LabelTypeChange
Items.Strings = (
''
#20013#25991#26631#31614
#33521#25991#26631#31614
#20013#33521#25991#26631#31614)
end
end
object ADOQueryCmd: TADOQuery
Connection = LabelSet_DataLink.ADOLink
CommandTimeout = 300
Parameters = <>
Left = 508
Top = 208
end
object OpenDialog1: TOpenDialog
Filter = 'RMFl(*.rmf)|*.rmf'
InitialDir = '.'
Left = 316
Top = 148
end
object RMGridReport1: TRMGridReport
ThreadPrepareReport = True
InitialZoom = pzDefault
PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator]
ModalPreview = False
DefaultCollate = False
ShowPrintDialog = False
SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\'
Preview = RMPreview1
PreviewOptions.RulerUnit = rmutScreenPixels
PreviewOptions.RulerVisible = False
PreviewOptions.DrawBorder = False
PreviewOptions.BorderPen.Color = clGray
PreviewOptions.BorderPen.Style = psDash
CompressLevel = rmzcFastest
CompressThread = False
LaterBuildEvents = True
OnlyOwnerDataSet = False
Left = 436
Top = 152
ReportData = {}
end
object ADOQueryTmp: TADOQuery
Connection = LabelSet_DataLink.ADOLink
LockType = ltReadOnly
CommandTimeout = 300
Parameters = <>
Left = 528
Top = 184
end
object ADOQuery1: TADOQuery
Connection = LabelSet_DataLink.ADOLink
Parameters = <>
Left = 392
Top = 228
end
object DS_Label: TDataSource
DataSet = ADOQueryLabel
Left = 66
Top = 456
end
object ADOQueryLabel: TADOQuery
Connection = LabelSet_DataLink.ADOLink
LockType = ltReadOnly
CommandTimeout = 300
Parameters = <>
Left = 114
Top = 464
end
end

View File

@ -0,0 +1,612 @@
unit U_LabelList;
interface
uses
Windows, Messages, SysUtils, StrUtils,Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, StdCtrls, BtnEdit, ExtCtrls, DB, ADODB,
RM_System, RM_Common, RM_Class, RM_GridReport, Buttons, FTComboBox,
RM_Preview, RM_e_Xls, RM_e_Graphic, RM_e_bmp, RM_BarCode,
RM_DsgGridReport, RM_Dataset, cxStyles, cxCustomData, cxGraphics,
cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid;
type
TfrmLabelList = class(TForm)
Panel1: TPanel;
ADOQueryCmd: TADOQuery;
OpenDialog1: TOpenDialog;
RMGridReport1: TRMGridReport;
ADOQueryTmp: TADOQuery;
RMPreview1: TRMPreview;
ADOQuery1: TADOQuery;
Panel2: TPanel;
cxGrid1: TcxGrid;
tv1: TcxGridDBTableView;
tv1labeltype: TcxGridDBColumn;
tv1labelCaption: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
tv1labelFile: TcxGridDBColumn;
DS_Label: TDataSource;
ADOQueryLabel: TADOQuery;
Panel3: TPanel;
Note: TMemo;
EngAddress: TEdit;
ChnAddress: TEdit;
engFactory: TEdit;
ChnFactory: TEdit;
TelePhone: TEdit;
ywy: TEdit;
customNo: TBtnEditA;
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label3: TLabel;
tv1labelId: TcxGridDBColumn;
ToolBar2: TToolBar;
Tadd: TToolButton;
Tupd: TToolButton;
Tdel: TToolButton;
TOK: TToolButton;
Tclose: TToolButton;
Panel4: TPanel;
ToolButton1: TToolButton;
Label9: TLabel;
Label10: TLabel;
LabelCaption: TEdit;
LabelType: TFTComboBox;
procedure TcloseClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TsaveClick(Sender: TObject);
procedure customNoBtnClick(Sender: TObject);
procedure BtOpenClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure RMPreview1DblClick(Sender: TObject);
procedure TaddClick(Sender: TObject);
procedure TupdClick(Sender: TObject);
procedure tv1FocusedRecordChanged(Sender: TcxCustomGridTableView;
APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord;
ANewItemRecordFocusingChanged: Boolean);
procedure TdelClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure TOkClick(Sender: TObject);
procedure tv1DblClick(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure LabelTypeChange(Sender: TObject);
private
isLoad:Boolean;
function SaveData():Boolean;
function EditData():Boolean;
function IsCheckCustOk():Boolean;
function DeleteData():Boolean;
procedure InitWinData();
procedure InitVarDictionary();
procedure InitDataSetDictionary();
procedure InitGrid();
procedure OpenLabel();
procedure SetWinStatus();
procedure DoFilter();
public
fSelLabelId:String;
fKeyNo:string;
fchg:Boolean;
fIsShowModal:Boolean;
fWinStatus:integer;
end;
var
frmLabelList: TfrmLabelList;
implementation
uses
U_DataLink, U_LabelAdd;
{$R *.dfm}
procedure TfrmLabelList.DoFilter();
var
filterStr:string;
begin
filterStr:='';
//计划单号
if trim(LabelType.Text) <>'' then
begin
filterStr:=' and LabelType like '+quotedStr('%'+trim(LabelType.Text)+'%');
end;
//名称
if trim(LabelCaption.Text)<>'' then
begin
filterStr:=filterStr+' and LabelCaption like '+quotedStr('%'+trim(LabelCaption.Text)+'%');
end;
try
ADOQueryLabel.DisableControls ;
if trim(filterStr)='' then
begin
ADOQueryLabel.Filtered:=false;
ADOQueryLabel.EnableControls;
exit;
end;
filterStr:=trim(RightBStr(filterStr,length(filterStr)-4));
with ADOQueryLabel do
begin
filtered:=false;
filter:=filterStr;
filtered:=true;
end;
finally
ADOQueryLabel.EnableControls;
end;
end;
procedure TfrmLabelList.TcloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmLabelList.FormCreate(Sender: TObject);
begin
panel1.Align :=alClient;
// ClearWinData(panel3);
fSelLabelId := '';
end;
procedure TfrmLabelList.TsaveClick(Sender: TObject);
begin
if trim(customNO.Text)='' then
begin
application.MessageBox('客户名称不能为空,请选择客户!','提示');
customNo.SetFocus;
exit;
end;
if application.MessageBox('确定要保存吗?','提示信息',1)=2 then exit;
if fWinStatus=0 then
begin
if not IsCheckCustOk() then exit;
if SaveData() then
begin
fWinStatus:=1;
fchg:=true;
SetWinStatus();
end;
end
else
begin
if EditData() then
begin
fchg:=true;
application.MessageBox('保存成功!','提示信息',0)
end;
end;
end;
/////////////////////////////////////////////////////////////////////
//函数功能:保存数据
/////////////////////////////////////////////////////////////////////
function TfrmLabelList.SaveData():Boolean;
begin
try
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from JD_Label');
sql.Add('where 1<>1');
Open;
Append;
fieldByName('customno').value:=trim(customno.txtCode);
fieldByName('ChnFactory').value:=trim(ChnFactory.text);
fieldByName('engFactory').value:=trim(engFactory.text);
fieldByName('TelePhone').value:=trim(TelePhone.text);
fieldByName('ChnAddress').value:=trim(ChnAddress.text);
fieldByName('EngAddress').value:=trim(EngAddress.text);
fieldByName('filler').value:=Dname;
fieldByName('filltime').value:=DServerDate;
fieldByName('note').value:= trim(Note.text);
Post;
end;
result:=true;
except
Result:=false;
application.MessageBox('保存标签模板出错!','警告信息',0);
end;
end;
/////////////////////////////////////////////////////////////////////
//函数功能:保存数据
/////////////////////////////////////////////////////////////////////
function TfrmLabelList.EditData():Boolean;
begin
try
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from JD_Label');
sql.Add('where customNo='+fKeyNo);
Open;
Edit;
fieldByName('customno').value:=trim(customno.txtCode);
fieldByName('ChnFactory').value:=trim(ChnFactory.text);
fieldByName('engFactory').value:=trim(engFactory.text);
fieldByName('TelePhone').value:=trim(TelePhone.text);
fieldByName('ChnAddress').value:=trim(ChnAddress.text);
fieldByName('EngAddress').value:=trim(EngAddress.text);
fieldByName('note').value:= trim(Note.text);
Post;
end;
result:=true;
except
Result:=false;
application.MessageBox('保存标签模板出错!','警告信息',0);
end;
end;
procedure TfrmLabelList.customNoBtnClick(Sender: TObject);
begin
{ FormGetCust:=TFormGetCust.Create(self);
if FormGetCust.ShowModal=mrok then
begin
customNo.TxtCode:=trim(FormGetCust.ADOQuery1.Fieldbyname('customno').AsString);
customNo.Text:=trim(FormGetCust.ADOQuery1.Fieldbyname('shortname').AsString);
end;
FormGetCust.Free; }
{ frmCustHelp:=TfrmCustHelp.create(self);
with frmCustHelp do
begin
if showModal=1 then
begin
customNo.TxtCode:=trim(ADOQueryHelp.Fieldbyname('customno').AsString);
customNo.Text:=trim(ADOQueryHelp.Fieldbyname('shortname').AsString);
end;
free;
end;
}
end;
procedure TfrmLabelList.BtOpenClick(Sender: TObject);
begin
end;
////////////////////////////////////////////////////////////
//初始化窗口数据
////////////////////////////////////////////////////////////
procedure TfrmLabelList.InitWinData();
begin
try
with ADOQueryTmp do
begin
close;
sql.Clear ;
sql.Add('select A.* ,B.customName as customNoName');
sql.Add('from JD_Label A');
sql.Add('INNER JOIN BC_customer B ON A.customNO=B.customNo');
sql.Add('WHERE B.customNo='''+fkeyNo+'''');
Open;
if isEmpty then
begin
close;
exit;
end;
// SetWinData(ADOQueryTmp,panel3);
{
RMGridReport1.LoadFromBlobField(tblobfield(fieldbyname('labelFile')));
RMGridReport1.Preview :=RMPreview1;
RMGridReport1.PrepareReport;
RMGridReport1.ShowReport ;
}
end;
except
end;
end;
procedure TfrmLabelList.FormShow(Sender: TObject);
begin
{ with ADOquerytmp do
begin
close;
sql.Clear ;
sql.Add('select count(A.customNo) as cnt');
sql.Add('from jd_label A');
sql.Add('where A.customNo='''+fKeyNO+'''');
Open;
fWinStatus:=fieldByName('cnt').AsInteger ;
///
if fWinStatus=0 then
begin
close;
sql.Clear ;
sql.Add('select customNo,shortName from bc_customer');
sql.Add('where customNo='''+fKeyNO+'''');
Open;
if RecordCount>0 then
begin
customNo.TxtCode :=trim(fieldByName('customNo').AsString);
customNo.Text :=trim(fieldByName('shortName').AsString);
end;
end;
end;
SetWinStatus();
if fWinStatus>0 then
InitWinData();
}
if fWinStatus=1 then tok.Visible:=false;
InitGrid();
end;
procedure TfrmLabelList.RMPreview1DblClick(Sender: TObject);
begin
//btOpen.Click ;
end;
////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////
procedure TfrmLabelList.InitVarDictionary();
var
TmpList:Tstrings;
mm:string;
i:integer;
begin
try
TmpList:=TstringList.Create();
with ADOQueryTmp do
begin
close;
sql.Clear;
sql.Add('select distinct ItemType from JC_LabelSetItems ');
sql.Add('where valid=''Y''');
Open;
TmpList.Clear ;
while not Eof do
begin
TmpList.Add(trim(fieldByName('ItemType').AsString));
Next;
end;
end;
finally
TmpList.Free ;
end;
end;
/////////////////////////////////////////////////
//
/////////////////////////////////////////////////
procedure TfrmLabelList.InitDataSetDictionary();
begin
{ with ADOQuery1 do
begin
close;
sql.Clear ;
sql.Add('exec P_Get_LabelPrintData');
sql.Add(quotedStr(''));
sql.Add(','+quotedStr(''));
sql.Add(','+quotedStr(''));
OPen;
end; }
end;
procedure TfrmLabelList.TaddClick(Sender: TObject);
begin
{ if trim(customNo.text)='' then
begin
application.MessageBox('请先选择客户?','提示信息',0);
exit;
end;
}
frmLabelAdd:=TfrmLabelAdd.create(self);
with frmLabelAdd do
begin
// fCustomNo:=trim(customNo.TxtCode);
// customNO.TxtCode:=trim(self.customNo.TxtCode) ;
// customNO.text:=trim(self.customNo.text) ;
if showModal =1 then
begin
fchg:=true;
InitGrid();
end;
free;
end;
end;
procedure TfrmLabelList.TupdClick(Sender: TObject);
begin
if ADOQueryLabel.IsEmpty then exit;
frmLabelAdd:=TfrmLabelAdd.create(self);
with frmLabelAdd do
begin
// fCustomNo:=trim(customNo.TxtCode);
// customNO.TxtCode:=trim(self.customNo.TxtCode) ;
// customNO.text:=trim(self.customNo.text) ;
fKeyNo:=ADOQueryLabel.fieldByName('LabelId').AsString ;
fWinstatus:=1;
if showModal =1 then
begin
fchg:=true;
InitGrid();
end;
free;
end;
end;
/////////////////////////////////////////////
//
/////////////////////////////////////////////
procedure TfrmLabelList.InitGrid();
begin
try
isLoad:=false;
ADOQuerylabel.DisableControls ;
with ADOQuerylabel do
begin
close;
sql.Clear ;
sql.Add('select * from P_Label');
// sql.Add('where customNO='''+trim(fKeyNo)+'''');
sql.Add('where valid=''Y''');
Open;
//if trim(fSelLabelId)<>'' then
// locate('labelId',(fSelLabelId),[]) ;
end;
finally
ADOQuerylabel.EnableControls;
isLoad:=true;
DoFilter();
OpenLabel();
end;
end;
////////////////////////////////////////////////////////
//函数功能:打开标签文件
////////////////////////////////////////////////////////
procedure TfrmLabelList.OpenLabel();
begin
if ADOQueryLabel.IsEmpty then exit;
with RMGridReport1 do
begin
LoadFromBlobField(tblobfield(ADOQueryLabel.fieldbyname('labelFile')));
//Preview :=RMPreview1;
ShowReport ;
end;
end;
procedure TfrmLabelList.tv1FocusedRecordChanged(
Sender: TcxCustomGridTableView; APrevFocusedRecord,
AFocusedRecord: TcxCustomGridRecord;
ANewItemRecordFocusingChanged: Boolean);
begin
if isLoad then
OpenLabel();
end;
//////////////////////////////////////////////////////////
//函数功能:检查该客户的标签是否已存在
/////////////////////////////////////////////////////////
function TfrmLabelList.IsCheckCustOk():Boolean;
begin
try
with ADOQueryTmp do
begin
close;
sql.Clear ;
sql.Add('select count(customNO)as cnt from P_Label');
sql.Add('where customNO='''+trim(customNO.TxtCode)+'''');
Open;
if fieldByName('cnt').AsInteger>0 then
begin
Result:=false ;
application.MessageBox('该客户标签信息已存!','警告信息',0);
end
else
Result:=true;
end;
except
result:=false;
application.MessageBox('检查该客户标签信息是否已存在时发生错误!','警告信息',0);
end;
end;
/////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////
function TfrmLabelList.DeleteData():Boolean;
begin
try
with ADOQueryCmd do
begin
close;
sql.clear;
sql.Add('delete P_Label');
sql.Add('where labelId='+ADOQueryLabel.fieldByName('LabelID').asString);
execSql;
end;
result:=true;
except
result:=false;
application.MessageBox('删除失败!','警告信息',0);
end;
end;
procedure TfrmLabelList.TdelClick(Sender: TObject);
begin
if ADOQueryLabel.IsEmpty then exit;
if application.MessageBox('确定要删除此标签吗?','警告信息',1)=2 then exit;
if DeleteData() then
begin
fchg:=true;
InitGrid();
end;
end;
//////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////
procedure TfrmLabelList.SetWinStatus();
begin
case fWinStatus of
0:
begin
// ToolBar2.Visible :=false;
// tsave.Visible :=true;
customNo.Enabled :=true;
panel3.Enabled :=true;
end;
1:
begin
// ToolBar2.Visible :=true;
// tsave.Visible :=false;
customNo.Enabled :=false;
panel3.Enabled :=false;
TOK.Visible:=false;
end;
5:
begin
// ToolBar2.Visible :=false;
// tsave.Visible :=false;
panel1.Enabled :=false;
panel3.Enabled :=false;
end;
end ;
end;
procedure TfrmLabelList.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if fIsShowModal then
Application:=MainApplication ;
Action:=caFree;
end;
procedure TfrmLabelList.FormDestroy(Sender: TObject);
begin
frmLabelList:=nil;
end;
procedure TfrmLabelList.TOkClick(Sender: TObject);
begin
if fWinstatus=1 then exit;
if ADOQueryLabel.IsEmpty then exit;
fSelLabelId:=trim(ADOQueryLabel.fieldByName('labelId').asString)
//+'|'+trim(ADOQueryLabel.fieldByName('labeltype').asString);
+'|'+trim(ADOQueryLabel.fieldByName('labelCaption').asString);
SetLength( fSelLabelId,32);
close;
end;
procedure TfrmLabelList.tv1DblClick(Sender: TObject);
begin
// TOk.Click ;
end;
procedure TfrmLabelList.ToolButton1Click(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmLabelList.LabelTypeChange(Sender: TObject);
begin
DoFilter();
end;
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,686 @@
unit U_RTZDYHelp;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, ToolWin, ComCtrls,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel,
cxClasses, cxControls, cxGridCustomView, cxGrid, DBClient, ADODB, ImgList,
StdCtrls, ExtCtrls, cxTextEdit, cxGridCustomPopupMenu, cxGridPopupMenu;
type
TfrmRTZDYHelp = class(TForm)
TV1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
V1Code: TcxGridDBColumn;
V1Name: TcxGridDBColumn;
ToolBar1: TToolBar;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
DataSource1: TDataSource;
ClientDataSet1: TClientDataSet;
TBAdd: TToolButton;
TBSave: TToolButton;
TBDel: TToolButton;
TBClose: TToolButton;
ToolButton1: TToolButton;
TBEdit: TToolButton;
V1Note: TcxGridDBColumn;
V1OrderNo: TcxGridDBColumn;
ADOConnection1: TADOConnection;
Panel1: TPanel;
Label1: TLabel;
ZDYName: TEdit;
Label2: TLabel;
cxGridPopupMenu1: TcxGridPopupMenu;
V1ZdyFlag: TcxGridDBColumn;
V1HelpType: TcxGridDBColumn;
ThreeImgList: TImageList;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBAddClick(Sender: TObject);
procedure TBSaveClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure TBEditClick(Sender: TObject);
procedure TV1CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure ZDYNameChange(Sender: TObject);
procedure V1NamePropertiesEditValueChanged(Sender: TObject);
procedure V1OrderNoPropertiesEditValueChanged(Sender: TObject);
procedure V1NotePropertiesEditValueChanged(Sender: TObject);
procedure V1Column1PropertiesEditValueChanged(Sender: TObject);
procedure V1HelpTypePropertiesEditValueChanged(Sender: TObject);
private
procedure InitGrid();
{ Private declarations }
public
flag,flagname,snote,MainType:string;
fnote,forderno,fZdyFlag,ViewFlag:Boolean;
PPSTE:integer;
{ Public declarations }
end;
var
frmRTZDYHelp: TfrmRTZDYHelp;
implementation
uses
U_DataLink,U_RTFun;
{$R *.dfm}
procedure TfrmRTZDYHelp.FormCreate(Sender: TObject);
begin
try
cxGrid1.Align:=alClient;
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=DConString;
//ConnectionString:='';
Connected:=true;
end;
except
{if Application.MessageBox('网络连接失败,是否要再次连接?','提示',32+4)=IDYES then
begin
try
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=DConString;
//ConnectionString:='23242';
Connected:=true;
end;
except
end;
end; }
frmRTZDYHelp.Free;
end;
end;
procedure TfrmRTZDYHelp.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
ZDYName.SetFocus;
Action:=caFree;
end;
procedure TfrmRTZDYHelp.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
sql.Clear;
sql.Add('select A.*,ZJM=dbo.getPinYin(A.ZdyName) from KH_ZDY A where A.Type='''+flag+'''');
if Trim(MainType)<>'' then
begin
sql.Add(' and A.MainType='''+Trim(MainType)+'''');
end;
Open;
end;
SCreateCDS20(ADOQueryMain,ClientDataSet1);
SInitCDSData20(ADOQueryMain,ClientDataSet1);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmRTZDYHelp.TBAddClick(Sender: TObject);
var
i:Integer;
begin
ZDYName.SetFocus;
TV1.OptionsData.Editing:=True;
TV1.OptionsSelection.CellSelect:=True;
for i:=0 to 5 do
begin
with ClientDataSet1 do
begin
Append;
Post;
end;
end;
end;
procedure TfrmRTZDYHelp.TBSaveClick(Sender: TObject);
var
maxno:string;
begin
if ClientDataSet1.IsEmpty then Exit;
ZDYName.SetFocus;
if ClientDataSet1.Locate('ZDYName',null,[]) then
begin
Application.MessageBox('名称不能为空!','提示',0);
Exit;
end;
if ClientDataSet1.Locate('ZDYName','',[]) then
begin
Application.MessageBox('名称不能为空!','提示',0);
Exit;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add('select * from KH_ZDY where ZdyNo='''+Trim(flag)+'''');
open;
end;
if ADOQueryTemp.IsEmpty then
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('insert into KH_ZDY(ZDYNo,ZDYName,Type,MainType) select :ZDYNo,:ZDYName,:Type,:MainType ');
Parameters.ParamByName('ZDYNo').Value:=Trim(flag);
Parameters.ParamByName('ZDYName').Value:=Trim(flagname);
Parameters.ParamByName('Type').Value:='Main';
Parameters.ParamByName('MainType').Value:=Trim(MainType);
ExecSQL;
end;
end;
with ADOQueryCmd do
begin
ClientDataSet1.DisableControls;
with ClientDataSet1 do
begin
First;
while not eof do
begin
if Trim(ClientDataSet1.FieldByName('ZDYNO').AsString)='' then
begin
if GetLSNo(ADOQueryTemp,maxno,'SY','KH_ZDY',3,1)=False then
begin
ADOQueryCmd.Connection.RollbackTrans;
ClientDataSet1.EnableControls;
Application.MessageBox('取最大编号失败!','提示',0);
Exit;
end;
end else
begin
maxno:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString);
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.add('select * from KH_Zdy where Type='''+Trim(flag)+'''');
if Trim(MainType)<>'' then
SQL.Add(' and MainType='''+Trim(MainType)+'''');
sql.Add(' and ZdyName='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+'''');
Open;
end;
if ADOQueryTemp.IsEmpty=False then
begin
if ADOQueryTemp.RecordCount>1 then
begin
ADOQueryCmd.Connection.RollbackTrans;
ClientDataSet1.EnableControls;
Application.MessageBox('名称重复!','提示',0);
Exit;
end;
if Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)='' then
begin
ADOQueryCmd.Connection.RollbackTrans;
ClientDataSet1.EnableControls;
Application.MessageBox('名称重复!','提示',0);
Exit;
end else
begin
if Trim(ADOQueryTemp.fieldbyname('ZdyNo').AsString)<>Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString) then
begin
ADOQueryCmd.Connection.RollbackTrans;
ClientDataSet1.EnableControls;
Application.MessageBox('名称重复!','提示',0);
Exit;
end;
end;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add('delete KH_ZDY where ZDYNO='''+Trim(ClientDataSet1.fieldbyname('ZDYNO').AsString)+'''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from KH_ZDY where 1<>1');
Open;
end;
ADOQueryCmd.Append;
ADOQueryCmd.FieldByName('ZDYNo').Value:=Trim(maxno);
ADOQueryCmd.FieldByName('ZDYName').Value:=ClientDataSet1.fieldbyname('ZDYName').Value;
ADOQueryCmd.FieldByName('note').Value:=Trim(snote);
//ADOQueryCmd.FieldByName('orderno').Value:=ClientDataSet1.fieldbyname('Name').AsString;
ADOQueryCmd.FieldByName('Type').Value:=flag;
ADOQueryCmd.FieldByName('valid').Value:='Y';
if Trim(MainType)<>'' then
ADOQueryCmd.FieldByName('MainType').Value:=Trim(MainType);
//ADOQueryCmd.FieldByName('sel').Value:=0;
ADOQueryCmd.Post;
ClientDataSet1.Edit;
ClientDataSet1.FieldByName('ZDYNo').Value:=Trim(maxno);
ClientDataSet1.Post;
Next;
end;
end;
ClientDataSet1.EnableControls;
end;
ADOQueryCmd.Connection.CommitTrans;
Application.MessageBox('保存成功!','提示',0);
TV1.OptionsData.Editing:=False;
TV1.OptionsSelection.CellSelect:=False;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('保存失败!','提示',0);
end;
end;
procedure TfrmRTZDYHelp.TBDelClick(Sender: TObject);
begin
if ClientDataSet1.IsEmpty then Exit;
if (Trim(ClientDataSet1.FieldByName('ZDYNo').AsString)<>'') or
(Trim(ClientDataSet1.FieldByName('ZDYname').AsString)<>'') then
begin
if application.MessageBox('确定要删除吗?','提示信息',1)=2 then exit;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete KH_ZDY where ZDYNo='''+Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString)+'''');
SQL.Add(' and Type='''+Trim(flag)+'''');
ExecSQL;
end;
end;
ClientDataSet1.Delete;
end;
procedure TfrmRTZDYHelp.TBCloseClick(Sender: TObject);
begin
ModalResult:=2;
ZDYName.SetFocus;
WriteCxGrid('自定义'+Trim(flag),TV1,'自定义数据');
Close;
end;
procedure TfrmRTZDYHelp.FormShow(Sender: TObject);
var
fsj,fsj1:string;
begin
{if PPSTE=1 then
begin
Application.Terminate;
Exit;
end; }
InitGrid();
fsj:=Trim(flag)+'01';
fsj1:=Trim(flagname)+'01';
{if ClientDataSet1.IsEmpty then
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('insert into KH_ZDY(ZDYNo,ZDYname,Type,note)');
sql.Add('select '''+Trim(fsj)+'''');
sql.Add(','''+Trim(fsj1)+'''');
SQL.Add(','''+Trim(flag)+'''');
sql.Add(','''+Trim(snote)+'''');
ExecSQL;
end;
InitGrid();
end;}
//frmZDYHelp.Caption:=Trim(flagname)+'<'+Trim(flag)+'>';
//ReadCxGrid('自定义',TV1,'自定义数据');
ReadCxGrid('自定义'+Trim(flag),TV1,'自定义数据');
frmRTZDYHelp.Caption:=Trim(flagname);
V1Note.Visible:=fnote;
V1ZdyFlag.Visible:=fZdyFlag;
V1OrderNo.Visible:=forderno;
if ViewFlag=True then
begin
TBAdd.Visible:=False;
TBSave.Visible:=False;
TBDel.Visible:=False;
TBEdit.Visible:=False;
Label2.Visible:=False;
end;
end;
procedure TfrmRTZDYHelp.ToolButton1Click(Sender: TObject);
begin
ZDYName.SetFocus;
WriteCxGrid('自定义'+Trim(flag),TV1,'自定义数据');
ModalResult:=1;
end;
procedure TfrmRTZDYHelp.TBEditClick(Sender: TObject);
begin
TV1.OptionsData.Editing:=True;
TV1.OptionsSelection.CellSelect:=True;
end;
procedure TfrmRTZDYHelp.TV1CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
if TV1.OptionsData.Editing=False then
begin
ModalResult:=1;
end;
end;
procedure TfrmRTZDYHelp.ZDYNameChange(Sender: TObject);
var
fsj:String;
begin
if Trim(ZDYName.Text)<>'' then
begin
fsj:=' zdyname like '''+'%'+Trim(ZDYName.Text)+'%'+''''
+' or Note like '''+'%'+Trim(ZDYName.Text)+'%'+''''
+' or ZJM like '''+'%'+Trim(ZDYName.Text)+'%'+'''';
end;
if ADOQueryMain.Active then
begin
// SDofilter(ADOQueryMain,fsj);
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
if Trim(fsj)='' then
begin
Filtered:=False;
end else
begin
Filtered:=False;
Filter:=fsj;
Filtered:=True;
end;
end;
finally
ADOQueryMain.EnableControls;
end;
SCreateCDS20(ADOQueryMain,ClientDataSet1);
SInitCDSData20(ADOQueryMain,ClientDataSet1);
end;
end;
procedure TfrmRTZDYHelp.V1NamePropertiesEditValueChanged(Sender: TObject);
var
maxno,mvalue:string;
begin
mvalue:=TcxTextEdit(Sender).EditingText;
if Trim(mvalue)='' then
begin
//Application.MessageBox('名称不能为空!','提示',0);
Exit;
end;
with ClientDataSet1 do
begin
Edit;
FieldByName('ZdyName').Value:=Trim(mvalue);
//Post;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add('select * from KH_ZDY where ZdyNo='''+Trim(flag)+'''');
open;
end;
if ADOQueryTemp.IsEmpty then
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('insert into KH_ZDY(ZDYNo,ZDYName,Type,MainType) select :ZDYNo,:ZDYName,:Type,:MainType ');
Parameters.ParamByName('ZDYNo').Value:=Trim(flag);
Parameters.ParamByName('ZDYName').Value:=Trim(flagname);
Parameters.ParamByName('Type').Value:='Main';
Parameters.ParamByName('MainType').Value:=Trim(MainType);
ExecSQL;
end;
end;
with ADOQueryCmd do
begin
//ClientDataSet1.DisableControls;
//with ClientDataSet1 do
//begin
//First;
//while not eof do
//begin
if Trim(ClientDataSet1.FieldByName('ZDYNO').AsString)='' then
begin
if GetLSNo(ADOQueryTemp,maxno,'SY','KH_ZDY',3,1)=False then
begin
ADOQueryCmd.Connection.RollbackTrans;
//ClientDataSet1.EnableControls;
Application.MessageBox('取最大编号失败!','提示',0);
Exit;
end;
end else
begin
maxno:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString);
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.add('select * from KH_Zdy where Type='''+Trim(flag)+'''');
if Trim(MainType)<>'' then
SQL.Add(' and MainType='''+Trim(MainType)+'''');
sql.Add(' and ZdyName='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+'''');
Open;
end;
if ADOQueryTemp.IsEmpty=False then
begin
if ADOQueryTemp.RecordCount>1 then
begin
ADOQueryCmd.Connection.RollbackTrans;
//ClientDataSet1.EnableControls;
Application.MessageBox('名称重复!','提示',0);
Exit;
end;
if Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)='' then
begin
ADOQueryCmd.Connection.RollbackTrans;
//ClientDataSet1.EnableControls;
Application.MessageBox('名称重复!','提示',0);
Exit;
end else
begin
if Trim(ADOQueryTemp.fieldbyname('ZdyNo').AsString)<>Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString) then
begin
ADOQueryCmd.Connection.RollbackTrans;
//ClientDataSet1.EnableControls;
Application.MessageBox('名称重复!','提示',0);
Exit;
end;
end;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add('delete KH_ZDY where ZDYNO='''+Trim(ClientDataSet1.fieldbyname('ZDYNO').AsString)+'''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from KH_ZDY where 1<>1');
Open;
end;
ADOQueryCmd.Append;
ADOQueryCmd.FieldByName('ZDYNo').Value:=Trim(maxno);
ADOQueryCmd.FieldByName('ZDYName').Value:=ClientDataSet1.fieldbyname('ZDYName').AsString;
ADOQueryCmd.FieldByName('note').Value:=Trim(snote);
//ADOQueryCmd.FieldByName('orderno').Value:=ClientDataSet1.fieldbyname('Name').AsString;
ADOQueryCmd.FieldByName('Type').Value:=flag;
ADOQueryCmd.FieldByName('valid').Value:='Y';
if Trim(MainType)<>'' then
ADOQueryCmd.FieldByName('MainType').Value:=Trim(MainType);
//ADOQueryCmd.FieldByName('sel').Value:=0;
ADOQueryCmd.Post;
ClientDataSet1.Edit;
ClientDataSet1.FieldByName('ZDYNo').Value:=Trim(maxno);
//ClientDataSet1.Post;
// Next;
//end;
//end;
// ClientDataSet1.EnableControls;
end;
ADOQueryCmd.Connection.CommitTrans;
//Application.MessageBox('保存成功!','提示',0);
//TV1.OptionsData.Editing:=False;
//TV1.OptionsSelection.CellSelect:=False;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('保存失败!','提示',0);
end;
end;
procedure TfrmRTZDYHelp.V1OrderNoPropertiesEditValueChanged(Sender: TObject);
var
mvalue:string;
begin
if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then
begin
Application.MessageBox('名称不能为空!','提示',0);
Exit;
end;
mvalue:=TcxTextEdit(Sender).EditingText;
if Trim(mvalue)='' then
begin
mvalue:='0';
end;
with ClientDataSet1 do
begin
Edit;
FieldByName('OrderNo').Value:=mvalue;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('Update KH_Zdy Set OrderNo='+mvalue);
sql.Add(' where ZdyNo='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+'''');
ExecSQL;
end;
end;
procedure TfrmRTZDYHelp.V1NotePropertiesEditValueChanged(Sender: TObject);
var
mvalue:string;
begin
if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then
begin
Application.MessageBox('名称不能为空!','提示',0);
Exit;
end;
mvalue:=TcxTextEdit(Sender).EditingText;
if Trim(mvalue)='' then
begin
mvalue:='0';
end;
with ClientDataSet1 do
begin
Edit;
FieldByName('Note').Value:=mvalue;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('Update KH_Zdy Set Note='''+Trim(mvalue)+'''');
sql.Add(' where ZdyNo='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+'''');
ExecSQL;
end;
end;
procedure TfrmRTZDYHelp.V1Column1PropertiesEditValueChanged(Sender: TObject);
var
mvalue:String;
begin
if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then
begin
Application.MessageBox('名称不能为空!','提示',0);
Exit;
end;
mvalue:=TcxTextEdit(Sender).EditingText;
if Trim(mvalue)='' then
begin
mvalue:='0';
end;
with ClientDataSet1 do
begin
Edit;
FieldByName('ZdyFlag').Value:=StrToInt(mvalue);
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('Update KH_Zdy Set ZdyFlag='+Trim(mvalue));
sql.Add(' where ZdyNo='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+'''');
ExecSQL;
end;
end;
procedure TfrmRTZDYHelp.V1HelpTypePropertiesEditValueChanged(
Sender: TObject);
var
mvalue:string;
begin
if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then
begin
Application.MessageBox('名称不能为空!','提示',0);
Exit;
end;
mvalue:=TcxTextEdit(Sender).EditingText;
if Trim(mvalue)='' then
begin
mvalue:='0';
end;
with ClientDataSet1 do
begin
Edit;
FieldByName('HelpType').Value:=mvalue;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('Update KH_Zdy Set HelpType='''+Trim(mvalue)+'''');
sql.Add(' where ZdyNo='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+'''');
ExecSQL;
end;
end;
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,180 @@
unit U_SysLogHelp;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics, cxFilter,
cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel,strUtils,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, ADODB, StdCtrls, ExtCtrls, ImgList;
type
TfrmSysLogHelp = class(TForm)
ToolBar1: TToolBar;
TQry: TToolButton;
Tclose: TToolButton;
ADOQueryLog: TADOQuery;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
cxGrid1: TcxGrid;
tv1: TcxGridDBTableView;
tv1OperMan: TcxGridDBColumn;
tv1jopertime: TcxGridDBColumn;
tv1Model: TcxGridDBColumn;
tv1acction: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
tv1Opevent: TcxGridDBColumn;
tv1Result: TcxGridDBColumn;
Panel1: TPanel;
Label2: TLabel;
Label1: TLabel;
begDate: TDateTimePicker;
endDate: TDateTimePicker;
Label3: TLabel;
edt_model: TEdit;
CheckBox1: TCheckBox;
Label4: TLabel;
edt_nr: TEdit;
ThreeImgList: TImageList;
procedure TcloseClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TQryClick(Sender: TObject);
procedure edt_modelChange(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
procedure DoQuery();
procedure DoFilter();
public
fModel,facction:string;
fOtherWhere:string;
end;
var
frmSysLogHelp: TfrmSysLogHelp;
implementation
uses
U_DataLink;
{$R *.dfm}
procedure TfrmSysLogHelp.TcloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmSysLogHelp.FormCreate(Sender: TObject);
begin
cxGrid1.Align :=alClient;
begDate.DateTime :=date-31;
endDate.DateTime :=date;
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=DConString;
Connected:=true;
end;
end;
/////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
procedure TfrmSysLogHelp.DoQuery();
var
mbegdate,menddate:string;
begin
mbegdate:=formatDatetime('yyyy-MM-dd',begDate.Date); //
menddate:=formatDatetime('yyyy-MM-dd',endDate.Date+1);
try
with ADOQueryLog do
begin
close;
sql.clear;
filtered:=false;
sql.add('select A.* ');
sql.add('from SY_sysLog A');
if CheckBox1.Checked then
begin
sql.Add('where OperTime>='+quotedStr(mbegdate));
sql.Add('and OperTime<'+quotedStr(menddate));
end
else
begin
sql.Add('where 1=1');
end;
if trim(fModel)<>'' then
sql.add('and Model='+quotedStr(fModel));
if trim(facction)<>'' then
sql.add('and acction='+quotedStr(facction));
if trim(fOtherWhere)<>'' then
begin
sql.add(fOtherWhere);
end;
sql.Add('order by operOr,Opertime');
Open;
end;
finally
end;
end;
///////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////
procedure TfrmSysLogHelp.DoFilter();
var
filterStr:string;
begin
filterStr:='';
//
if trim(edt_model.text)<>'' then
begin
filterStr:=' and model ='+quotedStr(trim(edt_model.text));
end;
if trim(edt_nr.text)<>'' then
begin
filterStr:=' and OpEvent like '+quotedStr('%'+trim(edt_nr.text)+'%');
end;
try
ADOQueryLog.DisableControls ;
if trim(filterStr)='' then
begin
ADOQueryLog.Filtered:=false;
exit;
end;
filterStr:=trim(RightBStr(filterStr,length(filterStr)-4));
with ADOQueryLog do
begin
filtered:=false;
filter:=filterStr;
filtered:=true;
end;
finally
ADOQueryLog.EnableControls;
end;
end;
procedure TfrmSysLogHelp.FormShow(Sender: TObject);
begin
DoQuery();
end;
procedure TfrmSysLogHelp.TQryClick(Sender: TObject);
begin
DoQuery();
end;
procedure TfrmSysLogHelp.edt_modelChange(Sender: TObject);
begin
DoFilter();
end;
procedure TfrmSysLogHelp.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
action:=cafree;
end;
end.

View File

@ -0,0 +1,214 @@
unit U_MyClassHelpers;
interface
Uses
SysUtils,Windows,Classes,Graphics, Controls,Forms,Dialogs, Math,typinfo;
// uMySysUtils;
Const //记录设计时的屏幕分辨率
OriWidth=1366;
OriHeight=768;
{var
OriWidth,OriHeight:Integer; }
Type
TfmForm=Class(TForm) //实现窗体屏幕分辨率的自动调整
Private
fScrResolutionRateW: Double;
fScrResolutionRateH: Double;
fIsFitDeviceDone: Boolean;
procedure FitDeviceResolution;
Protected
Property IsFitDeviceDone:Boolean Read fIsFitDeviceDone;
Property ScrResolutionRateH:Double Read fScrResolutionRateH;
Property ScrResolutionRateW:Double Read fScrResolutionRateW;
Public
Constructor Create(AOwner: TComponent); Override;
End;
TfdForm=Class(TfmForm) //增加对话框窗体的修改确认
Protected
fIsDlgChange:Boolean;
Public
Constructor Create(AOwner: TComponent); Override;
Property IsDlgChange:Boolean Read fIsDlgChange default false;
End;
implementation
//uses UMain;
constructor TfmForm.Create(AOwner: TComponent);
begin
Inherited Create(AOwner);
fScrResolutionRateH:=1;
fScrResolutionRateW:=1;
Try
if Not fIsFitDeviceDone then
Begin
FitDeviceResolution;
fIsFitDeviceDone:=True;
End;
Except
fIsFitDeviceDone:=False;
End;
end;
procedure TfmForm.FitDeviceResolution;
Var
LocList:TList;
LocFontRate:Double;
LocFontSize:Integer;
LocFont:TFont;
locK:Integer;
//计算尺度调整的基本参数
Procedure CalBasicScalePars;
Begin
try
Self.Scaled:=False;
fScrResolutionRateH:=screen.height/OriHeight;
fScrResolutionRateW:=screen.Width/OriWidth;
LocFontRate:=Min(fScrResolutionRateH,fScrResolutionRateW);
except
Raise;
end;
End;
function PropertyExists(const AObject: TObject;const APropName:String):Boolean;
//判断一个属性是否存在
var
PropInfo:PPropInfo;
begin
PropInfo:=GetPropInfo(AObject.ClassInfo,APropName);
Result:=Assigned(PropInfo);
end;
function GetObjectProperty(
const AObject : TObject;
const APropName : string
):TObject;
var
PropInfo:PPropInfo;
begin
Result := nil;
PropInfo:=GetPropInfo(AObject.ClassInfo,APropName);
if Assigned(PropInfo) and
(PropInfo^.PropType^.Kind = tkClass) then
Result := GetObjectProp(AObject,PropInfo);
end;
//保存原有坐标位置:利用递归法遍历各级容器里的控件,直到最后一级
Procedure ControlsPostoList(vCtl:TControl;vList:TList);
Var
locPRect:^TRect;
i:Integer;
locCtl:TControl;
locFontp:^Integer;
Begin
try
New(locPRect);
locPRect^:=vCtl.BoundsRect;
vList.Add(locPRect);
If PropertyExists(vCtl,'FONT') Then
Begin
LocFont:=TFont(GetObjectProperty(vCtl,'FONT'));
New(locFontp);
locFontP^:=LocFont.Size;
vList.Add(locFontP);
// ShowMessage(vCtl.Name+'Ori:='+InttoStr(LocFont.Size));
End;
If vCtl Is TWinControl Then
For i:=0 to TWinControl(vCtl).ControlCount-1 Do
begin
locCtl:=TWinControl(vCtl).Controls[i];
ControlsPosToList(locCtl,vList);
end;
except
Raise;
end;
End;
//计算新的坐标位置:利用递归法遍历各级容器里的控件,直到最后一层。
// 计算坐标时先计算顶级容器级的,然后逐级递进
Procedure AdjustControlsScale(vCtl:TControl;vList:TList;Var vK:Integer);
Var
locOriRect,LocNewRect:TRect;
i:Integer;
locCtl:TControl;
Begin
try
If vCtl.Align<>alClient Then
Begin
locOriRect:=TRect(vList.Items[vK]^);
With locNewRect Do
begin
Left:=Round(locOriRect.Left*fScrResolutionRateW);
Right:=Round(locOriRect.Right*fScrResolutionRateW);
Top:=Round(locOriRect.Top*fScrResolutionRateH);
Bottom:=Round(locOriRect.Bottom*fScrResolutionRateH);
vCtl.SetBounds(Left,Top,Right-Left,Bottom-Top);
end;
End;
If PropertyExists(vCtl,'FONT') Then
Begin
Inc(vK);
LocFont:=TFont(GetObjectProperty(vCtl,'FONT'));
locFontSize:=Integer(vList.Items[vK]^);
LocFont.Size := Round(LocFontRate*locFontSize);
// ShowMessage(vCtl.Name+'New:='+InttoStr(LocFont.Size));
End;
Inc(vK);
If vCtl Is TWinControl Then
For i:=0 to TwinControl(vCtl).ControlCount-1 Do
begin
locCtl:=TWinControl(vCtl).Controls[i];
AdjustControlsScale(locCtl,vList,vK);
end;
except
Raise;
end;
End;
//释放坐标位置指针和列表对象
Procedure FreeListItem(vList:TList);
Var
i:Integer;
Begin
For i:=0 to vList.Count-1 Do
Dispose(vList.Items[i]);
vList.Free;
End;
begin
LocList:=TList.Create;
Try
Try
if (Screen.width<>OriWidth)OR(Screen.Height<>OriHeight) then
begin
CalBasicScalePars;
// AdjustComponentFont(Self);
ControlsPostoList(Self,locList);
locK:=0;
AdjustControlsScale(Self,locList,locK);
End;
Except on E:Exception Do
Raise Exception.Create('进行屏幕分辨率自适应调整时出现错误'+E.Message);
End;
Finally
FreeListItem(locList);
End;
end;
{ TfdForm }
constructor TfdForm.Create(AOwner: TComponent);
begin
inherited;
fIsDlgChange:=False;
end;
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,388 @@
unit U_ADOFunc;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, StdCtrls,DBGrids, DB, cxDBData, ADODB,StrUtils,
Midas, ExtCtrls, Buttons,DBClient,FTComboBox,BtnEdit;
function ISNotOnly(ADOQry:TADOQuery;fieldname: string;tablename: string; str_vari:string): boolean;
function WriteLog(ADOQry:TADOQuery;mModel:string;mAction:string;OpEvent:string):Boolean;
procedure GetERPSetQryTimeValue(ADOQry:TADOQuery);
function DelData(ADOQueryCmd:TADOQuery;mDelStr:String;mInt:Integer):Boolean;
procedure Setsavedata(ADOQueryCmd:TADOQuery;MyTable:string;
Myparent:TWinControl;MyTag:integer);
function GetFieldValue(sqlStr:String;mcaption:string;ADOQuerytmp:TADOQuery):Boolean;
procedure CreateCDSChg(SADOQry:TADOQuery; mClientDataset:TclientDataSet; AColCount: Integer);
function ADORowChgToCol(fromADoQry:TADOQuery;toClientSet:TclientDataSet;
colCount:integer;GroupFields:string;chnField:string):Boolean;
procedure GetYearPeriod(AdoQueryTemp:TADOQuery;FDate:TDateTime);
function ADOColToRow(fromADoQry:TADOQuery;toClientSet:TclientDataSet;
chgFields:string;chgCaptions:string;
TocolCount:integer):boolean;
implementation
uses
U_global,U_formPas,U_commFunc;
////判断输入的字符型数据是否已经存在
function ISNotOnly(ADOQry:TADOQuery;fieldname: string;tablename: string; str_vari:string): boolean;
begin
result:=true;
try
with ADOQry do
begin
close;
sql.Clear;
sql.Add('select '+fieldname+' from '+tablename);
sql.Add('where '+fieldname+'='''+str_vari+'''' );
open;
if (recordcount>0) and (not fields[0].isnull) then
result:=false;
close;
end;
except
end;
end;
//////////////////////////////////////////////////////
function WriteLog(ADOQry:TADOQuery;mModel:string;mAction:string;OpEvent:string):Boolean;
begin
///////////////////////////////////
//写日志
try
with ADOQry do
begin
close;
sql.Clear ;
sql.Add('select * from xs_sysLog');
sql.Add('where 1<>1');
Open;
Append;
fieldByName('Operor').Value :=gUserName;
fieldByName('OperTime').Value :=gserverDate;
fieldByName('Model').Value :=mModel;
fieldByName('acction').Value :=mAction;
fieldByName('result').Value :='成功';
fieldByName('OpEvent').Value :=trim(OpEvent);
Post;
end;
result:=true;
except
result:=false;
end;
end;
///////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////
procedure GetERPSetQryTimeValue(ADOQry:TADOQuery);
begin
try
with ADOQry do
begin
close;
sql.Clear ;
sql.Add('select * from XS_SysParam');
Open;
if RecordCount>0 then
begin
gQryBegTime:=fieldByName('QryBegTime').AsString ;
gQryEndTime:=fieldByName('QryEndTime').AsString ;
end
else
begin
gQryBegTime:='00:00';
gQryEndTime:='00:00';
end;
end;
except
end;
end;
//////////////////////////////////////////////
//////函数功能根据SQL语句删除数据
//////////////////////////////////////////////
function DelData(ADOQueryCmd:TADOQuery;mDelStr:String;mInt:Integer):Boolean;
begin
try
result:=False;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add(mDelStr);
ExecSQL;
end;
result:=True;
except
result:=False;
Application.MessageBox('数据删除失败!','提示',0);
end;
end;
/////////////////////////////////////////////////////
//保存数据时字段赋值
/////////////////////////////////////////////////////
procedure Setsavedata(ADOQueryCmd:TADOQuery;MyTable:string;
Myparent:TWinControl;MyTag:integer);
var
i:Integer;
begin
with Myparent do
begin
for i:=0 to ControlCount-1 do
begin
if Controls[i].Tag=MyTag then
begin
if Controls[i] is TEdit then
begin
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Trim(TEdit(Controls[i]).Text);
end else
if Controls[i] is TRichEdit then
begin
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=TRichEdit(Controls[i]).Text;
end else
if Controls[i] is TComboBox then
begin
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Trim(TComboBox(Controls[i]).Text);
end else
if Controls[i] is TDateTimePicker then
begin
if TDateTimePicker(Controls[i]).ShowCheckbox then
begin
if TDateTimePicker(Controls[i]).Checked then
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=TDateTimePicker(Controls[i]).DateTime;
end else
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=TDateTimePicker(Controls[i]).DateTime;
end else
if Controls[i] is TBtnEditA then
begin
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Trim(TBtnEditA(Controls[i]).TxtCode);
end;
end;
end;
end;
end;
////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////
function GetFieldValue(sqlStr:String;mcaption:string;ADOQuerytmp:TADOQuery):Boolean;
begin
result:=false;
try
with ADOQuerytmp do
begin
close ;
sql.Clear ;
sql.Add(sqlStr);
Open;
end;
result:=true;
except
application.MessageBox(pchar('获取【'+mcaption+'】字段值出错!'),'警告信息',0);
end;
end;
//////////////////////////////////////////////////////////////////
procedure GetYearPeriod(AdoQueryTemp:TADOQuery;FDate:TDateTime);
var
fsj:string;
begin
fsj:=FormatDateTime('yyyy-MM-dd',FDate);
with AdoQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add('select * from gy_kjrlb where Qsrq<='''+fsj+''' ');
SQL.Add(' and Zzrq>='''+fsj+'''');
Open;
end;
with AdoQueryTemp do
begin
if IsEmpty then
begin
Application.MessageBox('还未设置该日期的会计期间!','提示',0);
Exit;
end;
gkjyear:=fieldbyname('kjYear').AsInteger;
gperiod:=fieldbyname('period').AsInteger;
end;
end;
///////////////////////////////////////////////////////////
//mClientDataset:TclientDataSet
///////////////////////////////////////////////////////////
function ADORowChgToCol(fromADoQry:TADOQuery;toClientSet:TclientDataSet;
colCount:integer;GroupFields:string;chnField:string):Boolean;
var
i:integer;
k:integer;
idx:integer;
begin
if colCount<=0 then exit;
if GroupFields='' then exit;
if chnField='' then exit;
CreateCDSChg(fromADoQry, toClientSet, colCount);
with fromADoQry do
begin
first;
while not eof do
begin
toClientSet.Last;
if Trim(toClientSet.FieldByName(GroupFields).AsString) = Trim(fieldByName(GroupFields).AsString) then
// if toClientSet.locate(GroupFields,VarArrayOf([trim(fieldByName(GroupFields).AsString)]),[]) then
begin
idx:=toClientSet.fieldByName('curIndex').asInteger;
//是否已满要求列数
if (idx >= 1) and (idx < colCount) then
begin
toClientSet.Edit;
toClientSet.fieldByName('chgField'+intTostr(idx + 1)).value:=fieldByName(chnField).asfloat;
toClientSet.fieldByName('curIndex').value:=toClientSet.fieldByName('curIndex').AsInteger+1;
toClientSet.Post;
end
//多行换行
else
begin
toClientSet.append;
for k:=0 to fields.count-1 do
begin
toClientSet.fields[k].value:= fields[k].value;
end;
for i:=1 to colcount do
begin
toClientSet.FieldByName('chgField'+intToStr(i)).Value := 0;
end;
toClientSet.fieldByName('chgField1').value:=fieldByName(chnField).asfloat;
toClientSet.fieldByName('curIndex').value:= 1;
toClientSet.Post;
end;
end
else
begin
toClientSet.append;
for k:=0 to fields.count-1 do
begin
toClientSet.fields[k].value:= fields[k].value;
end;
for i:=1 to colcount do
begin
toClientSet.FieldByName('chgField'+intToStr(i)).Value := 0;
end;
toClientSet.fieldByName('chgField1').value:=fieldByName(chnField).asfloat;
toClientSet.fieldByName('curIndex').value:= 1;
toClientSet.Post;
end;
next;
end;
end;
end;
procedure CreateCDSChg(SADOQry:TADOQuery; mClientDataset:TclientDataSet; AColCount: Integer);
var
i: Integer;
mFieldName: String;
mSize: Integer;
begin
mFieldName := '';
mClientDataset.Close;
mClientDataset.FieldDefs.Clear;
with SADOQry do
begin
for i := 0 to FieldCount - 1 do //
begin
if (Fields[i].DataType = ftString) and (Fields[i].Size = 0) then
begin
mSize := 1;
end
else
begin
mSize := Fields[i].Size;
end;
mFieldName := Trim(Fields[i].FieldName);
mClientDataset.FieldDefs.Add(mFieldName, Fields[i].DataType, mSize);
end;
end;
for i := 1 to AColCount do
begin
mClientDataset.FieldDefs.Add('chgField' + IntToStr(i), ftFloat, 0);
end;
mClientDataset.FieldDefs.Add('curIndex', ftInteger, 0);
mClientDataset.CreateDataSet;
end;
/////////////////////////////////////////////////////
//函数功能:将数据集列转为行
//新数据集的第一列为行表头
/////////////////////////////////////////////////////
function ADOColToRow(fromADoQry:TADOQuery;toClientSet:TclientDataSet;
chgFields:string;chgCaptions:string;
TocolCount:integer):boolean;
var
mField:string;
fieldCount:integer;
i,j,k:integer;
chgFieldsList:Tstringlist;
chgCaptionsList:TstringList;
begin
fromADoQry.DisableControls;
toClientSet.DisableControls;
try
chgFieldsList:=TStringList.Create;
chgCaptionsList:=TStringList.Create;
chgFieldsList:=split(chgFields,',');
chgCaptionsList:=split(chgCaptions,',');
/////////////////////////////////////////
toClientSet.Close;
toClientSet.FieldDefs.Clear;
//创建新的数据集
for i:=0 to TocolCount do //
begin
toClientSet.FieldDefs.Add('def'+intTostr(i),
ftString,1000);
end;
toClientSet.Close;
toClientSet.CreateDataSet;
////////////////////////////////////////////
///////////////////////////
//将数据转换到新的数据集中
for i:=0 to chgCaptionsList.Count-1 do
begin
with toClientSet do
begin
Append;
//行标头字段内容
fieldByName('def0').Value := chgCaptionsList.Strings[i];
//列值到行值
//获取元数据集中对应的列字段
mField:=chgFieldsList.Strings[i];
fromADoQry.first;
for j:=1 to TocolCount do
begin
//附行值
K:=0;
while not fromADoQry.Eof do
begin
fieldByName('def'+intTostr(k+1)).value:=fromADoQry.fieldByName(mField).Value ;
K:=k+1;
fromADoQry.next;
end;
end;
Post;
end;
end;
chgFieldsList.Free;
chgCaptionsList.Free ;
fromADoQry.EnableControls;
toClientSet.EnableControls;
result:=true;
except
fromADoQry.EnableControls;
toClientSet.EnableControls;
chgFieldsList.Free;
chgCaptionsList.Free ;
result:=false;
end;
end;
end.

View File

@ -0,0 +1,303 @@
unit U_CommFunc;
interface
uses
Windows, Messages,dialogs, SysUtils, Variants,Classes,
StdCtrls, ExtCtrls;
function split(STR_Source :string; STR_Split:string):TStringList; //分割字符串
function AddNewLineToStr(sourceStr:String;number:integer):String ; //在字符串中加入换行符号
function StrToE(source:string;ID:integer;flg:integer):String; //加密函数
function splitChnFromStr(sourceStr:String):TStringList; //从字符串中分离出计算变量
function strToArray(sourceStr:string;number:integer):TStringList; //将中文字符串按没行指定的个数分割
function okNumeric(str:string):boolean; //验证输入的是否是数字
function okNan(str:string):boolean;
function IsNumber(mStr: string): Boolean; //验证数字
function IsInteger(mStr: string): Boolean; //验证整型
//把字符串转化为一行一个
function StrToOne(sourceStr:string):String;
implementation
//字符串分割函数
function split(STR_Source :string; STR_Split:string):TStringList;
var
temp:String;
i:Integer;
begin
Result:=TStringList.Create;
//如果是空自符串则返回空列表
if trim(STR_Source) = '' then exit;
temp:=STR_Source;
i:=pos(STR_Split,STR_Source);
while i <> 0 do
begin
Result.add(copy(temp,0,i-1));
Delete(temp,1,i+length(STR_Split)-1); //如果STR_Split长度大于1的话,原来的只删除STR_Split字符的第一个.
i:=pos(STR_Split,temp);
end;
Result.add(temp);
end;
//**************************************************************
//在字符串中加入换行符号 number:一行字符串的个数
function AddNewLineToStr(sourceStr:String;number:integer):String ;
var
i:integer;
tmpStr:string;
tstr_tmp:TstringList;
isNext:boolean;
begin
isNext:=false;
tmpStr:='';
tstr_tmp:=Tstringlist.create();
for i:=1 to length(sourceStr) do
begin
if isNext then
begin
isNext:=false ;
continue;
end;
if (ord(sourceStr[i])>=33)and(ord(sourceStr[i])<=126) then
begin
tstr_tmp.Append(sourceStr[i]);
isNext:=false;
end
else
if (ord(sourceStr[i])>=127) then
begin
tstr_tmp.Append(copy(sourceStr,i,2));
isNext:=true;
end;
end; //end for
for i:=1 to tstr_tmp.Count do
begin
if (i mod number=0) and (i<>tstr_tmp.Count) then
tmpStr:=tmpStr+tstr_tmp.Strings[i-1]+chr(13)
else
tmpStr:=tmpStr+tstr_tmp.Strings[i-1];
end;
result:=tmpStr;
end;
//**************************************************************
// 从字符串中分离出计算变量
function splitChnFromStr(sourceStr:String):TStringList ;
var
i:integer;
tstr_tmp:TstringList;
isNext:boolean;
tmp:String;
begin
isNext:=false;
tstr_tmp:=Tstringlist.create();
for i:=1 to length(sourceStr) do
begin
if isNext then
begin
isNext:=false ;
continue;
end;
if (ord(sourceStr[i])>=33)and(ord(sourceStr[i])<=126) then
begin
if sourceStr[i] in['/','=','-','+','*','\','(',')'] then
begin
if Length(tmp)>2 then
begin
tstr_tmp.Append(tmp);
tmp:='';
end;
isNext:=false;
end
else
begin
tmp:=tmp+sourceStr[i];
isNext:=false;
end;
end
else
if (ord(sourceStr[i])>=127) then
begin
//tstr_tmp.Append(copy(sourceStr,i,2));
tmp:=tmp+copy(sourceStr,i,2);
isNext:=true;
end;
end; //end for
if Length(tmp)>2 then tstr_tmp.Append(tmp);
result:=tstr_tmp;
end;
//*****************************************************
// 加密 1: 0:
function StrToE(source:string;ID:integer;flg:integer):String;
var
i:integer;
tmp:String;
begin
setLength(tmp,length(source));
if flg=1 then
begin
for i:=1 to Length(source) do
begin
tmp[i]:=chr(ord(source[i])+ID);
end;
end
else if flg=0 then
begin
for i:=1 to Length(source) do
begin
tmp[i]:=chr(ord(source[i])-ID);
end;
end;
result:=tmp;
end;
//********************************************************************
//将中文字符串按没行指定的个数分割
function strToArray(sourceStr:string;number:integer):TStringList;
var
i,cnt:integer;
tmpStr:string;
tstr_tmp1,tstr_tmp2:TstringList;
isNext:boolean;
begin
isNext:=false;
tmpStr:='';
tstr_tmp1:=Tstringlist.create();
tstr_tmp2:=Tstringlist.create();
for i:=1 to length(sourceStr) do
begin
if isNext then
begin
isNext:=false ;
continue;
end;
if (ord(sourceStr[i])>=33)and(ord(sourceStr[i])<=126) then
begin
tstr_tmp1.Append(sourceStr[i]);
isNext:=false;
end
else
if (ord(sourceStr[i])>=127) then
begin
tstr_tmp1.Append(copy(sourceStr,i,2));
isNext:=true;
end;
end; //end for
if number=1 then
begin
result:=tstr_tmp1;
exit;
end;
cnt:=1;
tmpStr:='';
for i:=0 to tstr_tmp1.Count-1 do
begin
if cnt<=number then
begin
tmpStr:=tmpStr+tstr_tmp1.strings[i];
inc(cnt);
end
else
begin
tstr_tmp2.append(tmpStr);
tmpStr:=tstr_tmp1.strings[i];
cnt:=2;
end;
end;
if tmpStr<>'' then tstr_tmp2.append(tmpStr);
result:=tstr_tmp2;
end;
//*************************************************************
//验证输入的是否是数字
function okNumeric(str:string):boolean;
begin
str:=trim(str);
try
if str='' then
begin
result:=false;
exit;
end;
strToFloat(str);
result:=true;
except
on EConvertError do
result:=false;
end;
end;
//*************************************************************
//验证输入的是否是数字
function okNan(str:string):boolean;
begin
result:=true;
str:=trim(str);
try
if str='' then
begin
result:=false;
exit;
end;
strToInt(str);
except
on EConvertError do
result:=false;
end;
end;
//****************************************************************
//把字符串转化为一行一个
function StrToOne(sourceStr:string):String;
var
i:integer;
isNext:Boolean;
tmp:string;
begin
isNext:=false;
for i:=1 to length(sourceStr) do
begin
if isNext then
begin
isNext:=false ;
continue;
end;
if (ord(sourceStr[i])>=33)and(ord(sourceStr[i])<=126) then
begin
tmp:=tmp+(sourceStr[i]);
isNext:=false;
end
else
if (ord(sourceStr[i])>=127) then
begin
tmp:=tmp+(copy(sourceStr,i,2))+#13;
isNext:=true;
end;
end; //end for
result:=tmp;
end;
//* 返回字符串是否是正确的数字表达 *//
function IsNumber(mStr: string): Boolean;
var
I: Real;
E: Integer;
begin
Val(mStr, I, E);
Result := E = 0;
E := Trunc(I);
end;
// * 返回字符串是否是正确的整数表达 *//
function IsInteger(mStr: string): Boolean;
var
I: Integer;
E: Integer;
begin
Val(mStr, I, E);
Result := E = 0;
E := Trunc(I);
end;
end.

View File

@ -0,0 +1 @@
2342314324

View File

@ -0,0 +1,35 @@
-$A8
-$B-
-$C+
-$D+
-$E-
-$F-
-$G+
-$H+
-$I+
-$J-
-$K-
-$L+
-$M-
-$N+
-$O+
-$P+
-$Q-
-$R-
-$S-
-$T-
-$U-
-$V+
-$W-
-$X+
-$YD
-$Z1
-cg
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-H+
-W+
-M
-$M16384,1048576
-K$00400000
-LE"d:\program files (x86)\borland\delphi7\Projects\Bpl"
-LN"d:\program files (x86)\borland\delphi7\Projects\Bpl"

View File

@ -0,0 +1,136 @@
[FileVersion]
Version=7.0
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=1
UnsafeCode=1
UnsafeCast=1
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]
OutputDir=
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=C:\Users\Administrator\Desktop\QR-Windows编码201108正式及发布和演示\2-QR编码演示发布包\QR-DLL演示版说明\DEMO程序源码\Delphi\Project1.exe
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[Version Info]
IncludeVerInfo=0
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=2052
CodePage=936
[Version Info Keys]
CompanyName=
FileDescription=
FileVersion=1.0.0.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=

View File

@ -0,0 +1,13 @@
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.

Binary file not shown.

View File

@ -0,0 +1,287 @@
object Form1: TForm1
Left = 434
Top = 164
Width = 494
Height = 463
Caption = #20108#32500#26465#30721#27979#35797
Color = clBtnFace
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
OldCreateOrder = False
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 12
object GroupBox1: TGroupBox
Left = 4
Top = 12
Width = 321
Height = 185
Caption = #21442#25968#35774#32622
TabOrder = 0
object Label1: TLabel
Left = 8
Top = 24
Width = 24
Height = 12
Caption = #25513#27169
end
object Label2: TLabel
Left = 98
Top = 24
Width = 66
Height = 12
Caption = #26657#39564#31561#32423' '
end
object Label3: TLabel
Left = 208
Top = 24
Width = 30
Height = 12
Caption = #32553#25918' '
end
object Label4: TLabel
Left = 8
Top = 80
Width = 48
Height = 12
Caption = #26465#30721#20449#24687
end
object Label11: TLabel
Left = 8
Top = 56
Width = 24
Height = 12
Caption = #29256#26412
end
object Edit1: TEdit
Left = 40
Top = 20
Width = 50
Height = 20
ImeName = #32043#20809#25340#38899#36755#20837#27861
TabOrder = 0
Text = '3'
end
object Edit2: TEdit
Left = 156
Top = 20
Width = 50
Height = 20
ImeName = #32043#20809#25340#38899#36755#20837#27861
TabOrder = 1
Text = '3'
end
object Edit3: TEdit
Left = 256
Top = 20
Width = 50
Height = 20
Enabled = False
ImeName = #32043#20809#25340#38899#36755#20837#27861
TabOrder = 2
Text = '3'
end
object Memo1: TMemo
Left = 8
Top = 96
Width = 145
Height = 81
Lines.Strings = (
'201405010008'
#30591#29305#36719#20214
'')
ScrollBars = ssVertical
TabOrder = 3
end
object Panel1: TPanel
Left = 160
Top = 48
Width = 151
Height = 134
BevelOuter = bvLowered
TabOrder = 4
object Image1: TImage
Left = 1
Top = 1
Width = 149
Height = 132
Align = alClient
Anchors = [akTop, akRight, akBottom]
AutoSize = True
Center = True
end
end
object Edit10: TEdit
Left = 40
Top = 52
Width = 49
Height = 20
TabOrder = 5
Text = '0'
end
end
object Button1: TButton
Left = 9
Top = 376
Width = 90
Height = 25
Caption = #20174#32534#36753#26639#29983#25104
TabOrder = 1
OnClick = Button1Click
end
object Button2: TButton
Left = 124
Top = 376
Width = 90
Height = 25
Caption = #20174#25991#20214#29983#25104
TabOrder = 2
OnClick = Button2Click
end
object Button3: TButton
Left = 240
Top = 376
Width = 90
Height = 25
Caption = #20445#23384
TabOrder = 3
OnClick = Button3Click
end
object GroupBox2: TGroupBox
Left = 8
Top = 200
Width = 321
Height = 177
Caption = #25991#23383
TabOrder = 4
object Label5: TLabel
Left = 8
Top = 24
Width = 48
Height = 12
Caption = #27599#34892#23383#25968
end
object Label6: TLabel
Left = 8
Top = 64
Width = 48
Height = 12
Caption = #25991#23383#20449#24687
end
object Label7: TLabel
Left = 8
Top = 104
Width = 48
Height = 12
Caption = #23383#20307#22823#23567
end
object Label8: TLabel
Left = 8
Top = 142
Width = 48
Height = 12
Caption = #27700#24179#30041#30333
end
object Label9: TLabel
Left = 160
Top = 104
Width = 48
Height = 12
Caption = #23383#20307#39640#24230
end
object Label10: TLabel
Left = 160
Top = 142
Width = 48
Height = 12
Caption = #22402#30452#30041#30333
end
object Edit4: TEdit
Left = 72
Top = 20
Width = 57
Height = 20
TabOrder = 0
Text = '9'
end
object Edit5: TEdit
Left = 73
Top = 60
Width = 216
Height = 20
TabOrder = 1
Text = '123456789'
end
object Edit6: TEdit
Left = 70
Top = 100
Width = 67
Height = 20
TabOrder = 2
Text = '0'
end
object Edit7: TEdit
Left = 72
Top = 138
Width = 65
Height = 20
TabOrder = 3
Text = '10'
end
object Edit8: TEdit
Left = 225
Top = 100
Width = 56
Height = 20
TabOrder = 4
Text = '10'
end
object Edit9: TEdit
Left = 230
Top = 138
Width = 59
Height = 20
TabOrder = 5
Text = '10'
end
end
object Button4: TButton
Left = 376
Top = 376
Width = 75
Height = 25
Caption = #25171#21360#39044#35272
TabOrder = 5
OnClick = Button4Click
end
object OpenDialog1: TOpenDialog
Left = 232
Top = 216
end
object SaveDialog1: TSaveDialog
Left = 288
Top = 216
end
object RM1: TRMGridReport
ThreadPrepareReport = True
InitialZoom = pzDefault
PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator]
DefaultCollate = False
SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\'
PreviewOptions.RulerUnit = rmutScreenPixels
PreviewOptions.RulerVisible = False
PreviewOptions.DrawBorder = False
PreviewOptions.BorderPen.Color = clGray
PreviewOptions.BorderPen.Style = psDash
CompressLevel = rmzcFastest
CompressThread = False
LaterBuildEvents = True
OnlyOwnerDataSet = False
Left = 388
Top = 300
ReportData = {}
end
end

View File

@ -0,0 +1,203 @@
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, RM_System, RM_Common, RM_Class,
RM_GridReport;
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit10: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Memo1: TMemo;
Panel1: TPanel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Image1: TImage;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
GroupBox2: TGroupBox;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Button4: TButton;
RM1: TRMGridReport;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
CurrentDir:string;
public
{ Public declarations }
end;
TMakebar = procedure(ucData:pchar;nDataLen:integer;nErrLevel:integer;nMask:integer;nBarEdition:integer;szBmpFileName:pchar;nScale:integer);stdcall;
TMixtext = procedure( szSrcBmpFileName:PChar;szDstBmpFileName:PChar;sztext:PChar;fontsize,txtheight,hmargin,vmargin,txtcntoneline:integer);stdcall;
//TSetColorDepth = procedure( ndepth:integer);stdcall;
//TGetColorDepth = procedure();stdcall;
//(PCHAR ucData, long nDataLen, char* szBmpFileName,
// long nClumn, long , long );
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Moudle: THandle;
Makebar:TMakebar;
Mixtext:TMixtext;
//SetColorDepth:TSetColorDepth;
//GetColorDepth:TGetColorDepth;
strsz,StrPt,FilePt:PChar;
Txt,Txt1:String;
begin
Moudle:=LoadLibrary('MakeQRBarcode.dll');
@Makebar:=GetProcAddress(Moudle,'Make');
@Mixtext:=GetProcAddress(Moudle,'MixText');
//@SetColorDepth:=getprocaddress(Moudle, 'SetColorDepth');
//@GetColorDepth:=getprocaddress(Moudle, 'GetColorDepth');
Txt:=Memo1.Lines.Text;
Txt1:=Edit5.Text;
StrPt:=PChar(Txt);
strsz:=PChar(Txt1);
FilePt:=PChar(String('temp.bmp'));
//SetColorDepth(StrToInt(Edit10.Text));
Makebar(StrPt,Length(Txt),StrToInt(Edit2.Text),StrToInt(Edit1.Text),
StrToInt(Edit10.Text),FilePt,StrToInt(Edit3.Text));
//GetColorDepth;
Mixtext( FilePt,FilePt,strsz,StrToInt(Edit6.Text),StrToInt(Edit8.Text),StrToInt(Edit7.Text),StrToInt(Edit9.Text),StrToInt(Edit4.Text));
Image1.Picture.LoadFromFile('temp.bmp');
end;
procedure TForm1.Button2Click(Sender: TObject);
var
Moudle: THandle;
Makebar:TMakebar;
Mixtext:TMixtext;
// SetColorDepth:TSetColorDepth;
// GetColorDepth:TGetColorDepth;
strsz,StrPt,FilePt:PChar;
Txt,Txt1:string;
begin
//CurrentDir := GetCurrentDir();
OpenDialog1.InitialDir := CurrentDir;
//CreateDir(CurrentDir+'\\bmp\\');
if OpenDialog1.Execute then
Memo1.Lines.LoadFromFile(OpenDialog1.FileName)
else
Memo1.Lines.Clear;
Moudle:=LoadLibrary('MakeQRBarcode.dll');
@Makebar:=GetProcAddress(Moudle,'Make');
@Mixtext:=GetProcAddress(Moudle,'MixText');
// @SetColorDepth:=getprocaddress(Moudle, 'SetColorDepth');
// @GetColorDepth:=getprocaddress(Moudle, 'GetColorDepth');
Txt:=Memo1.Lines.Text;
Txt1:=Edit5.Text;
StrPt:=PChar(Txt);
strsz:=PChar(Txt1);
FilePt:=PChar(String('temp.bmp'));
// SetColorDepth(StrToInt(Edit10.Text));
Makebar(StrPt,Length(Txt),StrToInt(Edit2.Text),StrToInt(Edit1.Text),
StrToInt(Edit10.Text),FilePt,StrToInt(Edit3.Text));
// GetColorDepth;
Mixtext( FilePt,FilePt,strsz,StrToInt(Edit6.Text),StrToInt(Edit8.Text),StrToInt(Edit7.Text),StrToInt(Edit9.Text),StrToInt(Edit4.Text));
Image1.Picture.LoadFromFile('temp.bmp');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
CurrentDir := GetCurrentDir();
end;
procedure TForm1.Button3Click(Sender: TObject);
var
//CurrentDir:string;
NewFile: TFileStream;
OldFile: TFileStream;
PImg:string;
begin
//CurrentDir := GetCurrentDir();
CreateDir(CurrentDir+'\\bmp\\');
SaveDialog1.InitialDir := CurrentDir + '\\bmp\\';
SaveDialog1.FileName := 'barcode.bmp';
SaveDialog1.Filter := '位图文件 (*.bmp)|*.bmp|所有文件 (*.*)|*.*||';
SaveDialog1.Title := '另存为';
if (SaveDialog1.Execute()) then
begin
OldFile := TFileStream.Create(CurrentDir+'\\temp.bmp', fmOpenRead);
try
NewFile := TFileStream.Create(SaveDialog1.FileName, fmCreate);
try
NewFile.CopyFrom(OldFile, OldFile.Size);
finally
FreeAndNil(NewFile);
end;
finally
FreeAndNil(OldFile);
end;
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
var
//CurrentDir:string;
NewFile: TFileStream;
OldFile: TFileStream;
PImg:string;
begin
PImg:='D:\RT2012.bmp';
OldFile := TFileStream.Create(CurrentDir+'\\temp.bmp', fmOpenRead);
try
NewFile := TFileStream.Create(PImg, fmCreate);
try
NewFile.CopyFrom(OldFile, OldFile.Size);
DeleteFile(PImg);
finally
FreeAndNil(NewFile);
end;
finally
FreeAndNil(OldFile);
end;
RMVariables['PImg'] :=trim(PImg);
RM1.LoadFromFile(ExtractFilePath(Application.ExeName) + 'Report\图片显示.rmf');
RM1.ShowReport;
end;
end.

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -0,0 +1 @@
safdffffffffffffffffffffffffffffffffffffffffffffffffffffffff

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,13 @@
program GetAddRess;
uses
Forms,
U_GetAddRess in 'U_GetAddRess.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,467 @@
unit U_ColumnBandSet;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, cxCheckBox, ADODB, DBClient,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel,
cxClasses, cxControls, cxGridCustomView, cxGrid, ComCtrls, ToolWin,
ImgList;
type
TfrmColumnBandSet = class(TForm)
ToolBar1: TToolBar;
TBTP: TToolButton;
TBClose: TToolButton;
Tv1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
v1Column1: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
cxGridDBColumn1: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
v2Column1: TcxGridDBColumn;
ClientDataSet1: TClientDataSet;
ClientDataSet2: TClientDataSet;
DataSource1: TDataSource;
DataSource2: TDataSource;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
ADOQuery3: TADOQuery;
ADOQuery4: TADOQuery;
ADOLink: TADOConnection;
ThreeImgList: TImageList;
ThreeColorBase: TcxStyleRepository;
SHuangSe: TcxStyle;
SkyBlue: TcxStyle;
Default: TcxStyle;
QHuangSe: TcxStyle;
Red: TcxStyle;
FontBlue: TcxStyle;
TextSHuangSe: TcxStyle;
FonePurple: TcxStyle;
FoneClMaroon: TcxStyle;
FoneRed: TcxStyle;
RowColor: TcxStyle;
handBlack: TcxStyle;
cxBlue: TcxStyle;
FenHongS: TcxStyle;
cxGrid3: TcxGrid;
Tv3: TcxGridDBTableView;
cxGridDBColumn3: TcxGridDBColumn;
cxGridDBColumn4: TcxGridDBColumn;
cxGridDBColumn5: TcxGridDBColumn;
cxGridLevel2: TcxGridLevel;
DSName: TDataSource;
CDSName: TClientDataSet;
ADOQuery5: TADOQuery;
v2Column2: TcxGridDBColumn;
procedure FormDestroy(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure TBTPClick(Sender: TObject);
procedure Tv1CellClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure SCreateCDS200(SADOQry:TADOQuery; mClientDataset:TclientDataSet );
procedure SInitCDSData200(fromADO:TADOQuery;toCDS:TclientDataSet);
function GetLSNo200(ADOQueryTmp:TADOQuery;
var mMaxNo:string;
mFlag:string;
mTable:string;
mlen:integer;
mtype:integer=0):Boolean;
public
MKName:String;
{ Public declarations }
end;
var
frmColumnBandSet: TfrmColumnBandSet;
implementation
uses
U_DataLink;
{$R *.dfm}
procedure TfrmColumnBandSet.FormDestroy(Sender: TObject);
begin
frmColumnBandSet:=nil;
end;
procedure TfrmColumnBandSet.SCreateCDS200(SADOQry:TADOQuery; mClientDataset:TclientDataSet );
var
i:integer;
mfieldName:string;
mSize:integer;
begin
mfieldName:='';
mClientDataset.FieldDefs.Clear;
with SADOQry do
begin
for i:=0 to fieldCount-1 do //
begin
if (Fields[i].DataType=ftString) and (Fields[i].Size=0) then
begin
msize:=1;
end
else
msize:=Fields[i].Size;
mfieldName:=trim(fields[i].FieldName);
mClientDataset.FieldDefs.Add(mfieldName,
Fields[i].DataType,msize);
end;
end;
mClientDataset.FieldDefs.Add('Sflag',ftString,1);
mClientDataset.FieldDefs.Add('Sindex',ftInteger,0);
mClientDataset.FieldDefs.Add('Ssel',ftBoolean,0);
mClientDataset.FieldDefs.Add('SDefNote',ftString,10);
mClientDataset.Close;
mClientDataset.CreateDataSet;
end;
procedure TfrmColumnBandSet.SInitCDSData200(fromADO:TADOQuery;toCDS:TclientDataSet);
var
i:integer;
k:integer;
begin
if fromADO.IsEmpty then exit;
fromADO.first;
K:=1;
try
toCDS.DisableControls;
toCDS.Filtered:=false;
while not fromADO.Eof do
begin
with toCDS do
begin
Append;
for i:=0 to fromADO.FieldCount-1 do
begin
fields[i].value:=fromADO.Fields[i].Value ;
end;
fieldByName('Sflag').AsString :='1';
fieldByName('Sindex').value :=k;
fieldByName('Ssel').value :=false;
inc(k);
Post;
end;
fromADO.Next;
end;
if not toCDS.IsEmpty then
begin
toCDS.First ;
end;
finally
toCDS.EnableControls;
end;
end;
procedure TfrmColumnBandSet.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmColumnBandSet.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmColumnBandSet.FormShow(Sender: TObject);
begin
try
ADOQuery1.DisableControls;
with ADOQuery1 do
begin
Close;
sql.Clear;
SQL.Add('select * from SY_User where UserId<>''Admin'' ');
Open;
end;
SCreateCDS200(ADOQuery1,ClientDataSet1);
SInitCDSData200(ADOQuery1,ClientDataSet1);
finally
ADOQuery1.EnableControls;
end;
end;
procedure TfrmColumnBandSet.TBTPClick(Sender: TObject);
var
MaxNo:String;
begin
if ClientDataSet1.IsEmpty then Exit;
if ClientDataSet1.Locate('SSel',True,[])=False then Exit;
try
ADOQuery3.Connection.BeginTrans;
if ClientDataSet1.Locate('SSel',True,[])=True then
begin
with ClientDataSet1 do
begin
First;
while not eof do
begin
if ClientDataSet1.FieldByName('SSel').AsBoolean=True then
begin
with ADOQuery3 do
begin
Close;
sql.Clear;
sql.Add('Delete Table_Column where ');
sql.Add(' Owner='''+Trim(ClientDataSet1.fieldbyname('UserId').AsString)+'''');
ExecSQL;
end;
with ADOQuery3 do
begin
Close;
sql.Clear;
sql.Add('select * from Table_Column where 1<>1 ');
open;
end;
ClientDataSet2.DisableControls;
with ClientDataSet2 do
begin
first;
while not Eof do
begin
with ADOQuery3 do
begin
Append;
if GetLSNo200(ADOQuery4,MaxNo,'CL','Table_Column',4,1)=False then
begin
ADOQuery3.Connection.RollbackTrans;
Application.MessageBox('取最大号失败!','提示',0);
Exit;
end;
FieldByName('TCID').Value:=Trim(MaxNo);
FieldByName('Owner').Value:=Trim(ClientDataSet1.fieldbyname('UserId').AsString);
//SSetSaveDataCDSNew(ADOQuery3,Tv2,ClientDataSet2,'Table_Column',0);
FieldByName('CxTabName').Value:=Trim(ClientDataSet2.fieldbyname('CxTabName').AsString);
FieldByName('CxColName').Value:=Trim(ClientDataSet2.fieldbyname('CxColName').AsString);
if ClientDataSet2.fieldbyname('TCNotVisble').AsBoolean=True then
FieldByName('TCNotVisble').Value:=1
else
FieldByName('TCNotVisble').Value:=0;
FieldByName('ColName').Value:=Trim(ClientDataSet2.fieldbyname('ColName').AsString);
FieldByName('OrderNo').Value:=ClientDataSet2.fieldbyname('OrderNo').Value;
FieldByName('FillTime').Value:=Now;
Post;
end;
Next;
end;
end;
ClientDataSet2.EnableControls;
end;
Next;
end;
end;
if ClientDataSet1.Locate('SSel',True,[])=True then
begin
with ClientDataSet1 do
begin
First;
while not eof do
begin
if ClientDataSet1.FieldByName('SSel').AsBoolean=True then
begin
with ADOQuery3 do
begin
Close;
sql.Clear;
sql.Add(' Delete Table_Name where');
sql.Add(' Owner='''+Trim(ClientDataSet1.fieldbyname('UserId').AsString)+'''');
ExecSQL;
end;
with ADOQuery3 do
begin
Close;
sql.Clear;
sql.Add('select * from Table_Name where 1<>1 ');
open;
end;
CDSName.DisableControls;
with CDSName do
begin
First;
while not eof do
begin
with ADOQuery3 do
begin
Append;
FieldByName('Owner').Value:=Trim(ClientDataSet1.fieldbyname('UserId').AsString);
FieldByName('CxTabName').Value:=Trim(CDSName.fieldbyname('CxTabName').AsString);
if CDSName.fieldbyname('TCNotVisble').AsBoolean=True then
FieldByName('TCNotVisble').Value:=1
else
FieldByName('TCNotVisble').Value:=0;
if CDSName.fieldbyname('InPut').AsBoolean=True then
FieldByName('InPut').Value:=1
else
FieldByName('InPut').Value:=0;
FieldByName('FillTime').Value:=Now;
FieldByName('OrderNo').Value:=CDSName.fieldbyname('OrderNo').Value;
Post;
end;
next;
end;
end;
CDSName.EnableControls;
end;
Next;
end;
end;
end;
end;
ADOQuery3.Connection.CommitTrans;
Application.MessageBox('保存成功!','提示',0);
except
ADOQuery3.Connection.RollbackTrans;
Application.MessageBox('保存失败!','提示',0);
end;
end;
function TfrmColumnBandSet.GetLSNo200(ADOQueryTmp:TADOQuery;
var mMaxNo:string;
mFlag:string;
mTable:string;
mlen:integer;
mtype:integer=0):Boolean;
begin
try
with ADOQueryTmp do
begin
Close;
sql.Clear ;
sql.Add('exec Get_SY_MaxBH ');
sql.Add(' '+quotedStr(mFlag));
sql.Add(','+quotedStr(mTable));
sql.Add(','+intTostr(mlen));
sql.Add(','+intTostr(mtype));
//ShowMessage(SQL.Text);
Open;
if RecordCount>0 then
begin
mMaxNo:=trim(fieldByName('MaxBH').AsString) ;
if mMaxNo<>'' then
result:=true
else
Result:=false;
end
else
begin
result:=false;
end;
end;
if not Result then
application.MessageBox(Pchar('无法生成流水号('+mflag+')'),'提示信息',MB_ICONINFORMATION);
Except
result:=false;
application.MessageBox(Pchar('无法生成流水号('+mflag+')'),'提示信息',MB_ICONINFORMATION);
end;
end;
procedure TfrmColumnBandSet.Tv1CellClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
ADOQuery2.DisableControls;
with ADOQuery2 do
begin
Close;
sql.Clear;
sql.Add('select * from Table_Column where ');
sql.Add(' Owner='''+Trim(ClientDataSet1.fieldbyname('UserId').AsString)+'''');
Open;
end;
if ADOQuery2.IsEmpty=False then
begin
with ADOQuery2 do
begin
Close;
sql.Clear;
sql.Add('select * from Table_Column where ');
sql.Add(' Owner='''+Trim(ClientDataSet1.fieldbyname('UserId').AsString)+'''');
sql.Add(' order by OrderNo ');
Open;
end;
SCreateCDS200(ADOQuery2,ClientDataSet2);
SInitCDSData200(ADOQuery2,ClientDataSet2);
end else
begin
while ClientDataSet2.Locate('TCNotVisble',True,[]) do
begin
with ClientDataSet2 do
begin
Edit;
FieldByName('TCNotVisble').Value:=0;
Post;
end;
end;
end;
ADOQuery2.EnableControls;
ADOQuery5.DisableControls;
with ADOQuery5 do
begin
Close;
sql.Clear;
sql.Add('select * from Table_Name where ');
sql.Add(' Owner='''+Trim(ClientDataSet1.fieldbyname('UserId').AsString)+'''');
Open;
end;
if ADOQuery5.IsEmpty=False then
begin
with ADOQuery5 do
begin
Close;
sql.Clear;
sql.Add('select * from Table_Name where ');
sql.Add(' Owner='''+Trim(ClientDataSet1.fieldbyname('UserId').AsString)+'''');
sql.Add(' order by OrderNo ');
Open;
end;
SCreateCDS200(ADOQuery5,CDSName);
SInitCDSData200(ADOQuery5,CDSName);
end else
begin
while CDSName.Locate('TCNotVisble',True,[]) do
begin
with CDSName do
begin
Edit;
FieldByName('TCNotVisble').Value:=0;
FieldByName('InPut').Value:=0;
Post;
end;
end;
end;
ADOQuery5.EnableControls;
end;
procedure TfrmColumnBandSet.FormCreate(Sender: TObject);
begin
with ADOLink do
begin
if not Connected then
begin
Connected:=false;
ConnectionString:=DConString;
//LoginPrompt:=false;
Connected:=true;
end;
end;
end;
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,347 @@
unit U_ColumnSet;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, cxCheckBox, ADODB, DBClient,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel,
cxClasses, cxControls, cxGridCustomView, cxGrid, ComCtrls, ToolWin,
ImgList;
type
TfrmColumnSet = class(TForm)
ToolBar1: TToolBar;
TBTP: TToolButton;
TBClose: TToolButton;
Tv1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
v1Column1: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
cxGridDBColumn1: TcxGridDBColumn;
cxGridDBColumn2: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
v2Column1: TcxGridDBColumn;
ClientDataSet1: TClientDataSet;
ClientDataSet2: TClientDataSet;
DataSource1: TDataSource;
DataSource2: TDataSource;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
ADOQuery3: TADOQuery;
ADOQuery4: TADOQuery;
ADOLink: TADOConnection;
ThreeImgList: TImageList;
ThreeColorBase: TcxStyleRepository;
SHuangSe: TcxStyle;
SkyBlue: TcxStyle;
Default: TcxStyle;
QHuangSe: TcxStyle;
Red: TcxStyle;
FontBlue: TcxStyle;
TextSHuangSe: TcxStyle;
FonePurple: TcxStyle;
FoneClMaroon: TcxStyle;
FoneRed: TcxStyle;
RowColor: TcxStyle;
handBlack: TcxStyle;
cxBlue: TcxStyle;
FenHongS: TcxStyle;
procedure FormDestroy(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure TBTPClick(Sender: TObject);
procedure Tv1CellClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure SCreateCDS200(SADOQry:TADOQuery; mClientDataset:TclientDataSet );
procedure SInitCDSData200(fromADO:TADOQuery;toCDS:TclientDataSet);
function GetLSNo200(ADOQueryTmp:TADOQuery;
var mMaxNo:string;
mFlag:string;
mTable:string;
mlen:integer;
mtype:integer=0):Boolean;
public
MKName:String;
{ Public declarations }
end;
var
frmColumnSet: TfrmColumnSet;
implementation
uses
U_DataLink;
{$R *.dfm}
procedure TfrmColumnSet.FormDestroy(Sender: TObject);
begin
frmColumnSet:=nil;
end;
procedure TfrmColumnSet.SCreateCDS200(SADOQry:TADOQuery; mClientDataset:TclientDataSet );
var
i:integer;
mfieldName:string;
mSize:integer;
begin
mfieldName:='';
mClientDataset.FieldDefs.Clear;
with SADOQry do
begin
for i:=0 to fieldCount-1 do //
begin
if (Fields[i].DataType=ftString) and (Fields[i].Size=0) then
begin
msize:=1;
end
else
msize:=Fields[i].Size;
mfieldName:=trim(fields[i].FieldName);
mClientDataset.FieldDefs.Add(mfieldName,
Fields[i].DataType,msize);
end;
end;
mClientDataset.FieldDefs.Add('Sflag',ftString,1);
mClientDataset.FieldDefs.Add('Sindex',ftInteger,0);
mClientDataset.FieldDefs.Add('Ssel',ftBoolean,0);
mClientDataset.FieldDefs.Add('SDefNote',ftString,10);
mClientDataset.Close;
mClientDataset.CreateDataSet;
end;
procedure TfrmColumnSet.SInitCDSData200(fromADO:TADOQuery;toCDS:TclientDataSet);
var
i:integer;
k:integer;
begin
if fromADO.IsEmpty then exit;
fromADO.first;
K:=1;
try
toCDS.DisableControls;
toCDS.Filtered:=false;
while not fromADO.Eof do
begin
with toCDS do
begin
Append;
for i:=0 to fromADO.FieldCount-1 do
begin
fields[i].value:=fromADO.Fields[i].Value ;
end;
fieldByName('Sflag').AsString :='1';
fieldByName('Sindex').value :=k;
fieldByName('Ssel').value :=false;
inc(k);
Post;
end;
fromADO.Next;
end;
if not toCDS.IsEmpty then
begin
toCDS.First ;
end;
finally
toCDS.EnableControls;
end;
end;
procedure TfrmColumnSet.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmColumnSet.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmColumnSet.FormShow(Sender: TObject);
begin
try
ADOQuery1.DisableControls;
with ADOQuery1 do
begin
Close;
sql.Clear;
SQL.Add('select * from SY_User where UserId<>''Admin'' ');
Open;
end;
SCreateCDS200(ADOQuery1,ClientDataSet1);
SInitCDSData200(ADOQuery1,ClientDataSet1);
finally
ADOQuery1.EnableControls;
end;
end;
procedure TfrmColumnSet.TBTPClick(Sender: TObject);
var
MaxNo:String;
begin
if ClientDataSet1.Locate('SSel',True,[])=False then Exit;
try
ADOQuery3.Connection.BeginTrans;
with ClientDataSet1 do
begin
First;
while not eof do
begin
if ClientDataSet1.FieldByName('SSel').AsBoolean=True then
begin
with ADOQuery3 do
begin
Close;
sql.Clear;
sql.Add('Delete Table_Column where CxTabName='''+Trim(ClientDataSet2.fieldbyname('CxTabName').AsString)+'''');
sql.Add(' and Owner='''+Trim(ClientDataSet1.fieldbyname('UserId').AsString)+'''');
ExecSQL;
end;
with ADOQuery3 do
begin
Close;
sql.Clear;
sql.Add('select * from Table_Column where 1<>1 ');
open;
end;
with ClientDataSet2 do
begin
first;
while not Eof do
begin
with ADOQuery3 do
begin
Append;
if GetLSNo200(ADOQuery4,MaxNo,'CL','Table_Column',4,1)=False then
begin
ADOQuery3.Connection.RollbackTrans;
Application.MessageBox('取最大号失败!','提示',0);
Exit;
end;
FieldByName('TCID').Value:=Trim(MaxNo);
FieldByName('Owner').Value:=Trim(ClientDataSet1.fieldbyname('UserId').AsString);
//SSetSaveDataCDSNew(ADOQuery3,Tv2,ClientDataSet2,'Table_Column',0);
FieldByName('CxTabName').Value:=Trim(ClientDataSet2.fieldbyname('CxTabName').AsString);
FieldByName('CxColName').Value:=Trim(ClientDataSet2.fieldbyname('CxColName').AsString);
FieldByName('TCNotVisble').Value:=ClientDataSet2.fieldbyname('TCNotVisble').Value;
FieldByName('ColName').Value:=Trim(ClientDataSet2.fieldbyname('ColName').AsString);
Post;
end;
Next;
end;
end;
end;
Next;
end;
end;
ADOQuery3.Connection.CommitTrans;
Application.MessageBox('保存成功!','提示',0);
except
ADOQuery3.Connection.RollbackTrans;
Application.MessageBox('保存失败!','提示',0);
end;
end;
function TfrmColumnSet.GetLSNo200(ADOQueryTmp:TADOQuery;
var mMaxNo:string;
mFlag:string;
mTable:string;
mlen:integer;
mtype:integer=0):Boolean;
begin
try
with ADOQueryTmp do
begin
Close;
sql.Clear ;
sql.Add('exec Get_SY_MaxBH ');
sql.Add(' '+quotedStr(mFlag));
sql.Add(','+quotedStr(mTable));
sql.Add(','+intTostr(mlen));
sql.Add(','+intTostr(mtype));
//ShowMessage(SQL.Text);
Open;
if RecordCount>0 then
begin
mMaxNo:=trim(fieldByName('MaxBH').AsString) ;
if mMaxNo<>'' then
result:=true
else
Result:=false;
end
else
begin
result:=false;
end;
end;
if not Result then
application.MessageBox(Pchar('无法生成流水号('+mflag+')'),'提示信息',MB_ICONINFORMATION);
Except
result:=false;
application.MessageBox(Pchar('无法生成流水号('+mflag+')'),'提示信息',MB_ICONINFORMATION);
end;
end;
procedure TfrmColumnSet.Tv1CellClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
ADOQuery2.DisableControls;
with ADOQuery2 do
begin
Close;
sql.Clear;
sql.Add('select * from Table_Column where CxTabName='''+Trim(ClientDataSet2.fieldbyname('CxTabName').AsString)+'''');
sql.Add(' and Owner='''+Trim(ClientDataSet1.fieldbyname('UserId').AsString)+'''');
Open;
end;
if ADOQuery2.IsEmpty=False then
begin
SCreateCDS200(ADOQuery2,ClientDataSet2);
SInitCDSData200(ADOQuery2,ClientDataSet2);
end else
begin
while ClientDataSet2.Locate('TCNotVisble',True,[]) do
begin
with ClientDataSet2 do
begin
Edit;
FieldByName('TCNotVisble').Value:=0;
Post;
end;
end;
end;
ADOQuery2.EnableControls;
end;
procedure TfrmColumnSet.FormCreate(Sender: TObject);
begin
with ADOLink do
begin
if not Connected then
begin
Connected:=false;
ConnectionString:=DConString;
//LoginPrompt:=false;
Connected:=true;
end;
end;
end;
end.

View File

@ -0,0 +1,86 @@
object frmFilterHelp: TfrmFilterHelp
Left = 287
Top = 145
BorderStyle = bsDialog
Caption = #39640#32423#36807#28388
ClientHeight = 507
ClientWidth = 457
Color = clBtnFace
Font.Charset = GB2312_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 12
object ScrollBox1: TScrollBox
Left = 0
Top = 0
Width = 457
Height = 465
Align = alTop
Color = clSkyBlue
Font.Charset = GB2312_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
ParentColor = False
ParentFont = False
TabOrder = 0
object Label1: TLabel
Left = 184
Top = 8
Width = 68
Height = 16
Caption = #36807#28388#26465#20214
Font.Charset = ANSI_CHARSET
Font.Color = clRed
Font.Height = -16
Font.Name = #23435#20307
Font.Style = [fsBold]
ParentFont = False
end
object CheckBox1: TCheckBox
Left = 384
Top = 8
Width = 57
Height = 17
Caption = #31934#30830
TabOrder = 0
end
end
object Panel1: TPanel
Left = 0
Top = 465
Width = 457
Height = 43
Align = alTop
BevelInner = bvRaised
BevelOuter = bvLowered
TabOrder = 1
object Button1: TButton
Left = 112
Top = 9
Width = 75
Height = 25
Caption = #30830#23450
TabOrder = 0
OnClick = Button1Click
end
object Button2: TButton
Left = 264
Top = 9
Width = 75
Height = 25
Caption = #20851#38381
TabOrder = 1
OnClick = Button2Click
end
end
object XPManifest1: TXPManifest
Left = 280
Top = 328
end
end

View File

@ -0,0 +1,213 @@
unit U_FilterHelp;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls,cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, cxStyles, cxCustomData, cxGraphics,
cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData,StrUtils,ADODB,
XPMan;
type
TfrmFilterHelp = class(TForm)
ScrollBox1: TScrollBox;
Panel1: TPanel;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
CheckBox1: TCheckBox;
XPManifest1: TXPManifest;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
procedure CreateFilers(Tv1:TcxGridDBTableView);
function GSGetFilters():string;
procedure GSQryDofilter(ADOQry:TADOQuery;FilterStr:string);
procedure TcxGridToExcel(mfileName:string;gridName:TcxGrid);
{ Public declarations }
end;
var
frmFilterHelp: TfrmFilterHelp;
implementation
{$R *.dfm}
procedure TfrmFilterHelp.Button1Click(Sender: TObject);
begin
ModalResult:=1
end;
///////////////////////////////////////////////////////////////////
//函数功能利用cxGrid自带的功能导出到excel中
//////////////////////////////////////////////////////////////////
procedure TfrmFilterHelp.TcxGridToExcel(mfileName:string;gridName:TcxGrid);
var
saveDialog:TSaveDialog;
begin
try
saveDialog:=TSaveDialog.Create(nil);
saveDialog.Filter:='xls(*.xls)|*.xls|全部(*.*)|*.*';
saveDialog.Options:=[ofOverwritePrompt];
saveDialog.FileName:=mfileName;
if saveDialog.Execute then
if Assigned(gridName) then
begin
try
ExportGrid4ToExcel(saveDialog.FileName,gridName);
except
application.MessageBox('创建失败,源文件可能处于编辑状态!','提示信息',0);
exit;
end;
application.MessageBox('成功导出!','提示信息',0);
end
else
application.MessageBox('导出失败!','提示信息',0);
finally
saveDialog.Free;
end;
end;
procedure TfrmFilterHelp.Button2Click(Sender: TObject);
begin
ModalResult:=-1;
end;
procedure TfrmFilterHelp.CreateFilers(Tv1:TcxGridDBTableView);
var
i,j,z,m,FTop,FLeft,Fdiv,FMod:Integer;// mod 余数div商
FLableEdit:TLabeledEdit;
begin
j:=0;
for i:=0 to Tv1.ColumnCount-1 do
begin
m:=0;
if Tv1.Columns[i].Visible=False then Continue;
if not ( (Tv1.DataController.DataSource.DataSet.FieldByName(Tv1.Columns[i].DataBinding.FieldName).DataType=ftBCD) or
(Tv1.DataController.DataSource.DataSet.FieldByName(Tv1.Columns[i].DataBinding.FieldName).DataType=ftString) ) then Continue;
Fdiv:=(j+1) div 3;
FMod:=(j+1) mod 3;
FLableEdit:=TLabeledEdit.Create(Self);
FLableEdit.EditLabel.Caption:=Trim(Tv1.Columns[i].Caption);
FLableEdit.Name:=Trim(Tv1.Columns[i].DataBinding.FieldName);
if Tv1.DataController.DataSource.DataSet.FieldByName(Tv1.Columns[i].DataBinding.FieldName).DataType=ftBCD then
begin
FLableEdit.EditLabel.Caption:=Trim(Tv1.Columns[i].Caption+'始');
FLableEdit.Hint:=Trim(Tv1.Columns[i].DataBinding.FieldName);
FLableEdit.Tag:=1;
end;
FLableEdit.Text:='';
FLableEdit.TabOrder:=j;
FLableEdit.Parent:=ScrollBox1;
if FMod>0 then
FLableEdit.Top:=50*(Fdiv+1)
else
FLableEdit.Top:=50*Fdiv;
if FMod=1 then
FLableEdit.Left:=29
else if FMod=2 then
FLableEdit.Left:=163
else if FMod=0 then
FLableEdit.Left:=305;
if Tv1.DataController.DataSource.DataSet.FieldByName(Tv1.Columns[i].DataBinding.FieldName).DataType=ftBCD then
begin
j:=j+1;
Fdiv:=(j+1) div 3;
FMod:=(j+1) mod 3;
FLableEdit:=TLabeledEdit.Create(Self);
FLableEdit.EditLabel.Caption:=Trim(Tv1.Columns[i].Caption+'止');
FLableEdit.Hint:=Trim(Tv1.Columns[i].DataBinding.FieldName);
FLableEdit.Tag:=2;
FLableEdit.Text:='';
FLableEdit.TabOrder:=j;
FLableEdit.Parent:=ScrollBox1;
if FMod>0 then
FLableEdit.Top:=50*(Fdiv+1)
else
FLableEdit.Top:=50*Fdiv;
if FMod=1 then
FLableEdit.Left:=29
else if FMod=2 then
FLableEdit.Left:=163
else if FMod=0 then
FLableEdit.Left:=305;
end;
j:=j+1;
end;
end;
function TfrmFilterHelp.GSGetFilters():string;
var
i:Integer;
FValue:Double;
begin
Result:='';
with ScrollBox1 do
begin
for i:=0 to ControlCount-1 do
begin
if Controls[i] is TLabel then Continue;
if Controls[i] is TLabeledEdit then
begin
if Trim(TLabeledEdit(Controls[i]).Text)<>'' then
begin
if TLabeledEdit(Controls[i]).Tag>0 then
begin
try
FValue:=StrToFloat(TLabeledEdit(Controls[i]).Text);
except
Application.MessageBox('不能输入非法数字!','提示',0);
Exit;
end;
end;
if TLabeledEdit(Controls[i]).Tag=1 then
begin
Result:=Result+'and '+Controls[i].Hint+'>='+Trim(TLabeledEdit(Controls[i]).Text);
end else
if TLabeledEdit(Controls[i]).Tag=2 then
begin
Result:=Result+'and '+Controls[i].Hint+'<='+Trim(TLabeledEdit(Controls[i]).Text);
end else
begin
if CheckBox1.Checked then
Result:=Result+'and '+Controls[i].Name+'='+QuotedStr(Trim(TLabeledEdit(Controls[i]).Text))
else
Result:=Result+'and '+Controls[i].Name+' like '+QuotedStr('%'+Trim(TLabeledEdit(Controls[i]).Text)+'%');
end;
end;
end;
end;
end;
if Trim(Result)<>'' then
Result:=Trim(RightBStr(Result,Length(Result)-4));
end;
procedure TfrmFilterHelp.GSQryDofilter(ADOQry:TADOQuery;FilterStr:string);
begin
try
ADOQry.DisableControls;
with ADOQry do
begin
if Trim(FilterStr)='' then
begin
Filtered:=False;
end else
begin
Filtered:=False;
Filter:=FilterStr;
Filtered:=True;
end;
end;
finally
ADOQry.EnableControls;
end;
end;
end.

View File

@ -0,0 +1,131 @@
object frmFjList: TfrmFjList
Left = 237
Top = 203
Width = 639
Height = 394
BorderIcons = [biSystemMenu, biMinimize]
Caption = #38468#20214#20449#24687
Color = clBtnFace
Font.Charset = GB2312_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
OnClose = FormClose
OnCreate = FormCreate
OnDestroy = FormDestroy
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 12
object ListView1: TListView
Left = 4
Top = 16
Width = 429
Height = 301
Columns = <>
TabOrder = 0
OnDblClick = ListView1DblClick
end
object Panel1: TPanel
Left = 472
Top = 0
Width = 151
Height = 356
Align = alRight
TabOrder = 1
object FileName: TcxButton
Left = 30
Top = 60
Width = 75
Height = 25
Hint = 'Filesother'
Caption = #28155#21152
TabOrder = 0
OnClick = FileNameClick
LookAndFeel.Kind = lfOffice11
end
object cxButton1: TcxButton
Left = 30
Top = 96
Width = 75
Height = 25
Hint = 'Filesother'
Caption = #21024#38500
TabOrder = 1
OnClick = cxButton1Click
LookAndFeel.Kind = lfOffice11
end
object cxButton2: TcxButton
Left = 30
Top = 132
Width = 75
Height = 25
Hint = 'Filesother'
Caption = #20445#23384
TabOrder = 2
OnClick = cxButton2Click
LookAndFeel.Kind = lfOffice11
end
object cxButton3: TcxButton
Left = 30
Top = 172
Width = 75
Height = 25
Hint = 'Filesother'
Caption = #20851#38381
TabOrder = 3
Visible = False
OnClick = cxButton3Click
LookAndFeel.Kind = lfOffice11
end
end
object Panel2: TPanel
Left = 176
Top = 140
Width = 193
Height = 41
BevelInner = bvRaised
BevelOuter = bvLowered
Caption = 'Panel2'
Font.Charset = GB2312_CHARSET
Font.Color = clBlue
Font.Height = -12
Font.Name = #23435#20307
Font.Style = [fsBold]
ParentFont = False
TabOrder = 2
Visible = False
OnDblClick = Panel2DblClick
end
object ADOQueryTmp: TADOQuery
Connection = ADOConnection1
Parameters = <>
Left = 520
Top = 28
end
object ADOQueryCmd: TADOQuery
Connection = ADOConnection1
Parameters = <>
Left = 568
Top = 32
end
object ImageList1: TImageList
Left = 536
Top = 228
end
object IdFTP1: TIdFTP
MaxLineAction = maException
ReadTimeout = 0
ProxySettings.ProxyType = fpcmNone
ProxySettings.Port = 0
Left = 500
Top = 198
end
object ADOConnection1: TADOConnection
LoginPrompt = False
Left = 532
Top = 240
end
end

View File

@ -0,0 +1,393 @@
unit U_FjList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ComCtrls, Menus, cxLookAndFeelPainters, StdCtrls,
cxButtons, DB, ADODB, ImgList,shellapi, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, IdFTP,strutils;
type
TfrmFjList = class(TForm)
ListView1: TListView;
Panel1: TPanel;
FileName: TcxButton;
cxButton1: TcxButton;
cxButton2: TcxButton;
cxButton3: TcxButton;
ADOQueryTmp: TADOQuery;
ADOQueryCmd: TADOQuery;
ImageList1: TImageList;
Panel2: TPanel;
IdFTP1: TIdFTP;
ADOConnection1: TADOConnection;
procedure cxButton3Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FileNameClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ListView1DblClick(Sender: TObject);
procedure cxButton1Click(Sender: TObject);
procedure cxButton2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Panel2DblClick(Sender: TObject);
private
procedure InitData();
{ Private declarations }
public
fkeyNO:string;
fType:string;
fId:integer;
fstatus:integer;
{ Public declarations }
end;
var
frmFjList: TfrmFjList;
implementation
uses
U_DataLink,U_Fun10;
{$R *.dfm}
procedure TfrmFjList.InitData();
var
ListItem: TListItem;
Flag: Cardinal;
info: SHFILEINFOA;
Icon: TIcon;
begin
ListView1.Items.Clear;
try
with adoqueryTmp do
begin
close;
sql.Clear;
sql.Add('select fileName from TP_File ');
sql.Add('where WBID='+quotedstr(trim(fkeyNO)));
sql.Add('and TFType='+quotedstr(trim(fType)));
open;
if not IsEmpty then
begin
while not eof do
begin
with ListView1 do
begin
LargeImages := ImageList1;
Icon := TIcon.Create;
ListItem := Items.Add;
Listitem.Caption := trim(fieldbyname('fileName').AsString);
// Listitem.SubItems.Add(OpenDiaLog.FileName);
Flag := (SHGFI_SMALLICON or SHGFI_ICON or SHGFI_USEFILEATTRIBUTES);
SHGetFileInfo(Pchar(trim(fieldbyname('fileName').AsString)), 0, info, Sizeof(info), Flag);
Icon.Handle := info.hIcon;
ImageList1.AddIcon(Icon);
ListItem.ImageIndex := ImageList1.Count - 1;
end;
next;
end;
end;
end;
except
end;
end;
procedure TfrmFjList.cxButton3Click(Sender: TObject);
begin
ADOQueryTmp.Close;
ADOQuerycmd.Close;
ListView1.Items.Free;
ModalResult:=-1;
end;
procedure TfrmFjList.FormDestroy(Sender: TObject);
begin
frmFjList:=nil;
end;
procedure TfrmFjList.FileNameClick(Sender: TObject);
var
OpenDiaLog: TOpenDialog;
fFileName:string;
fFilePath:string;
maxNo:string;
// myStream: TADOBlobStream;
// FJStream : TMemoryStream;
begin
try
OpenDiaLog := TOpenDialog.Create(Self);
if OpenDiaLog.Execute then
begin
fFilePath:=OpenDiaLog.FileName;
fFileName:=ExtractFileName(OpenDiaLog.FileName);
with adoqueryCmd do
begin
close;
sql.Clear;
sql.Add('select TFId from TP_File ');
sql.Add('where WBID<>'+quotedstr(trim(fkeyNO)));
sql.Add('and TFType='+quotedstr(trim(fType)));
sql.Add('and FileName='+quotedstr(trim(fFileName)));
open;
IF not adoqueryCmd.IsEmpty then
begin
application.MessageBox('此附件名称已存在,请修改文件名,继续上传!','提示信息',MB_ICONERROR);
exit;
end;
end;
Panel2.Caption:='正在上传数据,请稍等...';
Panel2.Visible:=true;
application.ProcessMessages;
if GetLSNo(ADOQueryCmd,maxNo,'FJ','TP_File',4,1)=False then
begin
Application.MessageBox('取最大号失败!','提示',0);
Exit;
end;
adoqueryCmd.Connection.BeginTrans;
with adoqueryCmd do
begin
close;
sql.Clear;
sql.Add('delete from TP_File ');
sql.Add('where WBID='+quotedstr(trim(fkeyNO)));
sql.Add('and TFType='+quotedstr(trim(fType)));
sql.Add('and FileName='+quotedstr(trim(fFileName)));
execsql;
end;
try
with adoqueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from TP_File ');
sql.Add('where WBID='+quotedstr(trim(fkeyNO)));
sql.Add('and TFType='+quotedstr(trim(fType)));
sql.Add('and FileName='+quotedstr(trim(fFileName)));
open;
append;
fieldbyname('TFID').Value:=trim(maxNO);
fieldbyname('WBID').Value:=trim(fkeyNO);
fieldbyname('TFType').Value:=trim(fType);
fieldbyname('FileName').Value:=trim(fFileName);
// tblobfield(FieldByName('Filesother')).LoadFromFile(fFilePath);
post;
end;
if fFilePath <> '' then
begin
try
IdFTP1.Host := PicSvr;
IdFTP1.Username := 'three';
IdFTP1.Password := '641010';
IdFTP1.Connect();
IdFTP1.Put(fFilePath, 'FJ\' + Trim(fFileName));
IdFTP1.Quit;
except
IdFTP1.Quit;
Application.MessageBox('上传客户图样文件失败,请检查文件服务器!', '提示', MB_ICONWARNING);
end;
end;
IdFTP1.Quit;
Panel2.Visible:=false;
initdata();
finally
// FJStream.Free;
end;
end;
adoqueryCmd.Connection.CommitTrans;
except
adoqueryCmd.Connection.RollbackTrans;
application.MessageBox('附件保存失败!','提示信息',0);
end;
end;
procedure TfrmFjList.FormCreate(Sender: TObject);
begin
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=DConString;
//ConnectionString:='';
Connected:=true;
end;
ListView1.Align:=alclient;
fstatus:=0;
end;
procedure TfrmFjList.FormShow(Sender: TObject);
begin
IF fstatus=0 then Panel1.Visible:=true
else Panel1.Visible:=false;
initdata();
end;
procedure TfrmFjList.ListView1DblClick(Sender: TObject);
var
sFieldName:string;
fileName:string;
begin
if ListView1.Items.Count<1 THEN EXIT;
if listView1.SelCount<1 then exit;
sFieldName:=leftbstr(ExtractFilePath(Application.ExeName),1)+':\图片查看';
if not DirectoryExists(pchar(sFieldName)) then
CreateDirectory(pchar(sFieldName),nil);
fileName:=ListView1.Selected.Caption;
sFieldName:=sFieldName+'\'+trim(fileName);
try
IdFTP1.Host := PicSvr;
IdFTP1.Username := 'three';
IdFTP1.Password := '641010';
IdFTP1.Connect();
except
;
end;
if IdFTP1.Connected then
begin
Panel2.Caption:='正在下载数据,请稍等...';
Panel2.Visible:=true;
application.ProcessMessages;
try
IdFTP1.Get('FJ\'+ Trim(fileName), sFieldName,false, true);
except
Panel2.Visible:=false;
Application.MessageBox('客户图样文件不存在', '提示', MB_ICONWARNING);
IdFTP1.Quit;
Exit;
end;
end
else
begin
Panel2.Visible:=false;
Application.MessageBox('无法连接文件服务器', '提示', MB_ICONWARNING);
IdFTP1.Quit;
Exit;
end;
Panel2.Visible:=false;
if IdFTP1.Connected then IdFTP1.Quit;
ShellExecute(Handle, 'open',PChar(sFieldName),'', '', SW_SHOWNORMAL);
end;
procedure TfrmFjList.cxButton1Click(Sender: TObject);
var
fFileName:string;
fFilePath:string;
begin
if listView1.SelCount<1 then exit;
try
fFileName:=ListView1.Selected.Caption;
// ADOQueryTmp.Locate('fileName',fFileName,[]);
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('delete from TP_File ');
sql.Add('where WBID='+quotedstr(trim(fkeyNO)));
sql.Add('and TFType='+quotedstr(trim(fType)));
sql.Add('and FileName='+quotedstr(trim(fFileName)));
execsql;
end;
initData();
except
end;
end;
procedure TfrmFjList.cxButton2Click(Sender: TObject);
var
SaveDialog: TSaveDialog;
fFileName:string;
fFilePath:string;
begin
if listView1.SelCount<1 then exit;
try
fFileName:=ListView1.Selected.Caption;
SaveDialog := TSaveDialog.Create(Self);
SaveDialog.FileName:=fFileName;
if SaveDialog.Execute then
begin
Panel2.Caption:='正在保存数据,请稍等...';
Panel2.Visible:=true;
application.ProcessMessages;
fFilePath:=SaveDialog.FileName;
try
IdFTP1.Host := PicSvr;
IdFTP1.Username := 'three';
IdFTP1.Password := '641010';
IdFTP1.Connect();
except
;
end;
if IdFTP1.Connected then
begin
Panel2.Caption:='正在下载数据,请稍等...';
Panel2.Visible:=true;
application.ProcessMessages;
try
IdFTP1.Get('FJ\'+ Trim(fFileName), fFilePath,false, true);
except
Panel2.Visible:=false;
Application.MessageBox('客户图样文件不存在', '提示', MB_ICONWARNING);
IdFTP1.Quit;
Exit;
end;
end
else
begin
Panel2.Visible:=false;
Application.MessageBox('无法连接文件服务器', '提示', MB_ICONWARNING);
IdFTP1.Quit;
Exit;
end;
Panel2.Visible:=false;
if IdFTP1.Connected then IdFTP1.Quit;
end;
except
Panel2.Visible:=false;
end;
end;
procedure TfrmFjList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if fId=10 then Action:=cafree
else
Action:=cahide;
end;
procedure TfrmFjList.Panel2DblClick(Sender: TObject);
begin
Panel2.Visible:=false;
end;
end.

View File

@ -0,0 +1,134 @@
object frmFjList10: TfrmFjList10
Left = 237
Top = 203
Width = 798
Height = 502
BorderIcons = [biSystemMenu, biMinimize]
Caption = #38468#20214#20449#24687
Color = clBtnFace
Font.Charset = GB2312_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
OnClose = FormClose
OnCreate = FormCreate
OnDestroy = FormDestroy
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 12
object ListView1: TListView
Left = 0
Top = 0
Width = 631
Height = 464
Align = alClient
Columns = <
item
end>
TabOrder = 0
OnDblClick = ListView1DblClick
end
object Panel1: TPanel
Left = 631
Top = 0
Width = 151
Height = 464
Align = alRight
TabOrder = 1
object FileName: TcxButton
Left = 30
Top = 60
Width = 75
Height = 25
Hint = 'Filesother'
Caption = #28155#21152
TabOrder = 0
OnClick = FileNameClick
LookAndFeel.Kind = lfOffice11
end
object cxButton1: TcxButton
Left = 30
Top = 96
Width = 75
Height = 25
Hint = 'Filesother'
Caption = #21024#38500
TabOrder = 1
OnClick = cxButton1Click
LookAndFeel.Kind = lfOffice11
end
object cxButton2: TcxButton
Left = 30
Top = 132
Width = 75
Height = 25
Hint = 'Filesother'
Caption = #21478#23384#20026'...'
TabOrder = 2
OnClick = cxButton2Click
LookAndFeel.Kind = lfOffice11
end
object cxButton3: TcxButton
Left = 30
Top = 172
Width = 75
Height = 25
Hint = 'Filesother'
Caption = #20851#38381
TabOrder = 3
Visible = False
OnClick = cxButton3Click
LookAndFeel.Kind = lfOffice11
end
end
object Panel2: TPanel
Left = 176
Top = 140
Width = 193
Height = 41
BevelInner = bvRaised
BevelOuter = bvLowered
Caption = 'Panel2'
Font.Charset = GB2312_CHARSET
Font.Color = clBlue
Font.Height = -12
Font.Name = #23435#20307
Font.Style = [fsBold]
ParentFont = False
TabOrder = 2
Visible = False
OnDblClick = Panel2DblClick
end
object ADOQueryTmp: TADOQuery
Connection = ADOConnection1
Parameters = <>
Left = 520
Top = 28
end
object ADOQueryCmd: TADOQuery
Connection = ADOConnection1
Parameters = <>
Left = 568
Top = 32
end
object ImageList1: TImageList
Left = 536
Top = 228
end
object IdFTP1: TIdFTP
MaxLineAction = maException
ReadTimeout = 0
ProxySettings.ProxyType = fpcmNone
ProxySettings.Port = 0
Left = 500
Top = 198
end
object ADOConnection1: TADOConnection
LoginPrompt = False
Left = 532
Top = 240
end
end

View File

@ -0,0 +1,438 @@
unit U_FjList10;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ComCtrls, Menus, cxLookAndFeelPainters, StdCtrls,
cxButtons, DB, ADODB, ImgList,shellapi, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, IdFTP,strutils;
type
TfrmFjList10 = class(TForm)
ListView1: TListView;
Panel1: TPanel;
FileName: TcxButton;
cxButton1: TcxButton;
cxButton2: TcxButton;
cxButton3: TcxButton;
ADOQueryTmp: TADOQuery;
ADOQueryCmd: TADOQuery;
ImageList1: TImageList;
Panel2: TPanel;
IdFTP1: TIdFTP;
ADOConnection1: TADOConnection;
procedure cxButton3Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FileNameClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ListView1DblClick(Sender: TObject);
procedure cxButton1Click(Sender: TObject);
procedure cxButton2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Panel2DblClick(Sender: TObject);
private
procedure InitData();
{ Private declarations }
public
fkeyNO:string;
fType:string;
fId:integer;
fstatus:integer;
{ Public declarations }
end;
var
frmFjList10: TfrmFjList10;
implementation
uses
U_DataLink,U_Fun10,U_CompressionFun;
{$R *.dfm}
procedure TfrmFjList10.InitData();
var
ListItem: TListItem;
Flag: Cardinal;
info: SHFILEINFOA;
Icon: TIcon;
begin
ListView1.Items.Clear;
try
with adoqueryTmp do
begin
close;
sql.Clear;
sql.Add('select * from TP_File ');
sql.Add('where WBID='+quotedstr(trim(fkeyNO)));
sql.Add('and TFType='+quotedstr(trim(fType)));
open;
if not IsEmpty then
begin
while not eof do
begin
with ListView1 do
begin
LargeImages := ImageList1;
Icon := TIcon.Create;
ListItem := Items.Add;
Listitem.Caption := trim(fieldbyname('fileName').AsString);
// Listitem.SubItems.Add(OpenDiaLog.FileName);
Flag := (SHGFI_SMALLICON or SHGFI_ICON or SHGFI_USEFILEATTRIBUTES);
SHGetFileInfo(Pchar(trim(fieldbyname('fileName').AsString)), 0, info, Sizeof(info), Flag);
Icon.Handle := info.hIcon;
ImageList1.AddIcon(Icon);
ListItem.ImageIndex := ImageList1.Count - 1;
end;
next;
end;
end;
end;
except
end;
end;
procedure TfrmFjList10.cxButton3Click(Sender: TObject);
begin
ADOQueryTmp.Close;
ADOQuerycmd.Close;
ListView1.Items.Free;
ModalResult:=-1;
end;
procedure TfrmFjList10.FormDestroy(Sender: TObject);
begin
frmFjList10:=nil;
end;
procedure TfrmFjList10.FileNameClick(Sender: TObject);
var
OpenDiaLog: TOpenDialog;
fFileName:string;
fFilePath:string;
maxNo:string;
// myStream: TADOBlobStream;
// FJStream : TMemoryStream;
FJStream : TMemoryStream;
mfileSize:integer;
mCreationTime:TdateTime;
mWriteTime:TdateTime;
begin
try
OpenDiaLog := TOpenDialog.Create(Self);
if OpenDiaLog.Execute then
begin
fFilePath:=OpenDiaLog.FileName;
fFileName:=ExtractFileName(OpenDiaLog.FileName);
with adoqueryCmd do
begin
close;
sql.Clear;
sql.Add('select TFId from TP_File ');
sql.Add('where WBID<>'+quotedstr(trim(fkeyNO)));
sql.Add('and TFType='+quotedstr(trim(fType)));
sql.Add('and FileName='+quotedstr(trim(fFileName)));
open;
IF not adoqueryCmd.IsEmpty then
begin
application.MessageBox('此附件名称已存在,请修改文件名,继续上传!','提示信息',MB_ICONERROR);
exit;
end;
end;
Panel2.Caption:='正在上传数据,请稍等...';
Panel2.Visible:=true;
application.ProcessMessages;
if GetLSNo(ADOQueryCmd,maxNo,'FJ','TP_File',4,1)=False then
begin
Application.MessageBox('取最大号失败!','提示',0);
Exit;
end;
//获取文件信息
GetFileInfo(fFilePath,mfileSize,mCreationTime,mWriteTime);
adoqueryCmd.Connection.BeginTrans;
with adoqueryCmd do
begin
close;
sql.Clear;
sql.Add('delete from TP_File ');
sql.Add('where WBID='+quotedstr(trim(fkeyNO)));
sql.Add('and TFType='+quotedstr(trim(fType)));
sql.Add('and FileName='+quotedstr(trim(fFileName)));
execsql;
end;
try
FJStream:=TMemoryStream.Create;
with adoqueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from TP_File ');
sql.Add('where WBID='+quotedstr(trim(fkeyNO)));
sql.Add('and TFType='+quotedstr(trim(fType)));
sql.Add('and FileName='+quotedstr(trim(fFileName)));
open;
append;
fieldbyname('TFID').Value:=trim(maxNO);
fieldbyname('WBID').Value:=trim(fkeyNO);
fieldbyname('TFType').Value:=trim(fType);
fieldbyname('FileName').Value:=trim(fFileName);
FJStream.LoadFromFile(fFilePath);
CompressionStream(FJStream);
tblobfield(FieldByName('Filesother')).LoadFromStream(FJStream);
// tblobfield(FieldByName('Filesother')).LoadFromFile(fFilePath);
post;
end;
{ if fFilePath <> '' then
begin
try
IdFTP1.Host := PicSvr;
IdFTP1.Username := 'three';
IdFTP1.Password := '641010';
IdFTP1.Connect();
IdFTP1.Put(fFilePath, 'FJ\' + Trim(fFileName));
IdFTP1.Quit;
except
IdFTP1.Quit;
Application.MessageBox('上传客户图样文件失败,请检查文件服务器!', '提示', MB_ICONWARNING);
end;
end;
IdFTP1.Quit; }
Panel2.Visible:=false;
initdata();
finally
// FJStream.Free;
end;
end;
adoqueryCmd.Connection.CommitTrans;
except
adoqueryCmd.Connection.RollbackTrans;
application.MessageBox('附件保存失败!','提示信息',0);
end;
end;
procedure TfrmFjList10.FormCreate(Sender: TObject);
begin
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=DConString;
//ConnectionString:='';
Connected:=true;
end;
ListView1.Align:=alclient;
fstatus:=0;
end;
procedure TfrmFjList10.FormShow(Sender: TObject);
begin
IF fstatus=0 then Panel1.Visible:=true
else Panel1.Visible:=false;
initdata();
end;
procedure TfrmFjList10.ListView1DblClick(Sender: TObject);
var
sFieldName:string;
fileName:string;
ff: TADOBlobStream;
FJStream : TMemoryStream;
begin
if ListView1.Items.Count<1 THEN EXIT;
if listView1.SelCount<1 then exit;
sFieldName:=leftbstr(ExtractFilePath(Application.ExeName),1)+':\图片查看';
if not DirectoryExists(pchar(sFieldName)) then
CreateDirectory(pchar(sFieldName),nil);
fileName:=ListView1.Selected.Caption;
sFieldName:=sFieldName+'\'+trim(fileName);
{ try
IdFTP1.Host := PicSvr;
IdFTP1.Username := 'three';
IdFTP1.Password := '641010';
IdFTP1.Connect();
except
;
end;
if IdFTP1.Connected then
begin
Panel2.Caption:='正在下载数据,请稍等...';
Panel2.Visible:=true;
application.ProcessMessages;
try
IdFTP1.Get('FJ\'+ Trim(fileName), sFieldName,true, false);
except
Panel2.Visible:=false;
Application.MessageBox('客户图样文件不存在', '提示', MB_ICONWARNING);
IdFTP1.Quit;
Exit;
end;
end
else
begin
Panel2.Visible:=false;
Application.MessageBox('无法连接文件服务器', '提示', MB_ICONWARNING);
IdFTP1.Quit;
Exit;
end;
Panel2.Visible:=false;
if IdFTP1.Connected then IdFTP1.Quit;
ShellExecute(Handle, 'open',PChar(sFieldName),'', '', SW_SHOWNORMAL);
}
try
adoqueryTmp.Locate('FileName',fileName,[]);
ff := TADOBlobstream.Create(adoqueryTmp.fieldByName('FilesOther') as TblobField, bmRead);
fjStream:= TMemoryStream.Create ;
ff.SaveToStream(fjStream);
UnCompressionStream(fjStream);
fjStream.SaveToFile(sFieldName);
ShellExecute(Handle, 'open',PChar(sFieldName),'', '', SW_SHOWNORMAL);
finally
fjStream.free;
ff.Free;
end;
end;
procedure TfrmFjList10.cxButton1Click(Sender: TObject);
var
fFileName:string;
fFilePath:string;
begin
if listView1.SelCount<1 then exit;
try
fFileName:=ListView1.Selected.Caption;
// ADOQueryTmp.Locate('fileName',fFileName,[]);
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('delete from TP_File ');
sql.Add('where WBID='+quotedstr(trim(fkeyNO)));
sql.Add('and TFType='+quotedstr(trim(fType)));
sql.Add('and FileName='+quotedstr(trim(fFileName)));
execsql;
end;
initData();
except
end;
end;
procedure TfrmFjList10.cxButton2Click(Sender: TObject);
var
SaveDialog: TSaveDialog;
fFileName:string;
fFilePath:string;
ff: TADOBlobStream;
FJStream : TMemoryStream;
begin
if listView1.SelCount<1 then exit;
try
fFileName:=ListView1.Selected.Caption;
adoqueryTmp.Locate('FileName',fFileName,[]);
SaveDialog := TSaveDialog.Create(Self);
SaveDialog.FileName:=fFileName;
if SaveDialog.Execute then
begin
Panel2.Caption:='正在保存数据,请稍等...';
Panel2.Visible:=true;
application.ProcessMessages;
fFilePath:=SaveDialog.FileName;
try
ff := TADOBlobstream.Create(adoqueryTmp.fieldByName('FilesOther') as TblobField, bmRead);
fjStream:= TMemoryStream.Create ;
ff.SaveToStream(fjStream);
UnCompressionStream(fjStream);
fjStream.SaveToFile(fFilePath);
// ShellExecute(Handle, 'open',PChar(sFieldName),'', '', SW_SHOWNORMAL);
finally
fjStream.free;
ff.Free;
Panel2.Visible:=false;
end;
end;
{ try
IdFTP1.Host := PicSvr;
IdFTP1.Username := 'three';
IdFTP1.Password := '641010';
IdFTP1.Connect();
except
;
end;
if IdFTP1.Connected then
begin
Panel2.Caption:='正在下载数据,请稍等...';
Panel2.Visible:=true;
application.ProcessMessages;
try
IdFTP1.Get('FJ\'+ Trim(fFileName), fFilePath,false, true);
except
Panel2.Visible:=false;
Application.MessageBox('客户图样文件不存在', '提示', MB_ICONWARNING);
IdFTP1.Quit;
Exit;
end;
end
else
begin
Panel2.Visible:=false;
Application.MessageBox('无法连接文件服务器', '提示', MB_ICONWARNING);
IdFTP1.Quit;
Exit;
end;
Panel2.Visible:=false;
if IdFTP1.Connected then IdFTP1.Quit;
end; }
except
Panel2.Visible:=false;
end;
end;
procedure TfrmFjList10.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if fId=10 then Action:=cafree
else
Action:=cahide;
end;
procedure TfrmFjList10.Panel2DblClick(Sender: TObject);
begin
Panel2.Visible:=false;
end;
end.

View File

@ -0,0 +1,47 @@
object Form1: TForm1
Left = 200
Top = 128
Width = 520
Height = 376
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -14
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
PixelsPerInch = 120
TextHeight = 16
object Label1: TLabel
Left = 158
Top = 118
Width = 41
Height = 16
Caption = 'Label1'
end
object Label2: TLabel
Left = 256
Top = 128
Width = 41
Height = 16
Caption = 'Label2'
end
object Button1: TButton
Left = 138
Top = 59
Width = 92
Height = 31
Caption = 'Button1'
TabOrder = 0
OnClick = Button1Click
end
object Edit1: TEdit
Left = 246
Top = 59
Width = 149
Height = 21
TabOrder = 1
end
end

View File

@ -0,0 +1,43 @@
unit U_GetAddRess;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,StdCtrls,WinSock;
Function sendarp(ipaddr:ulong;temp:dword;ulmacaddr:pointer;ulmacaddrleng:pointer) : DWord; StdCall; External 'Iphlpapi.dll' Name 'SendARP';
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
myip:ulong;
mymac:array[0..5] of byte;
mymaclength:ulong;
r:integer;
begin
{myip:=inet_addr(PChar(Trim(Edit1.Text)));
mymaclength:=length(mymac);
r:=sendarp(myip,0,@mymac,@mymaclength);
label1.caption:='errorcode:'+inttostr(r);
label2.caption:=format('%2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x',[mymac[0],mymac[1],mymac[2],mymac[3],mymac[4],mymac[5]]); }
end;
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,264 @@
unit U_ItemManageNew;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, ToolWin, ComCtrls,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel,
cxClasses, cxControls, cxGridCustomView, cxGrid, DBClient, ADODB, ImgList,
StdCtrls, ExtCtrls;
type
TfrmItemManageNew = class(TForm)
TV1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
V1Code: TcxGridDBColumn;
V1Name: TcxGridDBColumn;
ToolBar1: TToolBar;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
DataSource1: TDataSource;
ClientDataSet1: TClientDataSet;
TBAdd: TToolButton;
TBSave: TToolButton;
TBDel: TToolButton;
TBClose: TToolButton;
ToolButton1: TToolButton;
TBEdit: TToolButton;
V1Note: TcxGridDBColumn;
V1OrderNo: TcxGridDBColumn;
ADOConnection1: TADOConnection;
ImageList24: TImageList;
Panel1: TPanel;
Label1: TLabel;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBAddClick(Sender: TObject);
procedure TBSaveClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure TBEditClick(Sender: TObject);
procedure TV1CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
private
procedure InitGrid();
{ Private declarations }
public
flag,flagname,snote:string;
fnote,forderno:Boolean;
{ Public declarations }
end;
var
frmItemManageNew: TfrmItemManageNew;
implementation
uses
U_DataLink,U_Fun;
{$R *.dfm}
procedure TfrmItemManageNew.FormCreate(Sender: TObject);
begin
cxGrid1.Align:=alClient;
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=DConString;
Connected:=true;
end;
end;
procedure TfrmItemManageNew.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmItemManageNew.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
sql.Clear;
sql.Add('select * from XC_Code where Flag='''+flag+'''');
Open;
end;
SCreateCDS20(ADOQueryMain,ClientDataSet1);
SInitCDSData20(ADOQueryMain,ClientDataSet1);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmItemManageNew.TBAddClick(Sender: TObject);
begin
TV1.OptionsData.Editing:=True;
with ClientDataSet1 do
begin
Append;
Post;
end;
end;
procedure TfrmItemManageNew.TBSaveClick(Sender: TObject);
begin
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('delete XC_Code where Flag='''+Flag+'''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from XC_Code where 1<>1');
Open;
end;
with ADOQueryCmd do
begin
if ClientDataSet1.IsEmpty then
begin
ADOQueryCmd.Close;
ADOQueryCmd.sql.Clear;
ADOQueryCmd.sql.Add('delete from XC_Code where Code='''+Flag+'''');
ADOQueryCmd.ExecSQL;
end else
begin
with ClientDataSet1 do
begin
First;
while not eof do
begin
if Trim(ClientDataSet1.FieldByName('Code').AsString)='' then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('编号不能为空!','提示',0);
Exit;
end;
if Trim(ClientDataSet1.FieldByName('Name').AsString)='' then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('名称不能为空!','提示',0);
Exit;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from XC_Code where Code='''+Trim(ClientDataSet1.fieldbyname('Code').AsString)+'''');
Open;
if not IsEmpty then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('编号重复!','提示',0);
Exit;
end;
end;
ADOQueryCmd.Append;
ADOQueryCmd.FieldByName('Code').Value:=ClientDataSet1.fieldbyname('Code').AsString;
ADOQueryCmd.FieldByName('Name').Value:=ClientDataSet1.fieldbyname('Name').AsString;
ADOQueryCmd.FieldByName('note').Value:=Trim(snote);
//ADOQueryCmd.FieldByName('orderno').Value:=ClientDataSet1.fieldbyname('Name').AsString;
ADOQueryCmd.FieldByName('Flag').Value:=flag;
ADOQueryCmd.FieldByName('valid').Value:='Y';
ADOQueryCmd.FieldByName('sel').Value:=0;
ADOQueryCmd.Post;
Next;
end;
end;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
Application.MessageBox('保存成功!','提示',0);
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('保存失败!','提示',0);
end;
TV1.OptionsData.Editing:=False;
end;
procedure TfrmItemManageNew.TBDelClick(Sender: TObject);
begin
if ClientDataSet1.IsEmpty then Exit;
if (Trim(ClientDataSet1.FieldByName('Code').AsString)<>'') or
(Trim(ClientDataSet1.FieldByName('name').AsString)<>'') then
begin
if application.MessageBox('确定要删除吗?','提示信息',1)=2 then exit;
ClientDataSet1.Delete;
end;
end;
procedure TfrmItemManageNew.TBCloseClick(Sender: TObject);
begin
ModalResult:=2;
Close;
end;
procedure TfrmItemManageNew.FormShow(Sender: TObject);
var
fsj,fsj1:string;
begin
InitGrid();
fsj:=Trim(flag)+'01';
fsj1:=Trim(flagname)+'01';
if ClientDataSet1.IsEmpty then
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
//sql.Add('insert into XC_Code(code,name,flag,note)');
//sql.Add('select '''+Trim(flag)+'''');
//sql.Add(','''+Trim(flagname)+'''');
//SQL.Add(',''BASECODE'' ');
//sql.Add(','''+Trim(snote)+'''');
sql.Add('insert into XC_Code(code,name,flag,note)');
sql.Add('select '''+Trim(fsj)+'''');
sql.Add(','''+Trim(fsj1)+'''');
SQL.Add(','''+Trim(flag)+'''');
sql.Add(','''+Trim(snote)+'''');
ExecSQL;
end;
InitGrid();
end;
frmItemManageNew.Caption:=Trim(flagname)+'<'+Trim(flag)+'>';
end;
procedure TfrmItemManageNew.ToolButton1Click(Sender: TObject);
begin
ModalResult:=1;
end;
procedure TfrmItemManageNew.TBEditClick(Sender: TObject);
begin
TV1.OptionsData.Editing:=True;
end;
procedure TfrmItemManageNew.TV1CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
if TV1.OptionsData.Editing=False then
begin
ModalResult:=1;
end;
end;
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,167 @@
unit U_KHHelp;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, ToolWin, ComCtrls,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel,
cxClasses, cxControls, cxGridCustomView, cxGrid, DBClient, ADODB, ImgList,
StdCtrls, ExtCtrls, cxTextEdit, cxGridCustomPopupMenu, cxGridPopupMenu;
type
TfrmKHHelp = class(TForm)
TV1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
V1Name: TcxGridDBColumn;
ToolBar1: TToolBar;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
DataSource1: TDataSource;
ClientDataSet1: TClientDataSet;
TBClose: TToolButton;
ToolButton1: TToolButton;
ADOConnection1: TADOConnection;
Panel1: TPanel;
Label1: TLabel;
ZDYName: TEdit;
ThreeImgList: TImageList;
cxGridPopupMenu1: TcxGridPopupMenu;
V1Column1: TcxGridDBColumn;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure TV1CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure ZDYNameChange(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
procedure InitGrid();
{ Private declarations }
public
flag,flagname,snote,MainType:string;
fnote,forderno,fZdyFlag:Boolean;
PPSTE:integer;
{ Public declarations }
end;
var
frmKHHelp: TfrmKHHelp;
implementation
uses
U_DataLink,U_Fun;
{$R *.dfm}
procedure TfrmKHHelp.FormCreate(Sender: TObject);
begin
try
cxGrid1.Align:=alClient;
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=DConString;
//ConnectionString:='';
Connected:=true;
end;
except
frmKHHelp.Free;
end;
end;
procedure TfrmKHHelp.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
ZDYName.SetFocus;
Action:=caFree;
end;
procedure TfrmKHHelp.InitGrid();
var
CYType:String;
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from SY_User where UserId='''+Trim(DCode)+'''');
Open;
end;
CYType:=Trim(ADOQueryTemp.fieldbyname('DPID').AsString);
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
sql.Clear;
sql.Add('exec P_Select_User_KHName :CYType');
Parameters.ParamByName('CYType').Value:=Trim(CYType);
Open;
end;
SCreateCDS20(ADOQueryMain,ClientDataSet1);
SInitCDSData20(ADOQueryMain,ClientDataSet1);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmKHHelp.TBCloseClick(Sender: TObject);
begin
ModalResult:=2;
ZDYName.SetFocus;
WriteCxGrid('客户名称',TV1,'基础数据');
Close;
end;
procedure TfrmKHHelp.FormShow(Sender: TObject);
begin
InitGrid();
ReadCxGrid('客户名称',TV1,'基础数据');
end;
procedure TfrmKHHelp.ToolButton1Click(Sender: TObject);
begin
ZDYName.SetFocus;
ModalResult:=1;
end;
procedure TfrmKHHelp.TV1CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
if TV1.OptionsData.Editing=False then
begin
ModalResult:=1;
end;
end;
procedure TfrmKHHelp.ZDYNameChange(Sender: TObject);
var
fsj:String;
begin
if Trim(ZDYName.Text)<>'' then
begin
fsj:=' zdyname like '''+'%'+Trim(ZDYName.Text)+'%'+''''
+' or ZJM like '''+'%'+Trim(ZDYName.Text)+'%'+'''';
end;
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain,fsj);
SCreateCDS20(ADOQueryMain,ClientDataSet1);
SInitCDSData20(ADOQueryMain,ClientDataSet1);
end;
end;
procedure TfrmKHHelp.FormDestroy(Sender: TObject);
begin
frmKHHelp:=nil;
end;
end.

View File

@ -0,0 +1,104 @@
object frmSelExportField: TfrmSelExportField
Left = 473
Top = 162
BorderStyle = bsDialog
Caption = #23383#27573#23548#20986#36873#25321
ClientHeight = 616
ClientWidth = 538
Color = clBtnFace
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -15
Font.Name = #23435#20307
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
OnClose = FormClose
OnDestroy = FormDestroy
OnShow = FormShow
PixelsPerInch = 120
TextHeight = 15
object Button1: TButton
Left = 118
Top = 570
Width = 93
Height = 31
Caption = #30830#23450
TabOrder = 0
OnClick = Button1Click
end
object Button2: TButton
Left = 304
Top = 570
Width = 94
Height = 31
Caption = #20851#38381
TabOrder = 1
OnClick = Button2Click
end
object cxGrid1: TcxGrid
Left = 531
Top = 79
Width = 352
Height = 141
TabOrder = 2
Visible = False
object ExpGrid: TcxGridDBTableView
Navigator.Buttons.CustomButtons = <>
DataController.DataSource = ExportDataSource
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <>
DataController.Summary.SummaryGroups = <>
OptionsBehavior.AlwaysShowEditor = True
OptionsView.GroupByBox = False
end
object cxGrid1Level1: TcxGridLevel
GridView = ExpGrid
end
end
object Panel2: TScrollBox
Left = 3
Top = 0
Width = 528
Height = 548
HorzScrollBar.Visible = False
Color = clSkyBlue
ParentColor = False
TabOrder = 3
object Label4: TLabel
Left = 198
Top = 11
Width = 72
Height = 17
Caption = #23383#27573#36873#25321
Font.Charset = GB2312_CHARSET
Font.Color = clRed
Font.Height = -17
Font.Name = #23435#20307
Font.Style = [fsBold]
ParentFont = False
end
end
object CheckBox1: TCheckBox
Left = 25
Top = 561
Width = 61
Height = 22
Caption = #20840#36873
TabOrder = 4
OnClick = CheckBox1Click
end
object CheckBox2: TCheckBox
Left = 25
Top = 581
Width = 61
Height = 22
Caption = #20840#24323
TabOrder = 5
OnClick = CheckBox2Click
end
object ExportDataSource: TDataSource
Left = 424
Top = 233
end
end

View File

@ -0,0 +1,310 @@
unit U_SelExportField;
interface
uses
{Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, RM_FormReport, RM_PDBGrid,
DB,IniFiles, RM_Common, RM_Class, RM_e_Xls, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData,
cxGridLevel, cxClasses, cxControls, cxGridCustomView,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid; }
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, StdCtrls, BtnEdit, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit,DBGrids, DB, cxDBData,
cxGridLevel, cxClasses, cxControls, cxGridCustomView, ADODB,StrUtils,
Midas,cxGridCustomTableView, cxGridTableView, cxGridDBTableView,cxTimeEdit,
cxTreeView, cxGrid,cxDBLookupComboBox,cxCalendar, cxCurrencyEdit,cxGridExportLink,
ExtCtrls, Buttons,DBClient,FTComboBox,cxDropDownEdit,cxGridBandedTableView,
cxGridDBBandedTableView,cxRichEdit,cxButtonEdit,IniFiles,WinSock,
cxLookAndFeels, cxLookAndFeelPainters, cxNavigator;
type
TfrmSelExportField = class(TForm)
Button1: TButton;
Button2: TButton;
ExportDataSource: TDataSource;
ExpGrid: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
Panel2: TScrollBox;
Label4: TLabel;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
private
procedure CreateCheckBox();
procedure ExportData();
procedure ReadINIFile(fieldname:string);
procedure WriteINIFile(fieldname:string);
Function IsINIFile(fieldname:string):Boolean;
procedure GetExportFields();
procedure IsCheck();
procedure TcxGridToExcel(mfileName:string;gridName:TcxGrid);
{ Private declarations }
public
ExportFields,IniName:string;
{ Public declarations }
end;
var
frmSelExportField: TfrmSelExportField;
implementation
//uses U_SelPrintField,U_FormPas;
{$R *.dfm}
procedure TfrmSelExportField.CreateCheckBox();
var
i,j,FTop,FLeft,Fdiv,FMod:Integer;// mod 余数div商
FCheckBox:TCheckBox;
begin
for i:=0 to ExpGrid.ColumnCount-1 do
begin
Fdiv:=(i+1) div 3;
FMod:=(i+1) mod 3;
FCheckBox:=TCheckBox.Create(Self);
FCheckBox.Caption:=Trim(ExpGrid.Columns[i].Caption);
FCheckBox.TabOrder:=i;
FCheckBox.Parent:=Panel2;
FCheckBox.Checked:=True;
if FMod>0 then
FCheckBox.Top:=36*(Fdiv+1)
else
FCheckBox.Top:=36*Fdiv;
if FMod=1 then
FCheckBox.Left:=29
else if FMod=2 then
FCheckBox.Left:=163
else if FMod=0 then
FCheckBox.Left:=305;
end;
end;
procedure TfrmSelExportField.TcxGridToExcel(mfileName:string;gridName:TcxGrid);
var
saveDialog:TSaveDialog;
begin
try
saveDialog:=TSaveDialog.Create(nil);
saveDialog.Filter:='xls(*.xls)|*.xls|全部(*.*)|*.*';
saveDialog.Options:=[ofOverwritePrompt];
saveDialog.FileName:=mfileName;
if saveDialog.Execute then
if Assigned(gridName) then
begin
try
ExportGridToExcel(saveDialog.FileName,gridName);
except
application.MessageBox('创建失败,源文件可能处于编辑状态!','提示信息',0);
exit;
end;
application.MessageBox('成功导出!','提示信息',0);
end
else
application.MessageBox('导出失败!','提示信息',0);
finally
saveDialog.Free;
end;
end;
procedure TfrmSelExportField.Button1Click(Sender: TObject);
begin
//ShowMessage('10除以3取余'+inttostr(10 mod 3)+',取整'+inttostr(10 div 3));
ExportData();
GetExportFields();
if IsINIFile(IniName)=True then
begin
DeleteFile(IniName);
end;
WriteINIFile(IniName);
end;
procedure TfrmSelExportField.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmSelExportField.FormDestroy(Sender: TObject);
begin
frmSelExportField:=nil;
end;
procedure TfrmSelExportField.FormShow(Sender: TObject);
begin
CreateCheckBox();
ReadINIFile(IniName);
IsCheck();
end;
procedure TfrmSelExportField.IsCheck();
var
i:Integer;
fsj:string;
begin
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
fsj:=Trim(TCheckBox(Controls[i]).Caption);
if Pos(fsj,ExportFields)>0 then
TCheckBox(Controls[i]).Checked:=True
else
TCheckBox(Controls[i]).Checked:=False;
end;
end;
end;
end;
procedure TfrmSelExportField.ExportData();
var
i,j:Integer;
begin
j:=0;
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if TCheckBox(Controls[i]).Checked=True then
begin
j:=1;
ExpGrid.Columns[TCheckBox(Controls[i]).TabOrder].Visible:=True
end else
begin
ExpGrid.Columns[TCheckBox(Controls[i]).TabOrder].Visible:=False;
end;
end;
end;
end;
TcxGridToExcel(Trim(IniName),cxGrid1);
end;
procedure TfrmSelExportField.Button2Click(Sender: TObject);
begin
Close;
end;
procedure TfrmSelExportField.ReadINIFile(fieldname:string);
var
programIni:Tinifile; //配置文件名
FName:string;
begin
FName:=ExtractFilePath(Application.ExeName)+'FieldExportSet\' +trim(fieldname)+'.INI';
programIni:=Tinifile.create(FName);
ExportFields:=programIni.ReadString('导出设置','导出字段','');
programIni.Free;
end;
procedure TfrmSelExportField.GetExportFields();
var
i:Integer;
begin
ExportFields:='Begin';
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if TCheckBox(Controls[i]).Checked then
begin
ExportFields:=ExportFields+'/'+TCheckBox(Controls[i]).Caption;
end;
end;
end;
end;
end;
//////////////////////////////////////////////////////////////////
//写设置信息到INI文件
//参数
//////////////////////////////////////////////////////////////////
procedure TfrmSelExportField.WriteINIFile(fieldname:string);
var
programIni:Tinifile; //配置文件名
FName:string;
begin
FName:=ExtractFilePath(Application.ExeName)+'FieldExportSet\'+trim(fieldname)+'.INI';
if not DirectoryExists(ExtractFileDir(FName)) then
CreateDir(ExtractFileDir(FName));
programIni:=Tinifile.create(FName);
programIni.WriteString('导出设置','导出字段',ExportFields);
programIni.Free;
end;
//////////////////////////////////////////////////////////////////
//判断InI文件是否存在
//////////////////////////////////////////////////////////////////
Function TfrmSelExportField.IsINIFile(fieldname:string):Boolean;
var
FName:string;
begin
FName:=ExtractFilePath(Application.ExeName)+'FieldExportSet\'+trim(fieldname)+'.INI';
if FileExists(FName) then
Result:=True
else
Result:=false;
end;
procedure TfrmSelExportField.CheckBox1Click(Sender: TObject);
var
i:Integer;
begin
if CheckBox1.Checked then
begin
CheckBox2.Checked:=False;
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if (TCheckBox(Controls[i]).Name<>'CheckBox1') and (TCheckBox(Controls[i]).Name<>'CheckBox2') then
begin
TCheckBox(Controls[i]).Checked:=True;
end;
end;
end;
end;
end;
end;
procedure TfrmSelExportField.CheckBox2Click(Sender: TObject);
var
i:Integer;
begin
if CheckBox2.Checked then
begin
CheckBox1.Checked:=False;
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if (TCheckBox(Controls[i]).Name<>'CheckBox1') and (TCheckBox(Controls[i]).Name<>'CheckBox2') then
begin
TCheckBox(Controls[i]).Checked:=False;
end;
end;
end;
end;
end;
end;
end.

View File

@ -0,0 +1,149 @@
object frmSelPrintField: TfrmSelPrintField
Left = 329
Top = 100
Width = 427
Height = 530
Caption = #23383#27573#25171#21360#36873#25321
Color = clBtnFace
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
OnClose = FormClose
OnDestroy = FormDestroy
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 12
object Button1: TButton
Left = 94
Top = 456
Width = 75
Height = 25
Caption = #30830#23450
TabOrder = 0
OnClick = Button1Click
end
object Button2: TButton
Left = 243
Top = 456
Width = 75
Height = 25
Caption = #20851#38381
TabOrder = 1
OnClick = Button2Click
end
object PrnGrid: TDBGrid
Left = 497
Top = 93
Width = 200
Height = 120
DataSource = PrintDataSource
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = #23435#20307
Font.Style = []
ParentFont = False
TabOrder = 2
TitleFont.Charset = ANSI_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -16
TitleFont.Name = #23435#20307
TitleFont.Style = []
Visible = False
end
object ScrollBox1: TScrollBox
Left = 2
Top = 0
Width = 415
Height = 438
Color = clSkyBlue
ParentColor = False
TabOrder = 3
object Label4: TLabel
Left = 158
Top = 9
Width = 60
Height = 14
Caption = #23383#27573#36873#25321
Font.Charset = GB2312_CHARSET
Font.Color = clRed
Font.Height = -14
Font.Name = #23435#20307
Font.Style = [fsBold]
ParentFont = False
end
end
object RMPrintDBGrid1: TRMPrintDBGrid
ReportOptions = [rmgoStretch, rmgoWordWrap, rmgoGridLines]
PageLayout.LeftMargin = 38
PageLayout.TopMargin = 38
PageLayout.RightMargin = 38
PageLayout.BottomMargin = 38
PageLayout.Height = 2970
PageLayout.Width = 2100
PageLayout.PageBin = 0
PageLayout.PrinterName = #40664#35748#25171#21360#26426
PageLayout.ColorPrint = False
PageHeaderMsg.Font.Charset = GB2312_CHARSET
PageHeaderMsg.Font.Color = clWindowText
PageHeaderMsg.Font.Height = -13
PageHeaderMsg.Font.Name = #23435#20307
PageHeaderMsg.Font.Style = []
PageFooterMsg.Font.Charset = GB2312_CHARSET
PageFooterMsg.Font.Color = clWindowText
PageFooterMsg.Font.Height = -15
PageFooterMsg.Font.Name = #23435#20307
PageFooterMsg.Font.Style = []
PageCaptionMsg.CaptionMsg.Font.Charset = GB2312_CHARSET
PageCaptionMsg.CaptionMsg.Font.Color = clWindowText
PageCaptionMsg.CaptionMsg.Font.Height = -13
PageCaptionMsg.CaptionMsg.Font.Name = #23435#20307
PageCaptionMsg.CaptionMsg.Font.Style = []
PageCaptionMsg.TitleFont.Charset = GB2312_CHARSET
PageCaptionMsg.TitleFont.Color = clWindowText
PageCaptionMsg.TitleFont.Height = -16
PageCaptionMsg.TitleFont.Name = #23435#20307
PageCaptionMsg.TitleFont.Style = [fsBold]
MasterDataBandOptions.ReprintColumnHeaderOnNewColumn = True
GridNumOptions.Text = 'No'
GridFontOptions.Font.Charset = ANSI_CHARSET
GridFontOptions.Font.Color = clWindowText
GridFontOptions.Font.Height = -15
GridFontOptions.Font.Name = #23435#20307
GridFontOptions.Font.Style = []
ReportSettings.InitialZoom = pzDefault
ReportSettings.PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS]
DBGrid = PrnGrid
Left = 339
Top = 449
end
object PrintDataSource: TDataSource
DataSet = ClientDataSet1
Left = 536
Top = 246
end
object RMXLSExport1: TRMXLSExport
ShowAfterExport = True
ExportPrecision = 1
PagesOfSheet = 1
ExportImages = True
ExportFrames = True
ExportImageFormat = ifBMP
JPEGQuality = 0
ScaleX = 1.000000000000000000
ScaleY = 1.000000000000000000
CompressFile = False
Left = 359
Top = 368
end
object ClientDataSet1: TClientDataSet
Aggregates = <>
Params = <>
Left = 378
Top = 340
end
end

View File

@ -0,0 +1,241 @@
unit U_SelPrintField;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, RM_FormReport, RM_PDBGrid,
DB,IniFiles, RM_Common, RM_Class, RM_e_Xls, DBClient;
type
TfrmSelPrintField = class(TForm)
RMPrintDBGrid1: TRMPrintDBGrid;
Button1: TButton;
Button2: TButton;
PrintDataSource: TDataSource;
PrnGrid: TDBGrid;
RMXLSExport1: TRMXLSExport;
ClientDataSet1: TClientDataSet;
ScrollBox1: TScrollBox;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
procedure CreateCheckBox();
procedure PrintData();
procedure ReadINIFile(fieldname:string);
procedure WriteINIFile(fieldname:string);
Function IsINIFile(fieldname:string):Boolean;
procedure GetPrintFields();
procedure IsCheck();
{ Private declarations }
public
PrintFields,IniName:string;
{ Public declarations }
end;
var
frmSelPrintField: TfrmSelPrintField;
implementation
{$R *.dfm}
procedure TfrmSelPrintField.CreateCheckBox();
var
i,j,FTop,FLeft,Fdiv,FMod:Integer;// mod 余数div商
FCheckBox:TCheckBox;
begin
for i:=0 to PrnGrid.Columns.Count-1 do
begin
Fdiv:=(i+1) div 3;
FMod:=(i+1) mod 3;
FCheckBox:=TCheckBox.Create(Self);
FCheckBox.Caption:=Trim(PrnGrid.Columns[i].Title.Caption);
FCheckBox.TabOrder:=i;
FCheckBox.Parent:=ScrollBox1;
FCheckBox.Checked:=True;
if FMod>0 then
FCheckBox.Top:=36*(Fdiv+1)
else
FCheckBox.Top:=36*Fdiv;
if FMod=1 then
FCheckBox.Left:=29
else if FMod=2 then
FCheckBox.Left:=163
else if FMod=0 then
FCheckBox.Left:=305;
end;
end;
procedure TfrmSelPrintField.Button1Click(Sender: TObject);
begin
//ShowMessage('10除以3取余'+inttostr(10 mod 3)+',取整'+inttostr(10 div 3));
PrintData();
GetPrintFields();
if IsINIFile(IniName)=True then
begin
DeleteFile(IniName);
end;
WriteINIFile(IniName);
end;
procedure TfrmSelPrintField.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmSelPrintField.FormDestroy(Sender: TObject);
begin
frmSelPrintField:=nil;
end;
procedure TfrmSelPrintField.FormShow(Sender: TObject);
begin
CreateCheckBox();
ReadINIFile(IniName);
IsCheck();
end;
procedure TfrmSelPrintField.IsCheck();
var
i:Integer;
fsj:string;
begin
with ScrollBox1 do
begin
for i:=0 to ScrollBox1.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
fsj:=Trim(TCheckBox(Controls[i]).Caption);
if Pos(fsj,PrintFields)>0 then
TCheckBox(Controls[i]).Checked:=True
else
TCheckBox(Controls[i]).Checked:=False;
end;
end;
end;
end;
procedure TfrmSelPrintField.PrintData();
var
i,j,k:Integer;
FFieldName:string;
begin
j:=0;
k:=0;
with ScrollBox1 do
begin
for i:=0 to ScrollBox1.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if TCheckBox(Controls[i]).Checked=True then
begin
j:=1;
PrnGrid.Columns[TCheckBox(Controls[i]).TabOrder].Visible:=True;
k:=k+1;
if k=1 then
begin
FFieldName:=PrnGrid.Columns[TCheckBox(Controls[i]).TabOrder].FieldName;
end;
end else
begin
PrnGrid.Columns[TCheckBox(Controls[i]).TabOrder].Visible:=False;
end;
end;
end;
end;
{ClientDataSet1.Last;
if Trim(ClientDataSet1.FieldByName('flag').AsString)='Y' then
begin
ClientDataSet1.Edit;
ClientDataSet1.FieldByName(FFieldName).Value:='合计';
ClientDataSet1.Post;
end;}
if j=1 then
begin
RMPrintDBGrid1.ShowReport ;
end
else
begin
Application.MessageBox('没有可打印的信息!','提示',0);
Exit;
end;
//Panel2.Visible:=False;
//RMPrintDBGrid1.ShowReport;
end;
procedure TfrmSelPrintField.Button2Click(Sender: TObject);
begin
Close;
end;
procedure TfrmSelPrintField.ReadINIFile(fieldname:string);
var
programIni:Tinifile; //配置文件名
FName:string;
begin
FName:=ExtractFilePath(Application.ExeName)+'FieldPrintSet\' +trim(fieldname)+'.INI';
programIni:=Tinifile.create(FName);
PrintFields:=programIni.ReadString('打印设置','打印字段','');
programIni.Free;
end;
procedure TfrmSelPrintField.GetPrintFields();
var
i:Integer;
begin
PrintFields:='Begin';
with ScrollBox1 do
begin
for i:=0 to ScrollBox1.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if TCheckBox(Controls[i]).Checked then
begin
PrintFields:=PrintFields+'/'+TCheckBox(Controls[i]).Caption;
end;
end;
end;
end;
end;
//////////////////////////////////////////////////////////////////
//写设置信息到INI文件
//参数
//////////////////////////////////////////////////////////////////
procedure TfrmSelPrintField.WriteINIFile(fieldname:string);
var
programIni:Tinifile; //配置文件名
FName:string;
begin
FName:=ExtractFilePath(Application.ExeName)+'FieldPrintSet\'+trim(fieldname)+'.INI';
if not DirectoryExists(ExtractFileDir(FName)) then
CreateDir(ExtractFileDir(FName));
programIni:=Tinifile.create(FName);
programIni.WriteString('打印设置','打印字段',PrintFields);
programIni.Free;
end;
//////////////////////////////////////////////////////////////////
//判断InI文件是否存在
//////////////////////////////////////////////////////////////////
Function TfrmSelPrintField.IsINIFile(fieldname:string):Boolean;
var
FName:string;
begin
FName:=ExtractFilePath(Application.ExeName)+'FieldPrintSet\'+trim(fieldname)+'.INI';
if FileExists(FName) then
Result:=True
else
Result:=false;
end;
end.

View File

@ -0,0 +1,163 @@
object frmSelPrintFieldNew: TfrmSelPrintFieldNew
Left = 272
Top = 178
BorderStyle = bsDialog
Caption = #23383#27573#25171#21360#36873#25321
ClientHeight = 493
ClientWidth = 430
Color = clBtnFace
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
OnClose = FormClose
OnDestroy = FormDestroy
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 12
object Button1: TButton
Left = 94
Top = 456
Width = 75
Height = 25
Caption = #30830#23450
TabOrder = 0
OnClick = Button1Click
end
object Button2: TButton
Left = 243
Top = 456
Width = 75
Height = 25
Caption = #20851#38381
TabOrder = 1
OnClick = Button2Click
end
object PrnGrid: TDBGrid
Left = 17
Top = 165
Width = 320
Height = 120
DataSource = PrintDataSource
Font.Charset = GB2312_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
ParentFont = False
TabOrder = 2
TitleFont.Charset = GB2312_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -12
TitleFont.Name = #23435#20307
TitleFont.Style = []
Visible = False
end
object Panel2: TScrollBox
Left = 2
Top = 0
Width = 423
Height = 438
HorzScrollBar.Visible = False
BevelInner = bvSpace
BevelKind = bkTile
BorderStyle = bsNone
Color = clSkyBlue
Font.Charset = GB2312_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
ParentColor = False
ParentFont = False
TabOrder = 3
object Label4: TLabel
Left = 166
Top = 9
Width = 60
Height = 14
Caption = #23383#27573#36873#25321
Font.Charset = GB2312_CHARSET
Font.Color = clRed
Font.Height = -14
Font.Name = #23435#20307
Font.Style = [fsBold]
ParentFont = False
end
end
object CheckBox1: TCheckBox
Left = 21
Top = 450
Width = 49
Height = 17
Caption = #20840#36873
TabOrder = 4
OnClick = CheckBox1Click
end
object CheckBox2: TCheckBox
Left = 21
Top = 466
Width = 49
Height = 17
Caption = #20840#24323
TabOrder = 5
OnClick = CheckBox2Click
end
object PrintDataSource: TDataSource
DataSet = ClientDataSet1
Left = 536
Top = 246
end
object ClientDataSet1: TClientDataSet
Aggregates = <>
Params = <>
Left = 378
Top = 340
end
object RMPrintDBGrid1: TRMPrintDBGrid
ReportOptions = [rmgoStretch, rmgoWordWrap, rmgoGridLines]
PageLayout.LeftMargin = 38
PageLayout.TopMargin = 38
PageLayout.RightMargin = 38
PageLayout.BottomMargin = 38
PageLayout.Height = 2970
PageLayout.Width = 2100
PageLayout.PageBin = 0
PageLayout.PrinterName = #40664#35748#25171#21360#26426
PageLayout.ColorPrint = False
PageHeaderMsg.Font.Charset = GB2312_CHARSET
PageHeaderMsg.Font.Color = clWindowText
PageHeaderMsg.Font.Height = -13
PageHeaderMsg.Font.Name = #23435#20307
PageHeaderMsg.Font.Style = []
PageFooterMsg.Font.Charset = GB2312_CHARSET
PageFooterMsg.Font.Color = clWindowText
PageFooterMsg.Font.Height = -13
PageFooterMsg.Font.Name = #23435#20307
PageFooterMsg.Font.Style = []
PageCaptionMsg.CaptionMsg.Font.Charset = GB2312_CHARSET
PageCaptionMsg.CaptionMsg.Font.Color = clWindowText
PageCaptionMsg.CaptionMsg.Font.Height = -13
PageCaptionMsg.CaptionMsg.Font.Name = #23435#20307
PageCaptionMsg.CaptionMsg.Font.Style = []
PageCaptionMsg.TitleFont.Charset = GB2312_CHARSET
PageCaptionMsg.TitleFont.Color = clWindowText
PageCaptionMsg.TitleFont.Height = -13
PageCaptionMsg.TitleFont.Name = #23435#20307
PageCaptionMsg.TitleFont.Style = []
GridNumOptions.Text = 'No'
GridFontOptions.Font.Charset = DEFAULT_CHARSET
GridFontOptions.Font.Color = clWindowText
GridFontOptions.Font.Height = -11
GridFontOptions.Font.Name = 'MS Sans Serif'
GridFontOptions.Font.Style = []
ReportSettings.InitialZoom = pzDefault
ReportSettings.PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit]
DBGrid = PrnGrid
Left = 328
Top = 424
end
end

View File

@ -0,0 +1,291 @@
unit U_SelPrintFieldNew;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, RM_FormReport, RM_PDBGrid,
DB,IniFiles, RM_Common, RM_Class, RM_e_Xls, DBClient;
type
TfrmSelPrintFieldNew = class(TForm)
Button1: TButton;
Button2: TButton;
PrintDataSource: TDataSource;
PrnGrid: TDBGrid;
ClientDataSet1: TClientDataSet;
Panel2: TScrollBox;
Label4: TLabel;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
RMPrintDBGrid1: TRMPrintDBGrid;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
private
procedure CreateCheckBox();
procedure PrintData();
procedure ReadINIFile(fieldname:string);
procedure WriteINIFile(fieldname:string);
Function IsINIFile(fieldname:string):Boolean;
procedure GetPrintFields();
procedure IsCheck();
{ Private declarations }
public
PrintFields,IniName:string;
{ Public declarations }
end;
var
frmSelPrintFieldNew: TfrmSelPrintFieldNew;
implementation
{$R *.dfm}
procedure TfrmSelPrintFieldNew.CreateCheckBox();
var
i,j,FTop,FLeft,Fdiv,FMod:Integer;// mod 余数div商
FCheckBox:TCheckBox;
begin
for i:=0 to PrnGrid.Columns.Count-1 do
begin
Fdiv:=(i+1) div 3;
FMod:=(i+1) mod 3;
FCheckBox:=TCheckBox.Create(Self);
FCheckBox.Caption:=Trim(PrnGrid.Columns[i].Title.Caption);
FCheckBox.TabOrder:=i;
FCheckBox.Parent:=Panel2;
FCheckBox.Checked:=True;
if FMod>0 then
FCheckBox.Top:=36*(Fdiv+1)
else
FCheckBox.Top:=36*Fdiv;
if FMod=1 then
FCheckBox.Left:=29
else if FMod=2 then
FCheckBox.Left:=163
else if FMod=0 then
FCheckBox.Left:=305;
end;
end;
procedure TfrmSelPrintFieldNew.Button1Click(Sender: TObject);
begin
//ShowMessage('10除以3取余'+inttostr(10 mod 3)+',取整'+inttostr(10 div 3));
PrintData();
GetPrintFields();
if IsINIFile(IniName)=True then
begin
DeleteFile(IniName);
end;
WriteINIFile(IniName);
end;
procedure TfrmSelPrintFieldNew.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmSelPrintFieldNew.FormDestroy(Sender: TObject);
begin
frmSelPrintFieldNew:=nil;
end;
procedure TfrmSelPrintFieldNew.FormShow(Sender: TObject);
begin
CreateCheckBox();
ReadINIFile(IniName);
IsCheck();
end;
procedure TfrmSelPrintFieldNew.IsCheck();
var
i:Integer;
fsj:string;
begin
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
fsj:=Trim(TCheckBox(Controls[i]).Caption);
if Pos(fsj,PrintFields)>0 then
TCheckBox(Controls[i]).Checked:=True
else
TCheckBox(Controls[i]).Checked:=False;
end;
end;
end;
end;
procedure TfrmSelPrintFieldNew.PrintData();
var
i,j,k:Integer;
FFieldName:string;
begin
j:=0;
k:=0;
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if TCheckBox(Controls[i]).Checked=True then
begin
j:=1;
PrnGrid.Columns[TCheckBox(Controls[i]).TabOrder].Visible:=True;
k:=k+1;
if k=1 then
begin
FFieldName:=PrnGrid.Columns[TCheckBox(Controls[i]).TabOrder].FieldName;
end;
end else
begin
PrnGrid.Columns[TCheckBox(Controls[i]).TabOrder].Visible:=False;
end;
end;
end;
end;
{ ClientDataSet1.Last;
if Trim(ClientDataSet1.FieldByName('flag').AsString)='Y' then
begin
ClientDataSet1.Edit;
ClientDataSet1.FieldByName(FFieldName).Value:='合计';
ClientDataSet1.Post;
end;}
if j=1 then
begin
RMPrintDBGrid1.ShowReport ;
end
else
begin
Application.MessageBox('没有可打印的信息!','提示',0);
Exit;
end;
//Panel2.Visible:=False;
//RMPrintDBGrid1.ShowReport;
end;
procedure TfrmSelPrintFieldNew.Button2Click(Sender: TObject);
begin
Close;
end;
procedure TfrmSelPrintFieldNew.ReadINIFile(fieldname:string);
var
programIni:Tinifile; //配置文件名
FName:string;
begin
FName:=ExtractFilePath(Application.ExeName)+'FieldPrintSet\' +trim(fieldname)+'.INI';
programIni:=Tinifile.create(FName);
PrintFields:=programIni.ReadString('打印设置','打印字段','');
programIni.Free;
end;
procedure TfrmSelPrintFieldNew.GetPrintFields();
var
i:Integer;
begin
PrintFields:='Begin';
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if TCheckBox(Controls[i]).Checked then
begin
PrintFields:=PrintFields+'/'+TCheckBox(Controls[i]).Caption;
end;
end;
end;
end;
end;
//////////////////////////////////////////////////////////////////
//写设置信息到INI文件
//参数
//////////////////////////////////////////////////////////////////
procedure TfrmSelPrintFieldNew.WriteINIFile(fieldname:string);
var
programIni:Tinifile; //配置文件名
FName:string;
begin
FName:=ExtractFilePath(Application.ExeName)+'FieldPrintSet\'+trim(fieldname)+'.INI';
if not DirectoryExists(ExtractFileDir(FName)) then
CreateDir(ExtractFileDir(FName));
programIni:=Tinifile.create(FName);
programIni.WriteString('打印设置','打印字段',PrintFields);
programIni.Free;
end;
//////////////////////////////////////////////////////////////////
//判断InI文件是否存在
//////////////////////////////////////////////////////////////////
Function TfrmSelPrintFieldNew.IsINIFile(fieldname:string):Boolean;
var
FName:string;
begin
FName:=ExtractFilePath(Application.ExeName)+'FieldPrintSet\'+trim(fieldname)+'.INI';
if FileExists(FName) then
Result:=True
else
Result:=false;
end;
procedure TfrmSelPrintFieldNew.CheckBox1Click(Sender: TObject);
var
i:Integer;
begin
if CheckBox1.Checked then
begin
CheckBox2.Checked:=False;
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if (TCheckBox(Controls[i]).Name<>'CheckBox1') and (TCheckBox(Controls[i]).Name<>'CheckBox2') then
begin
TCheckBox(Controls[i]).Checked:=True;
end;
end;
end;
end;
end;
end;
procedure TfrmSelPrintFieldNew.CheckBox2Click(Sender: TObject);
var
i:Integer;
begin
if CheckBox2.Checked then
begin
CheckBox1.Checked:=False;
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if (TCheckBox(Controls[i]).Name<>'CheckBox1') and (TCheckBox(Controls[i]).Name<>'CheckBox2') then
begin
TCheckBox(Controls[i]).Checked:=False;
end;
end;
end;
end;
end;
end;
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,180 @@
unit U_SysLogHelp;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics, cxFilter,
cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel,strUtils,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, ADODB, StdCtrls, ExtCtrls, ImgList;
type
TfrmSysLogHelp = class(TForm)
ToolBar1: TToolBar;
TQry: TToolButton;
Tclose: TToolButton;
ADOQueryLog: TADOQuery;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
cxGrid1: TcxGrid;
tv1: TcxGridDBTableView;
tv1OperMan: TcxGridDBColumn;
tv1jopertime: TcxGridDBColumn;
tv1Model: TcxGridDBColumn;
tv1acction: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
tv1Opevent: TcxGridDBColumn;
tv1Result: TcxGridDBColumn;
Panel1: TPanel;
Label2: TLabel;
Label1: TLabel;
begDate: TDateTimePicker;
endDate: TDateTimePicker;
Label3: TLabel;
edt_model: TEdit;
CheckBox1: TCheckBox;
Label4: TLabel;
edt_nr: TEdit;
ThreeImgList: TImageList;
procedure TcloseClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TQryClick(Sender: TObject);
procedure edt_modelChange(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
procedure DoQuery();
procedure DoFilter();
public
fModel,facction:string;
fOtherWhere:string;
end;
var
frmSysLogHelp: TfrmSysLogHelp;
implementation
uses
U_DataLink;
{$R *.dfm}
procedure TfrmSysLogHelp.TcloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmSysLogHelp.FormCreate(Sender: TObject);
begin
cxGrid1.Align :=alClient;
begDate.DateTime :=date-31;
endDate.DateTime :=date;
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=DConString;
Connected:=true;
end;
end;
/////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
procedure TfrmSysLogHelp.DoQuery();
var
mbegdate,menddate:string;
begin
mbegdate:=formatDatetime('yyyy-MM-dd',begDate.Date); //
menddate:=formatDatetime('yyyy-MM-dd',endDate.Date+1);
try
with ADOQueryLog do
begin
close;
sql.clear;
filtered:=false;
sql.add('select A.* ');
sql.add('from SY_sysLog A');
if CheckBox1.Checked then
begin
sql.Add('where OperTime>='+quotedStr(mbegdate));
sql.Add('and OperTime<'+quotedStr(menddate));
end
else
begin
sql.Add('where 1=1');
end;
if trim(fModel)<>'' then
sql.add('and Model='+quotedStr(fModel));
if trim(facction)<>'' then
sql.add('and acction='+quotedStr(facction));
if trim(fOtherWhere)<>'' then
begin
sql.add(fOtherWhere);
end;
sql.Add('order by operOr,Opertime');
Open;
end;
finally
end;
end;
///////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////
procedure TfrmSysLogHelp.DoFilter();
var
filterStr:string;
begin
filterStr:='';
//
if trim(edt_model.text)<>'' then
begin
filterStr:=' and model ='+quotedStr(trim(edt_model.text));
end;
if trim(edt_nr.text)<>'' then
begin
filterStr:=' and OpEvent like '+quotedStr('%'+trim(edt_nr.text)+'%');
end;
try
ADOQueryLog.DisableControls ;
if trim(filterStr)='' then
begin
ADOQueryLog.Filtered:=false;
exit;
end;
filterStr:=trim(RightBStr(filterStr,length(filterStr)-4));
with ADOQueryLog do
begin
filtered:=false;
filter:=filterStr;
filtered:=true;
end;
finally
ADOQueryLog.EnableControls;
end;
end;
procedure TfrmSysLogHelp.FormShow(Sender: TObject);
begin
DoQuery();
end;
procedure TfrmSysLogHelp.TQryClick(Sender: TObject);
begin
DoQuery();
end;
procedure TfrmSysLogHelp.edt_modelChange(Sender: TObject);
begin
DoFilter();
end;
procedure TfrmSysLogHelp.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
action:=cafree;
end;
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,214 @@
unit U_UserHelp;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, cxFilter,
cxData, cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, cxInplaceContainer, cxDBTL,
cxTLData, ComCtrls, ToolWin, ADODB, ImgList,StrUtils, ExtCtrls;
type
TfrmUserHelp = class(TForm)
ToolBar2: TToolBar;
TOk: TToolButton;
TBClose: TToolButton;
cxDBTreeList1: TcxDBTreeList;
cxDBTreeList1cxDBTreeListColumn2: TcxDBTreeListColumn;
cxGrid1: TcxGrid;
tv1: TcxGridDBTableView;
tv1Code: TcxGridDBColumn;
tv1Name: TcxGridDBColumn;
DBGrid1Level1: TcxGridLevel;
GroupBox1: TGroupBox;
ADOQueryDept: TADOQuery;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
tv1Column1: TcxGridDBColumn;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
cxStyle2: TcxStyle;
cxStyle_gridRow: TcxStyle;
cxStyle_gridFoot: TcxStyle;
cxStyle_gridHead: TcxStyle;
cxStyle_gridGroupBox: TcxStyle;
cxStyle_yellow: TcxStyle;
cxStyle_Red: TcxStyle;
ADOQueryHelp: TADOQuery;
DataSource2: TDataSource;
Label1: TLabel;
Edt_name: TEdit;
ImageList1: TImageList;
cxStyleTree: TcxStyle;
Label2: TLabel;
Edt_Code: TEdit;
Splitter1: TSplitter;
ThreeImgList: TImageList;
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure TOkClick(Sender: TObject);
procedure tv1DblClick(Sender: TObject);
procedure Edt_nameChange(Sender: TObject);
procedure cxDBTreeList1Click(Sender: TObject);
private
procedure InitTree();
procedure DoQuery();
procedure FilterData(strdepotno,strcode,strname:string);
public
fFrameNo:string;
fFrameName:string;
fIsYwy:boolean;
end;
var
frmUserHelp: TfrmUserHelp;
implementation
uses
U_DataLink;
{$R *.dfm}
///////////////////////////////////////////////////////////
//////功能:过滤数据
///////////////////////////////////////////////////////////
procedure TfrmUserHelp.FilterData(strdepotno,strcode,strname:string);
var
filterStr:string;
begin
filterStr:='';
if trim(strdepotno)<>'' then
filterStr:=filterStr+' and dept like '+quotedstr('%'+trim(strdepotno)+'%');
if trim(strcode)<>'' then
filterStr:=filterStr+' and userID like '+quotedstr('%'+trim(strcode)+'%');
if trim(strname)<>'' then
filterStr:=filterStr+' and userName like '+quotedstr('%'+trim(strname)+'%');
try
ADOQueryHelp.DisableControls ;
if trim(filterStr)='' then
begin
ADOQueryHelp.Filtered:=false;
ADOQueryHelp.EnableControls;
exit;
end;
filterStr:=trim(RightBStr(filterStr,length(filterStr)-5));
// showmessage(filterStr);
with ADOQueryHelp do
begin
filtered:=false;
filter:=filterStr;
filtered:=true;
end;
finally
ADOQueryHelp.EnableControls;
end;
end;
//////////////////////////////////////////////////////
procedure TfrmUserHelp.InitTree();
var
strsql,strwhere:string;
begin
strsql:=' SELECT distinct UDept=''ALL'',UDeptTop='''',UDeptName=''所有部门'',Framelevel=0 '+
' union '+
' SELECT distinct UDept,UDeptTop=''ALL'',UDept,Framelevel=1 '+
' FROM BD_staff A '+
' WHERE USERID<>''ADMIN'' and ISNULL(UDept,'''')<>'''' ';
strwhere:=' where A.Valid=''Y'' ';
{ if fIsYwy then
strwhere:=strwhere+' and A.YWYFlag=''Y'' ';
if trim(fFrameNo)<>'' then
strwhere:=strwhere+' and A.dept='+quotedstr(trim(fFrameNo));
if trim(fFrameName)<>'' then
strwhere:=strwhere+' and B.frameName like '+quotedstr('%'+trim(fFrameName)+'%');
strsql:=strsql+ strwhere; }
with ADOQueryDept do
begin
close;
sql.Clear ;
sql.Add( strsql);
Open;
end;
cxDBTreeList1.FullExpand;
DoQuery();
end;
procedure TfrmUserHelp.FormShow(Sender: TObject);
begin
InitTree();
end;
procedure TfrmUserHelp.FormCreate(Sender: TObject);
begin
cxGrid1.Align :=alclient;
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=DConString;
Connected:=true;
end;
end;
//////////////////////////////////////////////////
//
//////////////////////////////////////////////////
procedure TfrmUserHelp.DoQuery();
var
strsql,strwhere:string;
begin
strsql:=' select * '+
' from BD_staff A '+
' where isnull(UserID,'''')<>''ADMIN'' ';
strwhere:=' and A.Valid=''Y'' ';
if fIsYwy then
strwhere:=strwhere+' and A.Isywy=1 ';
strsql:=strsql+ strwhere +' order by A.userID ';
with ADOQueryHelp do
begin
close;
sql.Clear ;
sql.Add( strsql);
Open;
end;
end;
procedure TfrmUserHelp.TBCloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmUserHelp.TOkClick(Sender: TObject);
begin
if ADOQueryHelp.IsEmpty then
begin
ModalResult:=-1
end
else
ModalResult:=1;
end;
procedure TfrmUserHelp.tv1DblClick(Sender: TObject);
begin
Tok.Click ;
end;
procedure TfrmUserHelp.Edt_nameChange(Sender: TObject);
begin
FilterData('',edt_code.Text,Edt_name.Text);
end;
procedure TfrmUserHelp.cxDBTreeList1Click(Sender: TObject);
begin
if ADOQueryDept.IsEmpty then exit;
if trim(ADOQueryDept.FieldByName('Framelevel').AsString)='0' then
FilterData('','','')
else
FilterData(ADOQueryDept.FieldByName('UDept').AsString,'','');
end;
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,245 @@
unit U_UserHelp_Dx;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, cxFilter,
cxData, cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, cxInplaceContainer, cxDBTL,
cxTLData, ComCtrls, ToolWin, ADODB, ImgList,StrUtils, ExtCtrls, DBClient;
type
TfrmUserHelp_Dx = class(TForm)
ToolBar2: TToolBar;
TOk: TToolButton;
TBClose: TToolButton;
cxGrid1: TcxGrid;
tv1: TcxGridDBTableView;
tv1Code: TcxGridDBColumn;
tv1Name: TcxGridDBColumn;
DBGrid1Level1: TcxGridLevel;
GroupBox1: TGroupBox;
ADOQueryDept: TADOQuery;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
tv1Column1: TcxGridDBColumn;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
cxStyle2: TcxStyle;
cxStyle_gridRow: TcxStyle;
cxStyle_gridFoot: TcxStyle;
cxStyle_gridHead: TcxStyle;
cxStyle_gridGroupBox: TcxStyle;
cxStyle_yellow: TcxStyle;
cxStyle_Red: TcxStyle;
ADOQueryHelp: TADOQuery;
DataSource2: TDataSource;
Label1: TLabel;
Edt_name: TEdit;
ImageList1: TImageList;
cxStyleTree: TcxStyle;
Label2: TLabel;
Edt_Code: TEdit;
ThreeImgList: TImageList;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
cxGridDBColumn1: TcxGridDBColumn;
cxGridDBColumn2: TcxGridDBColumn;
cxGridDBColumn3: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
GroupBox2: TGroupBox;
CDS_sel: TClientDataSet;
DataSourceSel: TDataSource;
cxDBTreeList1: TcxDBTreeList;
cxDBTreeList1cxDBTreeListColumn2: TcxDBTreeListColumn;
Splitter1: TSplitter;
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure TOkClick(Sender: TObject);
procedure tv1DblClick(Sender: TObject);
procedure Edt_nameChange(Sender: TObject);
procedure cxDBTreeList1Click(Sender: TObject);
procedure Tv2DblClick(Sender: TObject);
private
procedure InitTree();
procedure DoQuery();
procedure FilterData(strdepotno,strcode,strname:string);
public
fFrameNo:string;
fFrameName:string;
fIsYwy:boolean;
end;
var
frmUserHelp_Dx: TfrmUserHelp_Dx;
implementation
uses
U_DataLink,U_Fun10;
{$R *.dfm}
///////////////////////////////////////////////////////////
//////功能:过滤数据
///////////////////////////////////////////////////////////
procedure TfrmUserHelp_Dx.FilterData(strdepotno,strcode,strname:string);
var
filterStr:string;
begin
filterStr:='';
if trim(strdepotno)<>'' then
filterStr:=filterStr+' and dept like '+quotedstr('%'+trim(strdepotno)+'%');
if trim(strcode)<>'' then
filterStr:=filterStr+' and userID like '+quotedstr('%'+trim(strcode)+'%');
if trim(strname)<>'' then
filterStr:=filterStr+' and userName like '+quotedstr('%'+trim(strname)+'%');
try
ADOQueryHelp.DisableControls ;
if trim(filterStr)='' then
begin
ADOQueryHelp.Filtered:=false;
ADOQueryHelp.EnableControls;
exit;
end;
filterStr:=trim(RightBStr(filterStr,length(filterStr)-5));
// showmessage(filterStr);
with ADOQueryHelp do
begin
filtered:=false;
filter:=filterStr;
filtered:=true;
end;
finally
ADOQueryHelp.EnableControls;
end;
end;
//////////////////////////////////////////////////////
procedure TfrmUserHelp_Dx.InitTree();
var
strsql,strwhere:string;
begin
strsql:=' SELECT distinct UDept=''ALL'',UDeptTop='''',UDeptName=''所有部门'',Framelevel=0 '+
' union '+
' SELECT distinct UDept,UDeptTop=''ALL'',UDept,Framelevel=1 '+
' FROM BD_staff A '+
' WHERE USERID<>''ADMIN'' and ISNULL(UDept,'''')<>'''' ';
strwhere:=' where A.Valid=''Y'' ';
{ if fIsYwy then
strwhere:=strwhere+' and A.YWYFlag=''Y'' ';
if trim(fFrameNo)<>'' then
strwhere:=strwhere+' and A.dept='+quotedstr(trim(fFrameNo));
if trim(fFrameName)<>'' then
strwhere:=strwhere+' and B.frameName like '+quotedstr('%'+trim(fFrameName)+'%');
strsql:=strsql+ strwhere; }
with ADOQueryDept do
begin
close;
sql.Clear ;
sql.Add( strsql);
Open;
end;
cxDBTreeList1.FullExpand;
DoQuery();
end;
procedure TfrmUserHelp_Dx.FormShow(Sender: TObject);
begin
InitTree();
end;
procedure TfrmUserHelp_Dx.FormCreate(Sender: TObject);
begin
GroupBox2.Align :=alclient;
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=DConString;
Connected:=true;
end;
end;
//////////////////////////////////////////////////
//
//////////////////////////////////////////////////
procedure TfrmUserHelp_Dx.DoQuery();
var
strsql,strwhere:string;
begin
strsql:=' select * '+
' from BD_staff A '+
' where isnull(UserID,'''')<>''ADMIN'' ';
strwhere:=' and A.Valid=''Y'' ';
if fIsYwy then
strwhere:=strwhere+' and A.Isywy=1 ';
strsql:=strsql+ strwhere +' order by A.userID ';
with ADOQueryHelp do
begin
close;
sql.Clear ;
sql.Add( strsql);
Open;
end;
sCreateCDS20(ADOQueryHelp,cds_sel);
end;
procedure TfrmUserHelp_Dx.TBCloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmUserHelp_Dx.TOkClick(Sender: TObject);
begin
if ADOQueryHelp.IsEmpty then
begin
ModalResult:=-1
end
else
ModalResult:=1;
end;
procedure TfrmUserHelp_Dx.tv1DblClick(Sender: TObject);
var
i:integer;
begin
if ADOQueryHelp.IsEmpty then exit;
if CDS_Sel.Locate('userID',trim(adoqueryHelp.fieldbyname('userID').AsString),[]) then exit;
with CDS_Sel do
begin
CDS_Sel.append;
for i:=0 to ADOQueryHelp.FieldCount-1 do
begin
fields[i].Value:=ADOQueryHelp.Fields[i].Value;
end;
CDS_Sel.Post;
end;
end;
procedure TfrmUserHelp_Dx.Edt_nameChange(Sender: TObject);
begin
FilterData('',edt_code.Text,Edt_name.Text);
end;
procedure TfrmUserHelp_Dx.cxDBTreeList1Click(Sender: TObject);
begin
if ADOQueryDept.IsEmpty then exit;
if trim(ADOQueryDept.FieldByName('Framelevel').AsString)='0' then
FilterData('','','')
else
FilterData(ADOQueryDept.FieldByName('UDept').AsString,'','');
end;
procedure TfrmUserHelp_Dx.Tv2DblClick(Sender: TObject);
begin
IF cds_sel.IsEmpty then exit;
cds_sel.Delete;
end;
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,748 @@
unit U_ZDYHelp;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, ToolWin, ComCtrls,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel,
cxClasses, cxControls, cxGridCustomView, cxGrid, DBClient, ADODB, ImgList,
StdCtrls, ExtCtrls, cxTextEdit, cxGridCustomPopupMenu, cxGridPopupMenu,
cxLookAndFeels, cxLookAndFeelPainters, cxNavigator;
type
TfrmZDYHelp = class(TForm)
TV1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
V1Code: TcxGridDBColumn;
V1Name: TcxGridDBColumn;
ToolBar1: TToolBar;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
DataSource1: TDataSource;
ClientDataSet1: TClientDataSet;
TBAdd: TToolButton;
TBSave: TToolButton;
TBDel: TToolButton;
TBClose: TToolButton;
ToolButton1: TToolButton;
TBEdit: TToolButton;
V1Note: TcxGridDBColumn;
V1OrderNo: TcxGridDBColumn;
ADOConnection1: TADOConnection;
Panel1: TPanel;
Label1: TLabel;
ZDYName: TEdit;
ThreeImgList: TImageList;
Label2: TLabel;
cxGridPopupMenu1: TcxGridPopupMenu;
V1ZdyFlag: TcxGridDBColumn;
V1HelpType: TcxGridDBColumn;
V1Note1: TcxGridDBColumn;
ToolButton2: TToolButton;
V1ZdyStr1: TcxGridDBColumn;
V1ZdyStr2: TcxGridDBColumn;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBAddClick(Sender: TObject);
procedure TBSaveClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure TBEditClick(Sender: TObject);
procedure TV1CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure ZDYNameChange(Sender: TObject);
procedure V1NamePropertiesEditValueChanged(Sender: TObject);
procedure V1OrderNoPropertiesEditValueChanged(Sender: TObject);
procedure V1NotePropertiesEditValueChanged(Sender: TObject);
procedure V1Column1PropertiesEditValueChanged(Sender: TObject);
procedure V1HelpTypePropertiesEditValueChanged(Sender: TObject);
procedure V1Note1PropertiesEditValueChanged(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure V1ZdyStr1PropertiesEditValueChanged(Sender: TObject);
private
procedure InitGrid();
{ Private declarations }
public
flag,flagname,snote,MainType:string;
fnote,forderno,fZdyFlag,ViewFlag,fnote1:Boolean;
PPSTE:integer;
{ Public declarations }
end;
var
frmZDYHelp: TfrmZDYHelp;
implementation
uses
U_DataLink,U_RTFun;
{$R *.dfm}
procedure TfrmZDYHelp.FormCreate(Sender: TObject);
begin
try
cxGrid1.Align:=alClient;
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=DConString;
//ConnectionString:='';
Connected:=true;
end;
except
{if Application.MessageBox('网络连接失败,是否要再次连接?','提示',32+4)=IDYES then
begin
try
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=DConString;
//ConnectionString:='23242';
Connected:=true;
end;
except
end;
end; }
frmZDYHelp.Free;
end;
end;
procedure TfrmZDYHelp.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
WriteCxGrid('自定义'+Trim(flag),TV1,'自定义数据');
ZDYName.SetFocus;
Action:=caFree;
end;
procedure TfrmZDYHelp.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
sql.Clear;
sql.Add('select A.*,ZJM=dbo.getPinYin(A.ZdyName) from KH_ZDY A where A.Type='''+flag+'''');
if Trim(MainType)<>'' then
begin
sql.Add(' and A.MainType='''+Trim(MainType)+'''');
end;
Open;
end;
SCreateCDS20(ADOQueryMain,ClientDataSet1);
SInitCDSData20(ADOQueryMain,ClientDataSet1);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmZDYHelp.TBAddClick(Sender: TObject);
var
i:Integer;
begin
ZDYName.SetFocus;
TV1.OptionsData.Editing:=True;
TV1.OptionsSelection.CellSelect:=True;
for i:=0 to 5 do
begin
with ClientDataSet1 do
begin
Append;
Post;
end;
end;
end;
procedure TfrmZDYHelp.TBSaveClick(Sender: TObject);
var
maxno:string;
begin
if ClientDataSet1.IsEmpty then Exit;
ZDYName.SetFocus;
if ClientDataSet1.Locate('ZDYName',null,[]) then
begin
Application.MessageBox('名称不能为空!','提示',0);
Exit;
end;
if ClientDataSet1.Locate('ZDYName','',[]) then
begin
Application.MessageBox('名称不能为空!','提示',0);
Exit;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add('select * from KH_ZDY where ZdyNo='''+Trim(flag)+'''');
open;
end;
if ADOQueryTemp.IsEmpty then
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('insert into KH_ZDY(ZDYNo,ZDYName,Type,MainType) select :ZDYNo,:ZDYName,:Type,:MainType ');
Parameters.ParamByName('ZDYNo').Value:=Trim(flag);
Parameters.ParamByName('ZDYName').Value:=Trim(flagname);
Parameters.ParamByName('Type').Value:='Main';
Parameters.ParamByName('MainType').Value:=Trim(MainType);
ExecSQL;
end;
end;
with ADOQueryCmd do
begin
ClientDataSet1.DisableControls;
with ClientDataSet1 do
begin
First;
while not eof do
begin
if Trim(ClientDataSet1.FieldByName('ZDYNO').AsString)='' then
begin
if GetLSNo(ADOQueryTemp,maxno,'SY','KH_ZDY',3,1)=False then
begin
ADOQueryCmd.Connection.RollbackTrans;
ClientDataSet1.EnableControls;
Application.MessageBox('取最大编号失败!','提示',0);
Exit;
end;
end else
begin
maxno:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString);
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.add('select * from KH_Zdy where Type='''+Trim(flag)+'''');
if Trim(MainType)<>'' then
SQL.Add(' and MainType='''+Trim(MainType)+'''');
sql.Add(' and ZdyName='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+'''');
Open;
end;
if ADOQueryTemp.IsEmpty=False then
begin
if ADOQueryTemp.RecordCount>1 then
begin
ADOQueryCmd.Connection.RollbackTrans;
ClientDataSet1.EnableControls;
Application.MessageBox('名称重复!','提示',0);
Exit;
end;
if Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)='' then
begin
ADOQueryCmd.Connection.RollbackTrans;
ClientDataSet1.EnableControls;
Application.MessageBox('名称重复!','提示',0);
Exit;
end else
begin
if Trim(ADOQueryTemp.fieldbyname('ZdyNo').AsString)<>Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString) then
begin
ADOQueryCmd.Connection.RollbackTrans;
ClientDataSet1.EnableControls;
Application.MessageBox('名称重复!','提示',0);
Exit;
end;
end;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add('delete KH_ZDY where ZDYNO='''+Trim(ClientDataSet1.fieldbyname('ZDYNO').AsString)+'''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from KH_ZDY where 1<>1');
Open;
end;
ADOQueryCmd.Append;
ADOQueryCmd.FieldByName('ZDYNo').Value:=Trim(maxno);
ADOQueryCmd.FieldByName('ZDYName').Value:=ClientDataSet1.fieldbyname('ZDYName').Value;
ADOQueryCmd.FieldByName('note').Value:=Trim(snote);
//ADOQueryCmd.FieldByName('orderno').Value:=ClientDataSet1.fieldbyname('Name').AsString;
ADOQueryCmd.FieldByName('Type').Value:=flag;
ADOQueryCmd.FieldByName('valid').Value:='Y';
if Trim(MainType)<>'' then
ADOQueryCmd.FieldByName('MainType').Value:=Trim(MainType);
//ADOQueryCmd.FieldByName('sel').Value:=0;
ADOQueryCmd.Post;
ClientDataSet1.Edit;
ClientDataSet1.FieldByName('ZDYNo').Value:=Trim(maxno);
ClientDataSet1.Post;
Next;
end;
end;
ClientDataSet1.EnableControls;
end;
ADOQueryCmd.Connection.CommitTrans;
Application.MessageBox('保存成功!','提示',0);
TV1.OptionsData.Editing:=False;
TV1.OptionsSelection.CellSelect:=False;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('保存失败!','提示',0);
end;
end;
procedure TfrmZDYHelp.TBDelClick(Sender: TObject);
begin
if ClientDataSet1.IsEmpty then Exit;
if (Trim(ClientDataSet1.FieldByName('ZDYNo').AsString)<>'') or
(Trim(ClientDataSet1.FieldByName('ZDYname').AsString)<>'') then
begin
if application.MessageBox('确定要删除吗?','提示信息',1)=2 then exit;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete KH_ZDY where ZDYNo='''+Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString)+'''');
SQL.Add(' and Type='''+Trim(flag)+'''');
ExecSQL;
end;
end;
ClientDataSet1.Delete;
end;
procedure TfrmZDYHelp.TBCloseClick(Sender: TObject);
begin
ModalResult:=2;
ZDYName.SetFocus;
WriteCxGrid('自定义'+Trim(flag),TV1,'自定义数据');
Close;
end;
procedure TfrmZDYHelp.FormShow(Sender: TObject);
var
fsj,fsj1:string;
begin
{if PPSTE=1 then
begin
Application.Terminate;
Exit;
end; }
InitGrid();
fsj:=Trim(flag)+'01';
fsj1:=Trim(flagname)+'01';
{if ClientDataSet1.IsEmpty then
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('insert into KH_ZDY(ZDYNo,ZDYname,Type,note)');
sql.Add('select '''+Trim(fsj)+'''');
sql.Add(','''+Trim(fsj1)+'''');
SQL.Add(','''+Trim(flag)+'''');
sql.Add(','''+Trim(snote)+'''');
ExecSQL;
end;
InitGrid();
end;}
//frmZDYHelp.Caption:=Trim(flagname)+'<'+Trim(flag)+'>';
//ReadCxGrid('自定义',TV1,'自定义数据');
ReadCxGrid('自定义'+Trim(flag),TV1,'自定义数据');
frmZDYHelp.Caption:=Trim(flagname);
V1Note.Visible:=fnote;
V1Note1.Visible:=fnote1;
V1ZdyFlag.Visible:=fZdyFlag;
V1OrderNo.Visible:=forderno;
if ViewFlag=True then
begin
TBAdd.Visible:=False;
TBSave.Visible:=False;
TBDel.Visible:=False;
TBEdit.Visible:=False;
Label2.Visible:=False;
end;
end;
procedure TfrmZDYHelp.ToolButton1Click(Sender: TObject);
begin
ZDYName.SetFocus;
WriteCxGrid('自定义'+Trim(flag),TV1,'自定义数据');
ModalResult:=1;
end;
procedure TfrmZDYHelp.TBEditClick(Sender: TObject);
begin
TV1.OptionsData.Editing:=True;
TV1.OptionsSelection.CellSelect:=True;
end;
procedure TfrmZDYHelp.TV1CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
if TV1.OptionsData.Editing=False then
begin
ModalResult:=1;
end;
end;
procedure TfrmZDYHelp.ZDYNameChange(Sender: TObject);
var
fsj:String;
begin
if Trim(ZDYName.Text)<>'' then
begin
fsj:=' zdyname like '''+'%'+Trim(ZDYName.Text)+'%'+''''
+' or Note like '''+'%'+Trim(ZDYName.Text)+'%'+''''
+' or ZJM like '''+'%'+Trim(ZDYName.Text)+'%'+'''';
end;
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain,fsj);
SCreateCDS20(ADOQueryMain,ClientDataSet1);
SInitCDSData20(ADOQueryMain,ClientDataSet1);
end;
end;
procedure TfrmZDYHelp.V1NamePropertiesEditValueChanged(Sender: TObject);
var
maxno,mvalue:string;
begin
mvalue:=TcxTextEdit(Sender).EditingText;
if Trim(mvalue)='' then
begin
//Application.MessageBox('名称不能为空!','提示',0);
Exit;
end;
with ClientDataSet1 do
begin
Edit;
FieldByName('ZdyName').Value:=Trim(mvalue);
//Post;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add('select * from KH_ZDY where ZdyNo='''+Trim(flag)+'''');
open;
end;
if ADOQueryTemp.IsEmpty then
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('insert into KH_ZDY(ZDYNo,ZDYName,Type,MainType) select :ZDYNo,:ZDYName,:Type,:MainType ');
Parameters.ParamByName('ZDYNo').Value:=Trim(flag);
Parameters.ParamByName('ZDYName').Value:=Trim(flagname);
Parameters.ParamByName('Type').Value:='Main';
Parameters.ParamByName('MainType').Value:=Trim(MainType);
ExecSQL;
end;
end;
with ADOQueryCmd do
begin
//ClientDataSet1.DisableControls;
//with ClientDataSet1 do
//begin
//First;
//while not eof do
//begin
if Trim(ClientDataSet1.FieldByName('ZDYNO').AsString)='' then
begin
if GetLSNo(ADOQueryTemp,maxno,'SY','KH_ZDY',3,1)=False then
begin
ADOQueryCmd.Connection.RollbackTrans;
//ClientDataSet1.EnableControls;
Application.MessageBox('取最大编号失败!','提示',0);
Exit;
end;
end else
begin
maxno:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString);
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.add('select * from KH_Zdy where Type='''+Trim(flag)+'''');
if Trim(MainType)<>'' then
SQL.Add(' and MainType='''+Trim(MainType)+'''');
sql.Add(' and ZdyName='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+'''');
Open;
end;
if ADOQueryTemp.IsEmpty=False then
begin
if ADOQueryTemp.RecordCount>1 then
begin
ADOQueryCmd.Connection.RollbackTrans;
//ClientDataSet1.EnableControls;
Application.MessageBox('名称重复!','提示',0);
Exit;
end;
if Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)='' then
begin
ADOQueryCmd.Connection.RollbackTrans;
//ClientDataSet1.EnableControls;
Application.MessageBox('名称重复!','提示',0);
Exit;
end else
begin
if Trim(ADOQueryTemp.fieldbyname('ZdyNo').AsString)<>Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString) then
begin
ADOQueryCmd.Connection.RollbackTrans;
//ClientDataSet1.EnableControls;
Application.MessageBox('名称重复!','提示',0);
Exit;
end;
end;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add('delete KH_ZDY where ZDYNO='''+Trim(ClientDataSet1.fieldbyname('ZDYNO').AsString)+'''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from KH_ZDY where 1<>1');
Open;
end;
ADOQueryCmd.Append;
ADOQueryCmd.FieldByName('ZDYNo').Value:=Trim(maxno);
ADOQueryCmd.FieldByName('ZDYName').Value:=ClientDataSet1.fieldbyname('ZDYName').AsString;
ADOQueryCmd.FieldByName('note').Value:=Trim(snote);
//ADOQueryCmd.FieldByName('orderno').Value:=ClientDataSet1.fieldbyname('Name').AsString;
ADOQueryCmd.FieldByName('Type').Value:=flag;
ADOQueryCmd.FieldByName('valid').Value:='Y';
if Trim(MainType)<>'' then
ADOQueryCmd.FieldByName('MainType').Value:=Trim(MainType);
//ADOQueryCmd.FieldByName('sel').Value:=0;
ADOQueryCmd.Post;
ClientDataSet1.Edit;
ClientDataSet1.FieldByName('ZDYNo').Value:=Trim(maxno);
//ClientDataSet1.Post;
// Next;
//end;
//end;
// ClientDataSet1.EnableControls;
end;
ADOQueryCmd.Connection.CommitTrans;
//Application.MessageBox('保存成功!','提示',0);
//TV1.OptionsData.Editing:=False;
//TV1.OptionsSelection.CellSelect:=False;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('保存失败!','提示',0);
end;
end;
procedure TfrmZDYHelp.V1OrderNoPropertiesEditValueChanged(Sender: TObject);
var
mvalue:string;
begin
if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then
begin
Application.MessageBox('名称不能为空!','提示',0);
Exit;
end;
mvalue:=TcxTextEdit(Sender).EditingText;
if Trim(mvalue)='' then
begin
mvalue:='0';
end;
with ClientDataSet1 do
begin
Edit;
FieldByName('OrderNo').Value:=mvalue;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('Update KH_Zdy Set OrderNo='+mvalue);
sql.Add(' where ZdyNo='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+'''');
ExecSQL;
end;
end;
procedure TfrmZDYHelp.V1NotePropertiesEditValueChanged(Sender: TObject);
var
mvalue:string;
begin
if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then
begin
Application.MessageBox('名称不能为空!','提示',0);
Exit;
end;
mvalue:=TcxTextEdit(Sender).EditingText;
if Trim(mvalue)='' then
begin
mvalue:='';
end;
with ClientDataSet1 do
begin
Edit;
FieldByName('Note').Value:=mvalue;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('Update KH_Zdy Set Note='''+Trim(mvalue)+'''');
sql.Add(' where ZdyNo='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+'''');
ExecSQL;
end;
end;
procedure TfrmZDYHelp.V1Column1PropertiesEditValueChanged(Sender: TObject);
var
mvalue:String;
begin
if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then
begin
Application.MessageBox('名称不能为空!','提示',0);
Exit;
end;
mvalue:=TcxTextEdit(Sender).EditingText;
if Trim(mvalue)='' then
begin
mvalue:='0';
end;
with ClientDataSet1 do
begin
Edit;
FieldByName('ZdyFlag').Value:=StrToInt(mvalue);
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('Update KH_Zdy Set ZdyFlag='+Trim(mvalue));
sql.Add(' where ZdyNo='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+'''');
ExecSQL;
end;
end;
procedure TfrmZDYHelp.V1HelpTypePropertiesEditValueChanged(
Sender: TObject);
var
mvalue:string;
begin
if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then
begin
Application.MessageBox('名称不能为空!','提示',0);
Exit;
end;
mvalue:=TcxTextEdit(Sender).EditingText;
if Trim(mvalue)='' then
begin
mvalue:='0';
end;
with ClientDataSet1 do
begin
Edit;
FieldByName('HelpType').Value:=mvalue;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('Update KH_Zdy Set HelpType='''+Trim(mvalue)+'''');
sql.Add(' where ZdyNo='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+'''');
ExecSQL;
end;
end;
procedure TfrmZDYHelp.V1Note1PropertiesEditValueChanged(Sender: TObject);
var
mvalue:string;
begin
if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then
begin
Application.MessageBox('名称不能为空!','提示',0);
Exit;
end;
mvalue:=TcxTextEdit(Sender).EditingText;
if Trim(mvalue)='' then
begin
mvalue:='';
end;
with ClientDataSet1 do
begin
Edit;
FieldByName('Note1').Value:=mvalue;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('Update KH_Zdy Set Note1='''+Trim(mvalue)+'''');
sql.Add(' where ZdyNo='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+'''');
ExecSQL;
end;
end;
procedure TfrmZDYHelp.ToolButton2Click(Sender: TObject);
begin
TcxGridToExcel(Trim(flagname)+'列表',cxGrid1);
end;
procedure TfrmZDYHelp.V1ZdyStr1PropertiesEditValueChanged(Sender: TObject);
var
mvalue,FName:string;
begin
if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then
begin
Application.MessageBox('名称不能为空!','提示',0);
Exit;
end;
mvalue:=TcxTextEdit(Sender).EditingText;
if Trim(mvalue)='' then
begin
mvalue:='';
end;
FName:=TV1.Controller.FocusedColumn.DataBinding.FilterFieldName;
with ClientDataSet1 do
begin
Edit;
FieldByName(FName).Value:=mvalue;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('Update KH_Zdy Set '+FName+'=');
sql.Add(''''+Trim(mvalue)+'''');
sql.Add(' where ZdyNo='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+'''');
ExecSQL;
end;
end;
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,294 @@
unit U_ZDYHelpDL;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, ToolWin, ComCtrls,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel,
cxClasses, cxControls, cxGridCustomView, cxGrid, DBClient, ADODB, ImgList,
StdCtrls, ExtCtrls, cxTL, cxMaskEdit, cxInplaceContainer, cxDBTL,
cxTLData, cxDropDownEdit;
type
TfrmZDYDLHelp = class(TForm)
TV1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
V1Code: TcxGridDBColumn;
V1Name: TcxGridDBColumn;
ToolBar1: TToolBar;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
DataSource1: TDataSource;
ClientDataSet1: TClientDataSet;
TBAdd: TToolButton;
TBSave: TToolButton;
TBDel: TToolButton;
TBClose: TToolButton;
ToolButton1: TToolButton;
TBEdit: TToolButton;
V1Note: TcxGridDBColumn;
V1OrderNo: TcxGridDBColumn;
ADOConnection1: TADOConnection;
Panel1: TPanel;
Label1: TLabel;
ZDYName: TEdit;
ThreeImgList: TImageList;
ADOQueryChild: TADOQuery;
DataSource2: TDataSource;
cxDBTreeList1: TcxDBTreeList;
cxColumn2: TcxDBTreeListColumn;
V1Column1: TcxGridDBColumn;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBAddClick(Sender: TObject);
procedure TBSaveClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure TBEditClick(Sender: TObject);
procedure TV1CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure ZDYNameChange(Sender: TObject);
procedure cxDBTreeList1Click(Sender: TObject);
private
procedure InitGrid();
{ Private declarations }
public
MainType,MainTypeName,flag,flagname,snote:string;
fnote,forderno:Boolean;
{ Public declarations }
end;
var
frmZDYDLHelp: TfrmZDYDLHelp;
implementation
uses
U_DataLink,U_Fun;
{$R *.dfm}
procedure TfrmZDYDLHelp.FormCreate(Sender: TObject);
begin
cxGrid1.Align:=alClient;
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=DConString;
Connected:=true;
end;
end;
procedure TfrmZDYDLHelp.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmZDYDLHelp.InitGrid();
begin
try
with ADOQueryMain do
begin
Close;
sql.Clear;
sql.Add('select A.*,TypeName=(select ZdyName from KH_Zdy B where B.ZdyNO=A.Type) from KH_Zdy A');
if Trim(ADOQueryChild.fieldbyname('frameNo').AsString)<>'QB' then
sql.Add('where Type='''+Trim(ADOQueryChild.fieldbyname('frameNo').AsString)+'''')
else
sql.Add('where MainType='''+Trim(MainType)+''' and Type<>''Main'' ');
Open;
end;
SCreateCDS20(ADOQueryMain,ClientDataSet1);
SInitCDSData20(ADOQueryMain,ClientDataSet1);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmZDYDLHelp.TBAddClick(Sender: TObject);
begin
TV1.OptionsData.Editing:=True;
with ClientDataSet1 do
begin
Append;
Post;
end;
end;
procedure TfrmZDYDLHelp.TBSaveClick(Sender: TObject);
var
maxno,fsj:string;
i:Integer;
begin
if ClientDataSet1.IsEmpty then Exit;
if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then
begin
Application.MessageBox('名称不能为空!','提示',0);
Exit;
end;
if Trim(ClientDataSet1.fieldbyname('TypeName').AsString)='' then
begin
Application.MessageBox('类别不能为空!','提示',0);
Exit;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
with ClientDataSet1 do
begin
First;
while not eof do
begin
if Trim(ClientDataSet1.FieldByName('ZDYNO').AsString)='' then
begin
if GetLSNo(ADOQueryTemp,maxno,'SY','KH_ZDY',3,1)=False then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('取最大编号失败!','提示',0);
Exit;
end;
end else
begin
maxno:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString);
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add('delete KH_ZDY where ZDYNO='''+Trim(ClientDataSet1.fieldbyname('ZDYNO').AsString)+'''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from KH_ZDY where 1<>1');
Open;
end;
if Trim(ClientDataSet1.FieldByName('ZDYName').AsString)='' then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('名称不能为空!','提示',0);
Exit;
end;
ADOQueryCmd.Append;
ADOQueryCmd.FieldByName('ZDYNo').Value:=Trim(maxno);
ADOQueryCmd.FieldByName('ZDYName').Value:=ClientDataSet1.fieldbyname('ZDYName').AsString;
ADOQueryCmd.FieldByName('note').Value:=Trim(snote);
//ADOQueryCmd.FieldByName('orderno').Value:=ClientDataSet1.fieldbyname('Name').AsString;
// ADOQueryCmd.FieldByName('Type').Value:=TcxComboBox(V1Column1).Properties.Items.Strings[1];
i:=(V1Column1.Properties as TcxComboBoxProperties).Items.IndexOf(ClientDataSet1.fieldbyname('TypeName').AsString);
fsj:=TA((V1Column1.Properties as TcxComboBoxProperties).Items.Objects[i]).S;
ADOQueryCmd.FieldByName('Type').Value:=Trim(fsj);
ADOQueryCmd.FieldByName('valid').Value:='Y';
ADOQueryCmd.FieldByName('Maintype').Value:=Trim(MainType);
//ADOQueryCmd.FieldByName('sel').Value:=0;
ADOQueryCmd.Post;
ClientDataSet1.Edit;
ClientDataSet1.FieldByName('ZDYNo').Value:=Trim(maxno);
ClientDataSet1.Post;
Next;
end;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
Application.MessageBox('保存成功!','提示',0);
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('保存失败!','提示',0);
end;
TV1.OptionsData.Editing:=False;
end;
procedure TfrmZDYDLHelp.TBDelClick(Sender: TObject);
begin
if ClientDataSet1.IsEmpty then Exit;
if (Trim(ClientDataSet1.FieldByName('ZDYNo').AsString)<>'') or
(Trim(ClientDataSet1.FieldByName('ZDYname').AsString)<>'') then
begin
if application.MessageBox('确定要删除吗?','提示信息',1)=2 then exit;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete KH_ZDY where ZDYNo='''+Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString)+'''');
SQL.Add(' and Type='''+Trim(ADOQueryChild.fieldbyname('frameNO').AsString)+'''');
ExecSQL;
end;
end;
ClientDataSet1.Delete;
end;
procedure TfrmZDYDLHelp.TBCloseClick(Sender: TObject);
begin
ModalResult:=2;
Close;
end;
procedure TfrmZDYDLHelp.FormShow(Sender: TObject);
var
fsj,fsj1:string;
begin
fsj:='select ZdyNo code,ZdyName name from KH_Zdy where MainType='''+MainType+''' and Type=''Main''';
SInitCxGridComboBoxBySql(ADOQueryTemp,V1Column1,fsj,1,True,'');
fsj:= ' select frameNo=''QB'',frameName=''全部'',TopFrameNo='''+Trim(MainType)+''''+
' union all select frameNo=ZdyNo,frameName=ZdyName,TopFrameNo=MainType '+
' from KH_Zdy A '+
' where A.MainType='''+MainType+''' and Type=''Main''';
with ADOQueryChild do
begin
Close;
sql.Clear;
sql.Add(fsj);
Open;
end;
cxDBTreeList1.FullExpand;
InitGrid();
frmZDYDLHelp.Caption:=Trim(MainTypename)+'<'+Trim(MainType)+'>';
end;
procedure TfrmZDYDLHelp.ToolButton1Click(Sender: TObject);
begin
ModalResult:=1;
end;
procedure TfrmZDYDLHelp.TBEditClick(Sender: TObject);
begin
TV1.OptionsData.Editing:=True;
end;
procedure TfrmZDYDLHelp.TV1CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
if TV1.OptionsData.Editing=False then
begin
ModalResult:=1;
end;
end;
procedure TfrmZDYDLHelp.ZDYNameChange(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,ClientDataSet1);
SInitCDSData20(ADOQueryMain,ClientDataSet1);
end;
end;
procedure TfrmZDYDLHelp.cxDBTreeList1Click(Sender: TObject);
begin
InitGrid();
end;
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,494 @@
unit U_ZDYHelpSel;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, ToolWin, ComCtrls,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel,
cxClasses, cxControls, cxGridCustomView, cxGrid, DBClient, ADODB, ImgList,
StdCtrls, ExtCtrls, cxCheckBox, cxTextEdit;
type
TfrmZDYHelpSel = class(TForm)
TV1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
V1Code: TcxGridDBColumn;
V1Name: TcxGridDBColumn;
ToolBar1: TToolBar;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
DataSource1: TDataSource;
ClientDataSet1: TClientDataSet;
TBAdd: TToolButton;
TBSave: TToolButton;
TBDel: TToolButton;
TBClose: TToolButton;
ToolButton1: TToolButton;
TBEdit: TToolButton;
V1Note: TcxGridDBColumn;
V1OrderNo: TcxGridDBColumn;
ADOConnection1: TADOConnection;
Panel1: TPanel;
Label1: TLabel;
ZDYName: TEdit;
ThreeImgList: TImageList;
V1Column1: TcxGridDBColumn;
Label2: TLabel;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBAddClick(Sender: TObject);
procedure TBSaveClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure TBEditClick(Sender: TObject);
procedure TV1CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure ZDYNameChange(Sender: TObject);
procedure V1NamePropertiesEditValueChanged(Sender: TObject);
private
procedure InitGrid();
{ Private declarations }
public
flag,flagname,snote,MainType,ReturnStr,FGStr:string;
fnote,forderno:Boolean;
PPSTE,JiangeStr:integer;
{ Public declarations }
end;
var
frmZDYHelpSel: TfrmZDYHelpSel;
implementation
uses
U_DataLink,U_Fun;
{$R *.dfm}
procedure TfrmZDYHelpSel.FormCreate(Sender: TObject);
begin
try
cxGrid1.Align:=alClient;
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=DConString;
//ConnectionString:='';
Connected:=true;
end;
except
{if Application.MessageBox('网络连接失败,是否要再次连接?','提示',32+4)=IDYES then
begin
try
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=DConString;
//ConnectionString:='23242';
Connected:=true;
end;
except
end;
end; }
frmZDYHelpSel.Free;
end;
end;
procedure TfrmZDYHelpSel.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
ZDYName.SetFocus;
Action:=caFree;
end;
procedure TfrmZDYHelpSel.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
sql.Clear;
sql.Add('select * from KH_ZDY where Type='''+flag+'''');
if Trim(MainType)<>'' then
begin
sql.Add(' and MainType='''+Trim(MainType)+'''');
end;
Open;
end;
SCreateCDS20(ADOQueryMain,ClientDataSet1);
SInitCDSData20(ADOQueryMain,ClientDataSet1);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmZDYHelpSel.TBAddClick(Sender: TObject);
var
i:Integer;
begin
ZDYName.SetFocus;
TV1.OptionsData.Editing:=True;
TV1.OptionsSelection.CellSelect:=True;
for i:=0 to 5 do
begin
with ClientDataSet1 do
begin
Append;
Post;
end;
end;
end;
procedure TfrmZDYHelpSel.TBSaveClick(Sender: TObject);
var
maxno:string;
begin
if ClientDataSet1.IsEmpty then Exit;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add('select * from KH_ZDY where ZdyNo='''+Trim(flag)+'''');
open;
end;
if ADOQueryTemp.IsEmpty then
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('insert into KH_ZDY(ZDYNo,ZDYName,Type,MainType) select :ZDYNo,:ZDYName,:Type,:MainType ');
Parameters.ParamByName('ZDYNo').Value:=Trim(flag);
Parameters.ParamByName('ZDYName').Value:=Trim(flagname);
Parameters.ParamByName('Type').Value:='Main';
Parameters.ParamByName('MainType').Value:=Trim(MainType);
ExecSQL;
end;
end;
with ADOQueryCmd do
begin
with ClientDataSet1 do
begin
First;
while not eof do
begin
if Trim(ClientDataSet1.FieldByName('ZDYNO').AsString)='' then
begin
if GetLSNo(ADOQueryTemp,maxno,'SY','KH_ZDY',3,1)=False then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('取最大编号失败!','提示',0);
Exit;
end;
end else
begin
maxno:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString);
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add('delete KH_ZDY where ZDYNO='''+Trim(ClientDataSet1.fieldbyname('ZDYNO').AsString)+'''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from KH_ZDY where 1<>1');
Open;
end;
if Trim(ClientDataSet1.FieldByName('ZDYName').AsString)='' then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('名称不能为空!','提示',0);
Exit;
end;
ADOQueryCmd.Append;
ADOQueryCmd.FieldByName('ZDYNo').Value:=Trim(maxno);
ADOQueryCmd.FieldByName('ZDYName').Value:=ClientDataSet1.fieldbyname('ZDYName').AsString;
ADOQueryCmd.FieldByName('note').Value:=Trim(snote);
//ADOQueryCmd.FieldByName('orderno').Value:=ClientDataSet1.fieldbyname('Name').AsString;
ADOQueryCmd.FieldByName('Type').Value:=flag;
ADOQueryCmd.FieldByName('valid').Value:='Y';
if Trim(MainType)<>'' then
ADOQueryCmd.FieldByName('MainType').Value:=Trim(MainType);
//ADOQueryCmd.FieldByName('sel').Value:=0;
ADOQueryCmd.Post;
ClientDataSet1.Edit;
ClientDataSet1.FieldByName('ZDYNo').Value:=Trim(maxno);
ClientDataSet1.Post;
Next;
end;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
Application.MessageBox('保存成功!','提示',0);
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('保存失败!','提示',0);
end;
// TV1.OptionsData.Editing:=False;
end;
procedure TfrmZDYHelpSel.TBDelClick(Sender: TObject);
begin
if ClientDataSet1.IsEmpty then Exit;
if (Trim(ClientDataSet1.FieldByName('ZDYNo').AsString)<>'') or
(Trim(ClientDataSet1.FieldByName('ZDYname').AsString)<>'') then
begin
if application.MessageBox('确定要删除吗?','提示信息',1)=2 then exit;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete KH_ZDY where ZDYNo='''+Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString)+'''');
SQL.Add(' and Type='''+Trim(flag)+'''');
ExecSQL;
end;
end;
ClientDataSet1.Delete;
end;
procedure TfrmZDYHelpSel.TBCloseClick(Sender: TObject);
begin
ModalResult:=2;
ZDYName.SetFocus;
Close;
end;
procedure TfrmZDYHelpSel.FormShow(Sender: TObject);
var
fsj,fsj1:string;
begin
{if PPSTE=1 then
begin
Application.Terminate;
Exit;
end; }
InitGrid();
fsj:=Trim(flag)+'01';
fsj1:=Trim(flagname)+'01';
{if ClientDataSet1.IsEmpty then
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('insert into KH_ZDY(ZDYNo,ZDYname,Type,note)');
sql.Add('select '''+Trim(fsj)+'''');
sql.Add(','''+Trim(fsj1)+'''');
SQL.Add(','''+Trim(flag)+'''');
sql.Add(','''+Trim(snote)+'''');
ExecSQL;
end;
InitGrid();
end;}
//frmZDYHelp.Caption:=Trim(flagname)+'<'+Trim(flag)+'>';
frmZDYHelpSel.Caption:=Trim(flagname);
end;
procedure TfrmZDYHelpSel.ToolButton1Click(Sender: TObject);
begin
ReturnStr:='';
with ClientDataSet1 do
begin
First;
while not Eof do
begin
if FieldByName('SSel').AsBoolean=True then
begin
if JiangeStr<>99 then
begin
if FGStr<>'' then
ReturnStr:=ReturnStr+Trim(fieldbyname('ZDYName').AsString)+FGStr
else
ReturnStr:=ReturnStr+Trim(fieldbyname('ZDYName').AsString)+';'
end
else
ReturnStr:=ReturnStr+Trim(fieldbyname('ZDYName').AsString);
end;
Next;
end;
end;
if JiangeStr<>99 then
ReturnStr:=Copy(ReturnStr,1,Length(ReturnStr)-1);
ModalResult:=1;
end;
procedure TfrmZDYHelpSel.TBEditClick(Sender: TObject);
begin
TV1.OptionsData.Editing:=True;
end;
procedure TfrmZDYHelpSel.TV1CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
if TV1.OptionsData.Editing=False then
begin
ModalResult:=1;
end;
end;
procedure TfrmZDYHelpSel.ZDYNameChange(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,ClientDataSet1);
SInitCDSData20(ADOQueryMain,ClientDataSet1);
end;
end;
procedure TfrmZDYHelpSel.V1NamePropertiesEditValueChanged(Sender: TObject);
var
maxno,mvalue:string;
begin
mvalue:=TcxTextEdit(Sender).EditingText;
if Trim(mvalue)='' then
begin
//Application.MessageBox('名称不能为空!','提示',0);
Exit;
end;
with ClientDataSet1 do
begin
Edit;
FieldByName('ZdyName').Value:=Trim(mvalue);
//Post;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add('select * from KH_ZDY where ZdyNo='''+Trim(flag)+'''');
open;
end;
if ADOQueryTemp.IsEmpty then
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('insert into KH_ZDY(ZDYNo,ZDYName,Type,MainType) select :ZDYNo,:ZDYName,:Type,:MainType ');
Parameters.ParamByName('ZDYNo').Value:=Trim(flag);
Parameters.ParamByName('ZDYName').Value:=Trim(flagname);
Parameters.ParamByName('Type').Value:='Main';
Parameters.ParamByName('MainType').Value:=Trim(MainType);
ExecSQL;
end;
end;
with ADOQueryCmd do
begin
//ClientDataSet1.DisableControls;
//with ClientDataSet1 do
//begin
//First;
//while not eof do
//begin
if Trim(ClientDataSet1.FieldByName('ZDYNO').AsString)='' then
begin
if GetLSNo(ADOQueryTemp,maxno,'SY','KH_ZDY',3,1)=False then
begin
ADOQueryCmd.Connection.RollbackTrans;
//ClientDataSet1.EnableControls;
Application.MessageBox('取最大编号失败!','提示',0);
Exit;
end;
end else
begin
maxno:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString);
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.add('select * from KH_Zdy where Type='''+Trim(flag)+'''');
if Trim(MainType)<>'' then
SQL.Add(' and MainType='''+Trim(MainType)+'''');
sql.Add(' and ZdyName='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+'''');
Open;
end;
if ADOQueryTemp.IsEmpty=False then
begin
if ADOQueryTemp.RecordCount>1 then
begin
ADOQueryCmd.Connection.RollbackTrans;
//ClientDataSet1.EnableControls;
Application.MessageBox('名称重复!','提示',0);
Exit;
end;
if Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)='' then
begin
ADOQueryCmd.Connection.RollbackTrans;
//ClientDataSet1.EnableControls;
Application.MessageBox('名称重复!','提示',0);
Exit;
end else
begin
if Trim(ADOQueryTemp.fieldbyname('ZdyNo').AsString)<>Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString) then
begin
ADOQueryCmd.Connection.RollbackTrans;
//ClientDataSet1.EnableControls;
Application.MessageBox('名称重复!','提示',0);
Exit;
end;
end;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add('delete KH_ZDY where ZDYNO='''+Trim(ClientDataSet1.fieldbyname('ZDYNO').AsString)+'''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from KH_ZDY where 1<>1');
Open;
end;
ADOQueryCmd.Append;
ADOQueryCmd.FieldByName('ZDYNo').Value:=Trim(maxno);
ADOQueryCmd.FieldByName('ZDYName').Value:=ClientDataSet1.fieldbyname('ZDYName').AsString;
ADOQueryCmd.FieldByName('note').Value:=Trim(snote);
//ADOQueryCmd.FieldByName('orderno').Value:=ClientDataSet1.fieldbyname('Name').AsString;
ADOQueryCmd.FieldByName('Type').Value:=flag;
ADOQueryCmd.FieldByName('valid').Value:='Y';
if Trim(MainType)<>'' then
ADOQueryCmd.FieldByName('MainType').Value:=Trim(MainType);
//ADOQueryCmd.FieldByName('sel').Value:=0;
ADOQueryCmd.Post;
ClientDataSet1.Edit;
ClientDataSet1.FieldByName('ZDYNo').Value:=Trim(maxno);
//ClientDataSet1.Post;
// Next;
//end;
//end;
// ClientDataSet1.EnableControls;
end;
ADOQueryCmd.Connection.CommitTrans;
//Application.MessageBox('保存成功!','提示',0);
//TV1.OptionsData.Editing:=False;
//TV1.OptionsSelection.CellSelect:=False;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('保存失败!','提示',0);
end;
end;
end.

View File

@ -0,0 +1,332 @@
object frmZdyAttachGYSHelp: TfrmZdyAttachGYSHelp
Left = 328
Top = 120
Width = 1038
Height = 618
Align = alClient
Caption = #20379#24212#21830#36164#26009#31649#29702
Color = clBtnFace
Font.Charset = GB2312_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
OnClose = FormClose
OnDestroy = FormDestroy
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 12
object ToolBar1: TToolBar
Left = 0
Top = 0
Width = 1022
Height = 31
ButtonHeight = 30
ButtonWidth = 59
Caption = 'ToolBar1'
Color = clSkyBlue
DisabledImages = DataLink_BaseInfo.ThreeImgList
Flat = True
Images = DataLink_BaseInfo.ThreeImgList
List = True
ParentColor = False
ShowCaptions = True
TabOrder = 0
object TBRafresh: TToolButton
Left = 0
Top = 0
AutoSize = True
Caption = #21047#26032
ImageIndex = 9
OnClick = TBRafreshClick
end
object ToolButton2: TToolButton
Left = 63
Top = 0
AutoSize = True
Caption = #36807#28388
ImageIndex = 59
OnClick = ToolButton2Click
end
object ToolButton3: TToolButton
Left = 126
Top = 0
AutoSize = True
Caption = #26032#22686
ImageIndex = 3
Visible = False
OnClick = ToolButton3Click
end
object ToolButton4: TToolButton
Left = 189
Top = 0
Caption = #20462#25913
ImageIndex = 54
Visible = False
OnClick = ToolButton4Click
end
object TBDel: TToolButton
Left = 248
Top = 0
AutoSize = True
Caption = #21024#38500
ImageIndex = 17
Visible = False
OnClick = TBDelClick
end
object ToolButton1: TToolButton
Left = 311
Top = 0
AutoSize = True
Caption = #23548#20986
ImageIndex = 53
OnClick = ToolButton1Click
end
object TBClose: TToolButton
Left = 374
Top = 0
AutoSize = True
Caption = #20851#38381
ImageIndex = 55
OnClick = TBCloseClick
end
end
object Panel1: TPanel
Left = 0
Top = 31
Width = 1022
Height = 39
Align = alTop
BevelInner = bvRaised
BevelOuter = bvLowered
Color = clSkyBlue
TabOrder = 1
object Label3: TLabel
Left = 203
Top = 13
Width = 60
Height = 12
Caption = #20379#24212#21830#21517#31216
end
object Label1: TLabel
Left = 22
Top = 13
Width = 60
Height = 12
Caption = #20379#24212#21830#32534#21495
end
object Label2: TLabel
Left = 395
Top = 13
Width = 24
Height = 12
Caption = #31867#22411
end
object ZdyName: TEdit
Tag = 2
Left = 267
Top = 9
Width = 89
Height = 20
TabOrder = 0
OnChange = ZdyNameChange
end
object ZdyCode: TEdit
Tag = 2
Left = 83
Top = 9
Width = 89
Height = 20
TabOrder = 1
OnChange = ZdyNameChange
end
object DEFstr5: TComboBox
Tag = 1
Left = 424
Top = 8
Width = 81
Height = 20
Style = csDropDownList
ItemHeight = 12
TabOrder = 2
OnChange = ZdyNameChange
Items.Strings = (
#22383#24067
#21152#24037#21378)
end
end
object cxGrid2: TcxGrid
Left = 0
Top = 70
Width = 1022
Height = 509
Align = alClient
TabOrder = 2
object Tv2: TcxGridDBTableView
OnDblClick = Tv2DblClick
NavigatorButtons.ConfirmDelete = False
NavigatorButtons.Delete.Enabled = False
NavigatorButtons.Delete.Visible = False
DataController.DataSource = DS_HZ
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <
item
Kind = skSum
end
item
Kind = skSum
end
item
Kind = skSum
end>
DataController.Summary.SummaryGroups = <>
OptionsBehavior.GoToNextCellOnEnter = True
OptionsCustomize.ColumnFiltering = False
OptionsData.Deleting = False
OptionsData.DeletingConfirmation = False
OptionsSelection.CellSelect = False
OptionsView.Footer = True
OptionsView.GroupByBox = False
Styles.Inactive = DataLink_BaseInfo.SHuangSe
Styles.IncSearch = DataLink_BaseInfo.SHuangSe
Styles.Selection = DataLink_BaseInfo.SHuangSe
Styles.Header = DataLink_BaseInfo.handBlack
object v2Column6: TcxGridDBColumn
Caption = #20379#24212#21830#21517#31216
DataBinding.FieldName = 'ZdyName'
PropertiesClassName = 'TcxButtonEditProperties'
Properties.Buttons = <
item
Default = True
Kind = bkEllipsis
end>
Properties.ReadOnly = True
HeaderAlignmentHorz = taCenter
Options.Focusing = False
Width = 124
end
object v2Column2: TcxGridDBColumn
Caption = #20379#24212#21830#32534#21495
DataBinding.FieldName = 'ZdyCode'
PropertiesClassName = 'TcxTextEditProperties'
HeaderAlignmentHorz = taCenter
Width = 80
end
object v2Column8: TcxGridDBColumn
Caption = #31867#22411
DataBinding.FieldName = 'DEFstr5'
HeaderAlignmentHorz = taCenter
Width = 77
end
object v2Column3: TcxGridDBColumn
Caption = #30005#35805
DataBinding.FieldName = 'DEFstr1'
PropertiesClassName = 'TcxTextEditProperties'
HeaderAlignmentHorz = taCenter
Width = 72
end
object v2Column4: TcxGridDBColumn
Caption = #25163#26426
DataBinding.FieldName = 'DEFstr2'
PropertiesClassName = 'TcxTextEditProperties'
HeaderAlignmentHorz = taCenter
Width = 74
end
object v2Column5: TcxGridDBColumn
Caption = #20256#30495
DataBinding.FieldName = 'DEFstr3'
PropertiesClassName = 'TcxTextEditProperties'
HeaderAlignmentHorz = taCenter
Width = 68
end
object v2Column7: TcxGridDBColumn
Caption = #20844#21496#22320#22336
DataBinding.FieldName = 'DEFNote1'
PropertiesClassName = 'TcxTextEditProperties'
HeaderAlignmentHorz = taCenter
Width = 69
end
object v2Column9: TcxGridDBColumn
Caption = #32852#31995#20154
DataBinding.FieldName = 'DEFstr4'
PropertiesClassName = 'TcxTextEditProperties'
HeaderAlignmentHorz = taCenter
Width = 73
end
object v2Column1: TcxGridDBColumn
Caption = #22791#27880
DataBinding.FieldName = 'Note'
PropertiesClassName = 'TcxTextEditProperties'
HeaderAlignmentHorz = taCenter
Width = 114
end
end
object cxGridLevel1: TcxGridLevel
GridView = Tv2
end
end
object ADOQueryTemp: TADOQuery
Connection = DataLink_BaseInfo.ADOLink
LockType = ltReadOnly
Parameters = <>
Left = 789
Top = 9
end
object ADOQueryCmd: TADOQuery
Connection = DataLink_BaseInfo.ADOLink
Parameters = <>
Left = 829
Top = 1
end
object ADOQueryMain: TADOQuery
Connection = DataLink_BaseInfo.ADOLink
LockType = ltReadOnly
Parameters = <>
Left = 949
Top = 225
end
object RM1: TRMGridReport
ThreadPrepareReport = True
InitialZoom = pzDefault
PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator]
DefaultCollate = False
SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\'
PreviewOptions.RulerUnit = rmutScreenPixels
PreviewOptions.RulerVisible = False
PreviewOptions.DrawBorder = False
PreviewOptions.BorderPen.Color = clGray
PreviewOptions.BorderPen.Style = psDash
Dataset = RMDB_Main
CompressLevel = rmzcFastest
CompressThread = False
LaterBuildEvents = True
OnlyOwnerDataSet = False
Left = 864
Top = 224
ReportData = {}
end
object RMDB_Main: TRMDBDataSet
Visible = True
Left = 928
Top = 216
end
object cxGridPopupMenu2: TcxGridPopupMenu
Grid = cxGrid2
PopupMenus = <>
Left = 888
Top = 224
end
object DS_HZ: TDataSource
DataSet = CDS_HZ
Left = 899
Top = 235
end
object CDS_HZ: TClientDataSet
Aggregates = <>
Params = <>
Left = 872
Top = 224
end
end

View File

@ -0,0 +1,213 @@
unit U_ZdyAttachGYSHelp;
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;
type
TfrmZdyAttachGYSHelp = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBDel: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
Panel1: TPanel;
ToolButton2: TToolButton;
ADOQueryMain: TADOQuery;
ToolButton1: TToolButton;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
Label3: TLabel;
ZdyName: TEdit;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
cxGridLevel1: TcxGridLevel;
cxGridPopupMenu2: TcxGridPopupMenu;
DS_HZ: TDataSource;
CDS_HZ: TClientDataSet;
ToolButton3: TToolButton;
v2Column6: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v2Column2: TcxGridDBColumn;
v2Column3: TcxGridDBColumn;
v2Column4: TcxGridDBColumn;
v2Column5: TcxGridDBColumn;
v2Column7: TcxGridDBColumn;
v2Column9: TcxGridDBColumn;
Label1: TLabel;
ZdyCode: TEdit;
ToolButton4: TToolButton;
v2Column8: TcxGridDBColumn;
Label2: TLabel;
DEFstr5: TComboBox;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ZdyNameChange(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure Tv2DblClick(Sender: TObject);
private
{ Private declarations }
procedure InitGrid();
public
end;
var
frmZdyAttachGYSHelp: TfrmZdyAttachGYSHelp;
implementation
uses
U_DataLink,U_Fun,U_ZDYHelp;
{$R *.dfm}
procedure TfrmZdyAttachGYSHelp.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
SQL.Clear;
sql.Add(' select * from KH_Zdy_Attachment where Type=''GYS'' ');
Open;
end;
SCreateCDS20(ADOQueryMain,CDS_HZ);
SInitCDSData20(ADOQueryMain,CDS_HZ);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmZdyAttachGYSHelp.FormDestroy(Sender: TObject);
begin
frmZdyAttachGYSHelp:=nil;
end;
procedure TfrmZdyAttachGYSHelp.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmZdyAttachGYSHelp.TBCloseClick(Sender: TObject);
begin
WriteCxGrid('供应商资料',Tv2);
Close;
end;
procedure TfrmZdyAttachGYSHelp.TBDelClick(Sender: TObject);
begin
{ if CDS_HZ.IsEmpty then Exit;
if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit;
if Trim(CDS_HZ.fieldbyname('ATID').AsString)<>'' then
begin
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('delete KH_Zdy_Attachment where ATID='''+Trim(CDS_HZ.fieldbyname('ATID').AsString)+'''');
sql.Add('delete KH_Zdy where ZdyNo='''+Trim(CDS_HZ.fieldbyname('ATID').AsString)+'''');
ExecSQL;
end;
end;
CDS_HZ.Delete;}
end;
procedure TfrmZdyAttachGYSHelp.FormShow(Sender: TObject);
begin
ReadCxGrid('供应商资料',Tv2);
InitGrid();
end;
procedure TfrmZdyAttachGYSHelp.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmZdyAttachGYSHelp.ToolButton2Click(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,CDS_HZ);
SInitCDSData20(ADOQueryMain,CDS_HZ);
end;
end;
procedure TfrmZdyAttachGYSHelp.ZdyNameChange(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmZdyAttachGYSHelp.ToolButton1Click(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then Exit;
SelExportData(Tv2,ADOQueryMain,'客户资料列表');
end;
procedure TfrmZdyAttachGYSHelp.ToolButton4Click(Sender: TObject);
begin
{ try
frmZdyAttInputGYS:=TfrmZdyAttInputGYS.Create(Application);
with frmZdyAttInputGYS do
begin
FCYID:=Trim(Self.CDS_HZ.fieldbyname('ATID').AsString);
if ShowModal=1 then
begin
end;
end;
finally
frmZdyAttInputGYS.Free;
end; }
end;
procedure TfrmZdyAttachGYSHelp.ToolButton3Click(Sender: TObject);
begin
{ try
frmZdyAttInputGYS:=TfrmZdyAttInputGYS.Create(Application);
with frmZdyAttInputGYS do
begin
FCYID:='';
if ShowModal=1 then
begin
end;
end;
finally
frmZdyAttInputGYS.Free;
end; }
end;
procedure TfrmZdyAttachGYSHelp.Tv2DblClick(Sender: TObject);
begin
if CDS_HZ.IsEmpty then exit;
ModalResult:=1;
end;
end.

View File

@ -0,0 +1,332 @@
object frmZdyAttachmentHelp: TfrmZdyAttachmentHelp
Left = 157
Top = 76
Width = 1064
Height = 652
Caption = #23458#25143#36164#26009#31649#29702
Color = clBtnFace
Font.Charset = GB2312_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
OldCreateOrder = False
OnClose = FormClose
OnDestroy = FormDestroy
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 12
object ToolBar1: TToolBar
Left = 0
Top = 0
Width = 1048
Height = 31
ButtonHeight = 30
ButtonWidth = 59
Caption = 'ToolBar1'
Color = clSkyBlue
DisabledImages = DataLink_TradeManage.ThreeImgList
Flat = True
Images = DataLink_TradeManage.ThreeImgList
List = True
ParentColor = False
ShowCaptions = True
TabOrder = 0
object TBRafresh: TToolButton
Left = 0
Top = 0
AutoSize = True
Caption = #21047#26032
ImageIndex = 9
OnClick = TBRafreshClick
end
object ToolButton2: TToolButton
Left = 63
Top = 0
AutoSize = True
Caption = #36807#28388
ImageIndex = 59
OnClick = ToolButton2Click
end
object ToolButton3: TToolButton
Left = 126
Top = 0
AutoSize = True
Caption = #26032#22686
ImageIndex = 3
Visible = False
end
object ToolButton4: TToolButton
Left = 189
Top = 0
Caption = #20462#25913
ImageIndex = 54
Visible = False
OnClick = ToolButton4Click
end
object TBDel: TToolButton
Left = 248
Top = 0
AutoSize = True
Caption = #21024#38500
ImageIndex = 17
Visible = False
OnClick = TBDelClick
end
object ToolButton1: TToolButton
Left = 311
Top = 0
AutoSize = True
Caption = #23548#20986
ImageIndex = 53
Visible = False
OnClick = ToolButton1Click
end
object TBClose: TToolButton
Left = 374
Top = 0
AutoSize = True
Caption = #20851#38381
ImageIndex = 55
OnClick = TBCloseClick
end
end
object Panel1: TPanel
Left = 0
Top = 31
Width = 1048
Height = 39
Align = alTop
BevelInner = bvRaised
BevelOuter = bvLowered
Color = clSkyBlue
TabOrder = 1
object Label3: TLabel
Left = 190
Top = 13
Width = 48
Height = 12
Caption = #23458#25143#21517#31216
end
object Label1: TLabel
Left = 22
Top = 13
Width = 48
Height = 12
Caption = #23458#25143#32534#21495
end
object Label2: TLabel
Left = 350
Top = 13
Width = 36
Height = 12
Caption = #19994#21153#21592
end
object ZdyName: TEdit
Tag = 2
Left = 238
Top = 9
Width = 89
Height = 20
TabOrder = 0
OnChange = ZdyNameChange
end
object ZdyCode: TEdit
Tag = 2
Left = 70
Top = 9
Width = 89
Height = 20
TabOrder = 1
OnChange = ZdyNameChange
end
object DEFstr5: TEdit
Tag = 2
Left = 388
Top = 9
Width = 89
Height = 20
TabOrder = 2
OnChange = ZdyNameChange
end
end
object cxGrid2: TcxGrid
Left = 0
Top = 70
Width = 1048
Height = 544
Align = alClient
TabOrder = 2
object Tv2: TcxGridDBTableView
NavigatorButtons.ConfirmDelete = False
NavigatorButtons.Delete.Enabled = False
NavigatorButtons.Delete.Visible = False
OnCellDblClick = Tv2CellDblClick
DataController.DataSource = DS_HZ
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <
item
Kind = skSum
end
item
Kind = skSum
end
item
Kind = skSum
end>
DataController.Summary.SummaryGroups = <>
OptionsBehavior.GoToNextCellOnEnter = True
OptionsCustomize.ColumnFiltering = False
OptionsData.Deleting = False
OptionsData.DeletingConfirmation = False
OptionsSelection.CellSelect = False
OptionsView.Footer = True
OptionsView.GroupByBox = False
Styles.Inactive = DataLink_TradeManage.SHuangSe
Styles.IncSearch = DataLink_TradeManage.SHuangSe
Styles.Selection = DataLink_TradeManage.SHuangSe
Styles.Header = DataLink_TradeManage.handBlack
object v2Column2: TcxGridDBColumn
Caption = #23458#25143#32534#21495
DataBinding.FieldName = 'ZdyCode'
PropertiesClassName = 'TcxTextEditProperties'
HeaderAlignmentHorz = taCenter
Width = 86
end
object v2Column6: TcxGridDBColumn
Caption = #23458#25143#21517#31216
DataBinding.FieldName = 'ZdyName'
PropertiesClassName = 'TcxButtonEditProperties'
Properties.Buttons = <
item
Default = True
Kind = bkEllipsis
end>
Properties.ReadOnly = True
HeaderAlignmentHorz = taCenter
Options.Focusing = False
Width = 127
end
object v2Column10: TcxGridDBColumn
Caption = #19994#21153#21592
DataBinding.FieldName = 'DEFstr5'
HeaderAlignmentHorz = taCenter
Width = 56
end
object v2Column3: TcxGridDBColumn
Caption = #30005#35805
DataBinding.FieldName = 'DEFstr1'
PropertiesClassName = 'TcxTextEditProperties'
HeaderAlignmentHorz = taCenter
Width = 71
end
object v2Column4: TcxGridDBColumn
Caption = #25163#26426
DataBinding.FieldName = 'DEFstr2'
PropertiesClassName = 'TcxTextEditProperties'
HeaderAlignmentHorz = taCenter
Width = 74
end
object v2Column5: TcxGridDBColumn
Caption = #20256#30495
DataBinding.FieldName = 'DEFstr3'
PropertiesClassName = 'TcxTextEditProperties'
HeaderAlignmentHorz = taCenter
Width = 68
end
object v2Column7: TcxGridDBColumn
Caption = #20844#21496#22320#22336
DataBinding.FieldName = 'DEFNote1'
PropertiesClassName = 'TcxTextEditProperties'
HeaderAlignmentHorz = taCenter
Width = 67
end
object v2Column8: TcxGridDBColumn
Caption = #21457#36135#22320#22336
DataBinding.FieldName = 'DEFNote2'
PropertiesClassName = 'TcxTextEditProperties'
HeaderAlignmentHorz = taCenter
Width = 72
end
object v2Column9: TcxGridDBColumn
Caption = #32852#31995#20154
DataBinding.FieldName = 'DEFstr4'
PropertiesClassName = 'TcxTextEditProperties'
HeaderAlignmentHorz = taCenter
Width = 73
end
object v2Column1: TcxGridDBColumn
Caption = #22791#27880
DataBinding.FieldName = 'Note'
PropertiesClassName = 'TcxTextEditProperties'
HeaderAlignmentHorz = taCenter
Width = 165
end
end
object cxGridLevel1: TcxGridLevel
GridView = Tv2
end
end
object ADOQueryTemp: TADOQuery
Connection = DataLink_TradeManage.ADOLink
LockType = ltReadOnly
Parameters = <>
Left = 789
Top = 9
end
object ADOQueryCmd: TADOQuery
Connection = DataLink_TradeManage.ADOLink
Parameters = <>
Left = 829
Top = 1
end
object ADOQueryMain: TADOQuery
Connection = DataLink_TradeManage.ADOLink
LockType = ltReadOnly
Parameters = <>
Left = 949
Top = 225
end
object RM1: TRMGridReport
ThreadPrepareReport = True
InitialZoom = pzDefault
PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbExport, pbNavigator]
DefaultCollate = False
SaveReportOptions.RegistryPath = 'Software\ReportMachine\ReportSettings\'
PreviewOptions.RulerUnit = rmutScreenPixels
PreviewOptions.RulerVisible = False
PreviewOptions.DrawBorder = False
PreviewOptions.BorderPen.Color = clGray
PreviewOptions.BorderPen.Style = psDash
Dataset = RMDB_Main
CompressLevel = rmzcFastest
CompressThread = False
LaterBuildEvents = True
OnlyOwnerDataSet = False
Left = 864
Top = 224
ReportData = {}
end
object RMDB_Main: TRMDBDataSet
Visible = True
Left = 928
Top = 216
end
object cxGridPopupMenu2: TcxGridPopupMenu
Grid = cxGrid2
PopupMenus = <>
Left = 888
Top = 224
end
object DS_HZ: TDataSource
DataSet = CDS_HZ
Left = 899
Top = 235
end
object CDS_HZ: TClientDataSet
Aggregates = <>
Params = <>
Left = 872
Top = 224
end
end

View File

@ -0,0 +1,201 @@
unit U_ZdyAttachmentHelp;
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;
type
TfrmZdyAttachmentHelp = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBDel: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
Panel1: TPanel;
ToolButton2: TToolButton;
ADOQueryMain: TADOQuery;
ToolButton1: TToolButton;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
Label3: TLabel;
ZdyName: TEdit;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
cxGridLevel1: TcxGridLevel;
cxGridPopupMenu2: TcxGridPopupMenu;
DS_HZ: TDataSource;
CDS_HZ: TClientDataSet;
ToolButton3: TToolButton;
v2Column6: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v2Column2: TcxGridDBColumn;
v2Column3: TcxGridDBColumn;
v2Column4: TcxGridDBColumn;
v2Column5: TcxGridDBColumn;
v2Column7: TcxGridDBColumn;
v2Column8: TcxGridDBColumn;
v2Column9: TcxGridDBColumn;
Label1: TLabel;
ZdyCode: TEdit;
v2Column10: TcxGridDBColumn;
ToolButton4: TToolButton;
Label2: TLabel;
DEFstr5: TEdit;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ZdyNameChange(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure Tv2CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
private
{ Private declarations }
procedure InitGrid();
public
fkhType:string;
end;
var
frmZdyAttachmentHelp: TfrmZdyAttachmentHelp;
implementation
uses
U_DataLink,U_Fun,U_ZDYHelp;
{$R *.dfm}
procedure TfrmZdyAttachmentHelp.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
SQL.Clear;
sql.Add(' select * from KH_Zdy_Attachment where Type=''KHName'' ');
sql.Add(' and isnull(khType,'''')='+quotedstr(trim(fkhType)));
Open;
end;
SCreateCDS20(ADOQueryMain,CDS_HZ);
SInitCDSData20(ADOQueryMain,CDS_HZ);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmZdyAttachmentHelp.FormDestroy(Sender: TObject);
begin
frmZdyAttachmentHelp:=nil;
end;
procedure TfrmZdyAttachmentHelp.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmZdyAttachmentHelp.TBCloseClick(Sender: TObject);
begin
WriteCxGrid('客户资料',Tv2,'客户自定义');
Close;
end;
procedure TfrmZdyAttachmentHelp.TBDelClick(Sender: TObject);
begin
{ if CDS_HZ.IsEmpty then Exit;
if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit;
if Trim(CDS_HZ.fieldbyname('ATID').AsString)<>'' then
begin
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('delete KH_Zdy_Attachment where ATID='''+Trim(CDS_HZ.fieldbyname('ATID').AsString)+'''');
sql.Add('delete KH_Zdy where ZdyNo='''+Trim(CDS_HZ.fieldbyname('ATID').AsString)+'''');
ExecSQL;
end;
end;
CDS_HZ.Delete; }
end;
procedure TfrmZdyAttachmentHelp.FormShow(Sender: TObject);
begin
ReadCxGrid('客户资料',Tv2,'客户自定义');
InitGrid();
end;
procedure TfrmZdyAttachmentHelp.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmZdyAttachmentHelp.ToolButton2Click(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,CDS_HZ);
SInitCDSData20(ADOQueryMain,CDS_HZ);
end;
end;
procedure TfrmZdyAttachmentHelp.ZdyNameChange(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmZdyAttachmentHelp.ToolButton1Click(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then Exit;
SelExportData(Tv2,ADOQueryMain,'客户资料列表');
end;
procedure TfrmZdyAttachmentHelp.ToolButton4Click(Sender: TObject);
begin
{ try
frmZdyAttInput:=TfrmZdyAttInput.Create(Application);
with frmZdyAttInput do
begin
FCYID:=Trim(Self.CDS_HZ.fieldbyname('ATID').AsString);
if ShowModal=1 then
begin
end;
end;
finally
frmZdyAttInput.Free;
end; }
end;
procedure TfrmZdyAttachmentHelp.Tv2CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
if CDS_HZ.IsEmpty then exit;
ModalResult:=1;
end;
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,108 @@
unit U_CompressionFun;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, ShlObj, cxShellCommon, cxControls,
cxContainer, cxShellTreeView, cxShellListView, StdCtrls, BtnEdit,
OleCtnrs, DB, ADODB,ZLib;
procedure CompressionStream(var ASrcStream:TMemoryStream;ACompressionLevel:Integer = 2);
procedure UnCompressionStream(var ASrcStream:TMemoryStream);
procedure GetFileInfo(mFile:string;var mfileSize:integer;var CreationTime:tdatetime;var WriteTime:tdatetime);
function CovFileDate(Fd:_FileTime):TDateTime;
implementation
procedure GetFileInfo(mFile:string;var mfileSize:integer;var CreationTime:tdatetime;var WriteTime:tdatetime);
var
vSearchRec: TSearchRec;
begin
FindFirst(mFile,faAnyFile,vSearchRec);
mfileSize:=vSearchRec.Size;
CreationTime:=CovFileDate(vSearchRec.FindData.ftCreationTime);//创建时间
//vSearchRec.FindData.ftLastAccessTime//访问时间
WriteTime:=CovFileDate(vSearchRec.FindData.ftLastWriteTime);//修改时间
FindClose(vSearchRec);
end;
function CovFileDate(Fd:_FileTime):TDateTime;
var
Tct:_SystemTime;
Temp:_FileTime;
begin
FileTimeToLocalFileTime(Fd,Temp);
FileTimeToSystemTime(Temp,Tct);
CovFileDate:=SystemTimeToDateTime(Tct);
end;
////////////////////////////////////////////////////
///////压缩流
////////////////////////////////////////////////////
procedure CompressionStream(var ASrcStream:TMemoryStream;ACompressionLevel:Integer = 2);
var
nDestStream:TMemoryStream;
nTmpStream:TCompressionStream;
nCompressionLevel:TCompressionLevel;
begin
ASrcStream.Position := 0;
nDestStream := TMemoryStream.Create;
try
//级别
case ACompressionLevel of
0:nCompressionLevel := clNone;
1:nCompressionLevel := clFastest;
2:nCompressionLevel := clDefault;
3:nCompressionLevel := clMax;
else
nCompressionLevel := clMax;
end;
//开始压缩
nTmpStream := TCompressionStream.Create(nCompressionLevel,nDestStream);
try
ASrcStream.SaveToStream(nTmpStream);
finally
nTmpStream.Free;//释放后nDestStream才会有数据
end;
ASrcStream.Clear;
ASrcStream.LoadFromStream(nDestStream);
ASrcStream.Position := 0;
finally
nDestStream.Clear;
nDestStream.Free;
end;
end;
////////////////////////////////////////////////////
///////解压缩流
////////////////////////////////////////////////////
procedure UnCompressionStream(var ASrcStream:TMemoryStream);
var
nTmpStream:TDecompressionStream;
nDestStream:TMemoryStream;
nBuf: array[1..512] of Byte;
nSrcCount: integer;
begin
ASrcStream.Position := 0;
nDestStream := TMemoryStream.Create;
nTmpStream := TDecompressionStream.Create(ASrcStream);
try
repeat
//读入实际大小
nSrcCount := nTmpStream.Read(nBuf, SizeOf(nBuf));
if nSrcCount > 0 then
nDestStream.Write(nBuf, nSrcCount);
until (nSrcCount = 0);
ASrcStream.Clear;
ASrcStream.LoadFromStream(nDestStream);
ASrcStream.Position := 0;
finally
nDestStream.Clear;
nDestStream.Free;
nTmpStream.Free;
end;
end;
end.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,104 @@
object frmSelExportField: TfrmSelExportField
Left = 458
Top = 108
BorderStyle = bsDialog
Caption = #23383#27573#23548#20986#36873#25321
ClientHeight = 507
ClientWidth = 427
Color = clBtnFace
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
OnClose = FormClose
OnDestroy = FormDestroy
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 12
object Button1: TButton
Left = 94
Top = 456
Width = 75
Height = 25
Caption = #30830#23450
TabOrder = 0
OnClick = Button1Click
end
object Button2: TButton
Left = 243
Top = 456
Width = 75
Height = 25
Caption = #20851#38381
TabOrder = 1
OnClick = Button2Click
end
object cxGrid1: TcxGrid
Left = 329
Top = 151
Width = 200
Height = 162
TabOrder = 2
Visible = False
object ExpGrid: TcxGridDBTableView
NavigatorButtons.ConfirmDelete = False
DataController.DataSource = ExportDataSource
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <>
DataController.Summary.SummaryGroups = <>
OptionsBehavior.AlwaysShowEditor = True
OptionsView.GroupByBox = False
end
object cxGrid1Level1: TcxGridLevel
GridView = ExpGrid
end
end
object Panel2: TScrollBox
Left = 2
Top = 0
Width = 423
Height = 438
HorzScrollBar.Visible = False
Color = clSkyBlue
ParentColor = False
TabOrder = 3
object Label4: TLabel
Left = 158
Top = 9
Width = 60
Height = 14
Caption = #23383#27573#36873#25321
Font.Charset = GB2312_CHARSET
Font.Color = clRed
Font.Height = -14
Font.Name = #23435#20307
Font.Style = [fsBold]
ParentFont = False
end
end
object CheckBox1: TCheckBox
Left = 20
Top = 449
Width = 49
Height = 17
Caption = #20840#36873
TabOrder = 4
OnClick = CheckBox1Click
end
object CheckBox2: TCheckBox
Left = 20
Top = 465
Width = 49
Height = 17
Caption = #20840#24323
TabOrder = 5
OnClick = CheckBox2Click
end
object ExportDataSource: TDataSource
Left = 424
Top = 233
end
end

View File

@ -0,0 +1,277 @@
unit U_SelExportField;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, RM_FormReport, RM_PDBGrid,
DB,IniFiles, RM_Common, RM_Class, RM_e_Xls, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData,
cxGridLevel, cxClasses, cxControls, cxGridCustomView,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid;
type
TfrmSelExportField = class(TForm)
Button1: TButton;
Button2: TButton;
ExportDataSource: TDataSource;
ExpGrid: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
Panel2: TScrollBox;
Label4: TLabel;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
private
procedure CreateCheckBox();
procedure ExportData();
procedure ReadINIFile(fieldname:string);
procedure WriteINIFile(fieldname:string);
Function IsINIFile(fieldname:string):Boolean;
procedure GetExportFields();
procedure IsCheck();
{ Private declarations }
public
ExportFields,IniName:string;
{ Public declarations }
end;
var
frmSelExportField: TfrmSelExportField;
implementation
uses U_Fun;
{$R *.dfm}
procedure TfrmSelExportField.CreateCheckBox();
var
i,j,FTop,FLeft,Fdiv,FMod,z:Integer;// mod 余数div商
FCheckBox:TCheckBox;
begin
z:=0;
for i:=0 to ExpGrid.ColumnCount-1 do
begin
if ExpGrid.Columns[i].Visible=True then
begin
Fdiv:=(z+1) div 3;
FMod:=(z+1) mod 3;
FCheckBox:=TCheckBox.Create(Self);
FCheckBox.Caption:=Trim(ExpGrid.Columns[i].Caption);
FCheckBox.Tag:=i;
FCheckBox.Parent:=Panel2;
FCheckBox.Checked:=True;
if FMod>0 then
FCheckBox.Top:=36*(Fdiv+1)
else
FCheckBox.Top:=36*Fdiv;
if FMod=1 then
FCheckBox.Left:=29
else if FMod=2 then
FCheckBox.Left:=163
else if FMod=0 then
FCheckBox.Left:=305;
z:=z+1;
end;
end;
end;
procedure TfrmSelExportField.Button1Click(Sender: TObject);
begin
//ShowMessage('10除以3取余'+inttostr(10 mod 3)+',取整'+inttostr(10 div 3));
ExportData();
GetExportFields();
if IsINIFile(IniName)=True then
begin
DeleteFile(IniName);
end;
WriteINIFile(IniName);
end;
procedure TfrmSelExportField.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmSelExportField.FormDestroy(Sender: TObject);
begin
frmSelExportField:=nil;
end;
procedure TfrmSelExportField.FormShow(Sender: TObject);
begin
CreateCheckBox();
ReadINIFile(IniName);
IsCheck();
end;
procedure TfrmSelExportField.IsCheck();
var
i:Integer;
fsj:string;
begin
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
fsj:=Trim(TCheckBox(Controls[i]).Caption);
if Pos(fsj,ExportFields)>0 then
TCheckBox(Controls[i]).Checked:=True
else
TCheckBox(Controls[i]).Checked:=False;
end;
end;
end;
end;
procedure TfrmSelExportField.ExportData();
var
i,j:Integer;
begin
j:=0;
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if TCheckBox(Controls[i]).Checked=True then
begin
j:=1;
ExpGrid.Columns[TCheckBox(Controls[i]).Tag].Visible:=True
end else
begin
ExpGrid.Columns[TCheckBox(Controls[i]).Tag].Visible:=False;
end;
end;
end;
end;
TcxGridToExcel(Trim(IniName),cxGrid1);
end;
procedure TfrmSelExportField.Button2Click(Sender: TObject);
begin
Close;
WriteINIFile(IniName);
end;
procedure TfrmSelExportField.ReadINIFile(fieldname:string);
var
programIni:Tinifile; //配置文件名
FName:string;
begin
FName:=ExtractFilePath(Application.ExeName)+'FieldExportSet\' +trim(fieldname)+'.INI';
programIni:=Tinifile.create(FName);
ExportFields:=programIni.ReadString('导出设置','导出字段','');
programIni.Free;
end;
procedure TfrmSelExportField.GetExportFields();
var
i:Integer;
begin
ExportFields:='Begin';
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if TCheckBox(Controls[i]).Checked then
begin
ExportFields:=ExportFields+'/'+TCheckBox(Controls[i]).Caption;
end;
end;
end;
end;
end;
//////////////////////////////////////////////////////////////////
//写设置信息到INI文件
//参数
//////////////////////////////////////////////////////////////////
procedure TfrmSelExportField.WriteINIFile(fieldname:string);
var
programIni:Tinifile; //配置文件名
FName:string;
begin
FName:=ExtractFilePath(Application.ExeName)+'FieldExportSet\'+trim(fieldname)+'.INI';
if not DirectoryExists(ExtractFileDir(FName)) then
CreateDir(ExtractFileDir(FName));
programIni:=Tinifile.create(FName);
programIni.WriteString('导出设置','导出字段',ExportFields);
programIni.Free;
end;
//////////////////////////////////////////////////////////////////
//判断InI文件是否存在
//////////////////////////////////////////////////////////////////
Function TfrmSelExportField.IsINIFile(fieldname:string):Boolean;
var
FName:string;
begin
FName:=ExtractFilePath(Application.ExeName)+'FieldExportSet\'+trim(fieldname)+'.INI';
if FileExists(FName) then
Result:=True
else
Result:=false;
end;
procedure TfrmSelExportField.CheckBox1Click(Sender: TObject);
var
i:Integer;
begin
if CheckBox1.Checked then
begin
CheckBox2.Checked:=False;
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if (TCheckBox(Controls[i]).Name<>'CheckBox1') and (TCheckBox(Controls[i]).Name<>'CheckBox2') then
begin
TCheckBox(Controls[i]).Checked:=True;
end;
end;
end;
end;
end;
end;
procedure TfrmSelExportField.CheckBox2Click(Sender: TObject);
var
i:Integer;
begin
if CheckBox2.Checked then
begin
CheckBox1.Checked:=False;
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if (TCheckBox(Controls[i]).Name<>'CheckBox1') and (TCheckBox(Controls[i]).Name<>'CheckBox2') then
begin
TCheckBox(Controls[i]).Checked:=False;
end;
end;
end;
end;
end;
end;
end.

View File

@ -0,0 +1,30 @@
unit U_getDogServer;
interface
uses
SysUtils,Windows,IniFiles,StrUtils;
function GetLink(H: THandle;var ADOConnString:PAnsiChar):Integer;stdcall; external 'PUBLICDLL.DLL';
function GetLinkDog(H: THandle;var ADOConnString:string):Integer;
implementation
function GetLinkDog(H: THandle;var ADOConnString:string):Integer;
var
str1:string;
Pstr1: PChar;
begin
try
SetLength(str1,255);
pstr1:=pchar(str1);
result:= GetLink(H,pstr1);
ADOConnString:=trim(pstr1);
finally
SetLength(str1,0);
end;
end;
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,86 @@
object frmFilterHelp: TfrmFilterHelp
Left = 287
Top = 145
BorderStyle = bsDialog
Caption = #39640#32423#36807#28388
ClientHeight = 507
ClientWidth = 457
Color = clBtnFace
Font.Charset = GB2312_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 12
object ScrollBox1: TScrollBox
Left = 0
Top = 0
Width = 457
Height = 465
Align = alTop
Color = clSkyBlue
Font.Charset = GB2312_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
ParentColor = False
ParentFont = False
TabOrder = 0
object Label1: TLabel
Left = 184
Top = 8
Width = 68
Height = 16
Caption = #36807#28388#26465#20214
Font.Charset = ANSI_CHARSET
Font.Color = clRed
Font.Height = -16
Font.Name = #23435#20307
Font.Style = [fsBold]
ParentFont = False
end
object CheckBox1: TCheckBox
Left = 384
Top = 8
Width = 57
Height = 17
Caption = #31934#30830
TabOrder = 0
end
end
object Panel1: TPanel
Left = 0
Top = 465
Width = 457
Height = 43
Align = alTop
BevelInner = bvRaised
BevelOuter = bvLowered
TabOrder = 1
object Button1: TButton
Left = 112
Top = 9
Width = 75
Height = 25
Caption = #30830#23450
TabOrder = 0
OnClick = Button1Click
end
object Button2: TButton
Left = 264
Top = 9
Width = 75
Height = 25
Caption = #20851#38381
TabOrder = 1
OnClick = Button2Click
end
end
object XPManifest1: TXPManifest
Left = 280
Top = 328
end
end

View File

@ -0,0 +1,182 @@
unit U_FilterHelp;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls,cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, cxStyles, cxCustomData, cxGraphics,
cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData,StrUtils,ADODB,
XPMan;
type
TfrmFilterHelp = class(TForm)
ScrollBox1: TScrollBox;
Panel1: TPanel;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
CheckBox1: TCheckBox;
XPManifest1: TXPManifest;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
procedure CreateFilers(Tv1:TcxGridDBTableView);
function GSGetFilters():string;
procedure GSQryDofilter(ADOQry:TADOQuery;FilterStr:string);
{ Public declarations }
end;
var
frmFilterHelp: TfrmFilterHelp;
implementation
{$R *.dfm}
procedure TfrmFilterHelp.Button1Click(Sender: TObject);
begin
ModalResult:=1
end;
procedure TfrmFilterHelp.Button2Click(Sender: TObject);
begin
ModalResult:=-1;
end;
procedure TfrmFilterHelp.CreateFilers(Tv1:TcxGridDBTableView);
var
i,j,z,m,FTop,FLeft,Fdiv,FMod:Integer;// mod 余数div商
FLableEdit:TLabeledEdit;
begin
j:=0;
for i:=0 to Tv1.ColumnCount-1 do
begin
m:=0;
if Tv1.Columns[i].Visible=False then Continue;
if not ( (Tv1.DataController.DataSource.DataSet.FieldByName(Tv1.Columns[i].DataBinding.FieldName).DataType=ftBCD) or
(Tv1.DataController.DataSource.DataSet.FieldByName(Tv1.Columns[i].DataBinding.FieldName).DataType=ftString) ) then Continue;
Fdiv:=(j+1) div 3;
FMod:=(j+1) mod 3;
FLableEdit:=TLabeledEdit.Create(Self);
FLableEdit.EditLabel.Caption:=Trim(Tv1.Columns[i].Caption);
FLableEdit.Name:=Trim(Tv1.Columns[i].DataBinding.FieldName);
if Tv1.DataController.DataSource.DataSet.FieldByName(Tv1.Columns[i].DataBinding.FieldName).DataType=ftBCD then
begin
FLableEdit.EditLabel.Caption:=Trim(Tv1.Columns[i].Caption+'始');
FLableEdit.Hint:=Trim(Tv1.Columns[i].DataBinding.FieldName);
FLableEdit.Tag:=1;
end;
FLableEdit.Text:='';
FLableEdit.TabOrder:=j;
FLableEdit.Parent:=ScrollBox1;
if FMod>0 then
FLableEdit.Top:=50*(Fdiv+1)
else
FLableEdit.Top:=50*Fdiv;
if FMod=1 then
FLableEdit.Left:=29
else if FMod=2 then
FLableEdit.Left:=163
else if FMod=0 then
FLableEdit.Left:=305;
if Tv1.DataController.DataSource.DataSet.FieldByName(Tv1.Columns[i].DataBinding.FieldName).DataType=ftBCD then
begin
j:=j+1;
Fdiv:=(j+1) div 3;
FMod:=(j+1) mod 3;
FLableEdit:=TLabeledEdit.Create(Self);
FLableEdit.EditLabel.Caption:=Trim(Tv1.Columns[i].Caption+'止');
FLableEdit.Hint:=Trim(Tv1.Columns[i].DataBinding.FieldName);
FLableEdit.Tag:=2;
FLableEdit.Text:='';
FLableEdit.TabOrder:=j;
FLableEdit.Parent:=ScrollBox1;
if FMod>0 then
FLableEdit.Top:=50*(Fdiv+1)
else
FLableEdit.Top:=50*Fdiv;
if FMod=1 then
FLableEdit.Left:=29
else if FMod=2 then
FLableEdit.Left:=163
else if FMod=0 then
FLableEdit.Left:=305;
end;
j:=j+1;
end;
end;
function TfrmFilterHelp.GSGetFilters():string;
var
i:Integer;
FValue:Double;
begin
Result:='';
with ScrollBox1 do
begin
for i:=0 to ControlCount-1 do
begin
if Controls[i] is TLabel then Continue;
if Controls[i] is TLabeledEdit then
begin
if Trim(TLabeledEdit(Controls[i]).Text)<>'' then
begin
if TLabeledEdit(Controls[i]).Tag>0 then
begin
try
FValue:=StrToFloat(TLabeledEdit(Controls[i]).Text);
except
Application.MessageBox('不能输入非法数字!','提示',0);
Exit;
end;
end;
if TLabeledEdit(Controls[i]).Tag=1 then
begin
Result:=Result+'and '+Controls[i].Hint+'>='+Trim(TLabeledEdit(Controls[i]).Text);
end else
if TLabeledEdit(Controls[i]).Tag=2 then
begin
Result:=Result+'and '+Controls[i].Hint+'<='+Trim(TLabeledEdit(Controls[i]).Text);
end else
begin
if CheckBox1.Checked then
Result:=Result+'and '+Controls[i].Name+'='+QuotedStr(Trim(TLabeledEdit(Controls[i]).Text))
else
Result:=Result+'and '+Controls[i].Name+' like '+QuotedStr('%'+Trim(TLabeledEdit(Controls[i]).Text)+'%');
end;
end;
end;
end;
end;
if Trim(Result)<>'' then
Result:=Trim(RightBStr(Result,Length(Result)-4));
end;
procedure TfrmFilterHelp.GSQryDofilter(ADOQry:TADOQuery;FilterStr:string);
begin
try
ADOQry.DisableControls;
with ADOQry do
begin
if Trim(FilterStr)='' then
begin
Filtered:=False;
end else
begin
Filtered:=False;
Filter:=FilterStr;
Filtered:=True;
end;
end;
finally
ADOQry.EnableControls;
end;
end;
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,208 @@
unit U_PbMfProductHelp;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Grids, DBGrids, ExtCtrls, ComCtrls, ImgList, ToolWin,
StdCtrls, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, cxDBData, cxTextEdit, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxControls, cxGridCustomView,
cxClasses, cxGridLevel, cxGrid,StrUtils, DBClient, cxCheckBox;
type
TfrmPbMfProductHelp = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Edt_name: TEdit;
ImageList24: TImageList;
DataSource1: TDataSource;
ADOQueryHelp: TADOQuery;
ToolBar2: TToolBar;
TOk: TToolButton;
Tclose: TToolButton;
cxGrid1: TcxGrid;
cxGrid1Level1: TcxGridLevel;
tv1: TcxGridDBTableView;
tv1P_code1: TcxGridDBColumn;
tv1P_chnName1: TcxGridDBColumn;
tv1P_engName1: TcxGridDBColumn;
tv1P_Gram1: TcxGridDBColumn;
tv1P_breadthp: TcxGridDBColumn;
tv1MachZsName: TcxGridDBColumn;
tv1factoryName: TcxGridDBColumn;
Label2: TLabel;
Edt_spec: TEdit;
ADOConnection1: TADOConnection;
tv1P_spec: TcxGridDBColumn;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
cxStyle_Active: TcxStyle;
cxStyle_gridRow: TcxStyle;
cxStyle_gridFoot: TcxStyle;
cxStyle_gridHead: TcxStyle;
cxStyle_gridGroupBox: TcxStyle;
cxStyle_yellow: TcxStyle;
cxStyle_Red: TcxStyle;
cxStyle_group: TcxStyle;
cxStyle_fontBlue: TcxStyle;
cxStyle_fontOlive: TcxStyle;
cxStyle_fontbalck: TcxStyle;
CDS_Sel: TClientDataSet;
tv1Sel: TcxGridDBColumn;
procedure BtnOkClick(Sender: TObject);
procedure BtnCancelClick(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure Edt_nameKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure Edt_nameChange(Sender: TObject);
procedure tv1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
procedure IntiQuery();
procedure DoFilter();
public
{ Public declarations }
end;
var
frmPbMfProductHelp: TfrmPbMfProductHelp;
implementation
uses
U_adodbmd,U_global,U_FormPas;
{$R *.dfm}
procedure TfrmPbMfProductHelp.BtnOkClick(Sender: TObject);
begin
if ADOQueryHelp.IsEmpty then exit;
ModalResult:= 1;
end;
procedure TfrmPbMfProductHelp.BtnCancelClick(Sender: TObject);
begin
ModalResult:= -1;
end;
procedure TfrmPbMfProductHelp.IntiQuery();
begin
with ADOQueryHelp Do
Begin
DisableControls;
Close;
filtered:=false;
SQL.Clear;
SQL.Add('exec P_Get_MCMf_CatLog');
sql.Add('P');
Open;
CreateCDS20(ADOQueryHelp,CDS_Sel);
InitCDSData20(ADOQueryHelp,CDS_Sel);
EnableControls;
end;
end;
procedure TfrmPbMfProductHelp.DBGrid1DblClick(Sender: TObject);
begin
if ADOQueryHelp.IsEmpty then exit;
ModalResult := 1;
end;
procedure TfrmPbMfProductHelp.Edt_nameKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
Var
TmpSql :string;
begin
if Key = VK_RETURN then
begin
IntiQuery();
end;
end;
procedure TfrmPbMfProductHelp.FormCreate(Sender: TObject);
begin
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=gConString;
Connected:=true;
end;
cxgrid1.Align:=alClient;
IntiQuery();
end;
procedure TfrmPbMfProductHelp.FormShow(Sender: TObject);
begin
Edt_Name.SetFocus;
end;
procedure TfrmPbMfProductHelp.RadioGroup1Click(Sender: TObject);
begin
IntiQuery();
end;
////////////////////////////////////////////////////
//函数:过滤数据
////////////////////////////////////////////////////
procedure TfrmPbMfProductHelp.DoFilter();
var
filterStr:string;
begin
filterStr:='';
//名称
if trim(edt_Name.Text)<>'' then
begin
filterStr:=filterStr+' and (P_chnName like '+quotedStr('%'+trim(edt_Name.Text)+'%')+
' or P_code like '+quotedStr('%'+trim(edt_Name.Text)+'%')+')';
end;
//规格
if trim(edt_spec.Text)<>'' then
filterStr:=filterStr+' and P_spec like '+quotedStr('%'+trim(edt_spec.Text)+'%');
try
ADOQueryHelp.DisableControls ;
if trim(filterStr)='' then
begin
ADOQueryHelp.Filtered:=false;
ADOQueryHelp.EnableControls;
exit;
end;
filterStr:=trim(RightBStr(filterStr,length(filterStr)-4));
with ADOQueryHelp do
begin
filtered:=false;
filter:=filterStr;
filtered:=true;
end;
CreateCDS20(ADOQueryHelp,CDS_Sel);
InitCDSData20(ADOQueryHelp,CDS_Sel);
finally
ADOQueryHelp.EnableControls;
end;
end;
procedure TfrmPbMfProductHelp.Edt_nameChange(Sender: TObject);
begin
DoFilter();
end;
procedure TfrmPbMfProductHelp.tv1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if tv1.Controller.FocusedColumn.Name='tv1Sel' then
begin
CDS_Sel.Edit;
if CDS_Sel.FieldByName('sel').AsBoolean=False then
CDS_Sel.FieldByName('sel').Value:=True
else
CDS_Sel.FieldByName('sel').Value:=False;
CDS_Sel.Post;
end;
end;
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,778 @@
unit U_PlanOrderPL;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ImgList, ComCtrls, ToolWin, ExtCtrls, BtnEdit, Grids,
DBGrids, DB, ADODB, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, cxDBData, cxGridLevel, cxClasses, cxControls,
cxGridCustomView, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxGrid, cxPC, cxGridCustomPopupMenu, cxGridPopupMenu,
cxTextEdit, cxCalendar, cxMemo, Buttons, DBClient, cxButtonEdit,
cxSplitter;
type
TfrmPlanOrderPL = class(TForm)
ToolBar3: TToolBar;
Tclose: TToolButton;
ImageList24: TImageList;
GroupBox1: TGroupBox;
ComboBox1: TComboBox;
begDate: TDateTimePicker;
endDate: TDateTimePicker;
Label2: TLabel;
edtPlan: TEdit;
Label3: TLabel;
ADOQueryPlan: TADOQuery;
DataSourcePlan: TDataSource;
Tfind: TToolButton;
ADOQueryCmd: TADOQuery;
Label4: TLabel;
P_chnName: TEdit;
Panel1: TPanel;
Tv1: TcxGridDBTableView;
dbGrid2Level1: TcxGridLevel;
dbGrid2: TcxGrid;
Tv1PlanNo: TcxGridDBColumn;
Tv1Deliver: TcxGridDBColumn;
Tv1exigence: TcxGridDBColumn;
Tv1p_num: TcxGridDBColumn;
Tv1p_chnname: TcxGridDBColumn;
Tv1customName: TcxGridDBColumn;
Tv1BusineesName: TcxGridDBColumn;
Tv1Busntime: TcxGridDBColumn;
Tv1statusName: TcxGridDBColumn;
Tv1P_unitName: TcxGridDBColumn;
v1P_Other: TcxGridDBColumn;
Edt_cust: TEdit;
v1P_tnum: TcxGridDBColumn;
cxTabControl1: TcxTabControl;
v1P_FQNo: TcxGridDBColumn;
v1P_YhNo: TcxGridDBColumn;
v1P_BaseChnName: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
v1P_Color: TcxGridDBColumn;
v1sbtr2: TcxGridDBColumn;
v1LbStr6: TcxGridDBColumn;
v1P_Csid: TcxGridDBColumn;
v1sid: TcxGridDBColumn;
ADOQueryTemp: TADOQuery;
cxGridPopupMenu1: TcxGridPopupMenu;
v1P_FactoryName: TcxGridDBColumn;
v1DhChk: TcxGridDBColumn;
v1PCSeqNo: TcxGridDBColumn;
TBPrint: TToolButton;
v1Vuserdef1: TcxGridDBColumn;
v1Crafts: TcxGridDBColumn;
TBExport: TToolButton;
v1CheckName: TcxGridDBColumn;
v1PCDate: TcxGridDBColumn;
v1BChkTime: TcxGridDBColumn;
TBView: TToolButton;
Label5: TLabel;
p_num1: TEdit;
Label6: TLabel;
p_num2: TEdit;
Label1: TLabel;
P_FQNo: TEdit;
Label7: TLabel;
P_YhNo: TEdit;
Label8: TLabel;
P_Color: TEdit;
Label9: TLabel;
P_BaseChnName: TEdit;
Label10: TLabel;
LbStr6: TEdit;
Label12: TLabel;
P_Csid: TEdit;
cxSplitter1: TcxSplitter;
ToolButton5: TToolButton;
v1PLTime: TcxGridDBColumn;
v1PLPerson: TcxGridDBColumn;
v1PCPerson: TcxGridDBColumn;
Panel2: TPanel;
ToolBar1: TToolBar;
btnAddDye: TToolButton;
btnDelDye: TToolButton;
btnSaveDye: TToolButton;
grdDye: TcxGrid;
grdDyeTV1: TcxGridDBTableView;
grdDyeTV1OrderId: TcxGridDBColumn;
grdDyeTV1chnName: TcxGridDBColumn;
grdDyeTV1DyeStyle: TcxGridDBColumn;
grdDyeTV1DyeUnitName: TcxGridDBColumn;
grdDyeTV1UnitdyeNum: TcxGridDBColumn;
grdDyeTV1stepId: TcxGridDBColumn;
grdDyeTV1beizhu: TcxGridDBColumn;
grdDyeL1: TcxGridLevel;
CDS_Sub: TClientDataSet;
AdoQuerySub: TADOQuery;
ds1: TDataSource;
grdDyeTV1Crafts: TcxGridDBColumn;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
procedure FormCreate(Sender: TObject);
procedure TcloseClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure TfindClick(Sender: TObject);
procedure rgSystypeClick(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure v1P_FQNoCustomDrawCell(Sender: TcxCustomGridTableView;
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
var ADone: Boolean);
procedure TBPrintClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure TBViewClick(Sender: TObject);
procedure p_num1KeyPress(Sender: TObject; var Key: Char);
procedure edtPlanChange(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure btnAddDyeClick(Sender: TObject);
procedure btnDelDyeClick(Sender: TObject);
procedure grdDyeTV1chnNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure grdDyeTV1CraftsPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure btnSaveDyeClick(Sender: TObject);
procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView;
APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord;
ANewItemRecordFocusingChanged: Boolean);
procedure grdDyeTV1UnitdyeNumPropertiesChange(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure grdDyeTV1beizhuPropertiesEditValueChanged(Sender: TObject);
private
procedure DoQuery();
procedure InitSubGrid();
function saveDye(): Boolean;
public
FPlanNo:string;
{ Public declarations }
end;
var
frmPlanOrderPL: TfrmPlanOrderPL;
implementation
uses
U_adodbmd,U_global, U_status,U_SelfForm,U_CxGridSet,
U_FormPas,U_plan,U_frameHelp10,U_XcCodeHelp,U_ItemManageNew,U_RhlHelp,
U_RhlHelpOne,U_GetXYHelp,U_GetPlanXYHelp;
{$R *.dfm}
procedure TfrmPlanOrderPL.FormCreate(Sender: TObject);
begin
ReadCxGrid('计划单配料信息',Tv1,'计划单');
dbgrid2.Align :=alClient;
begDate.DateTime :=SGetServerDate(ADOQueryTemp);
endDate.DateTime :=SGetServerDate(ADOQueryTemp);
DoQuery();
InitSubGrid();
end;
//////////////////////////////////////////////////
//函数:提交数据
//////////////////////////////////////////////////
procedure TfrmPlanOrderPL.DoQuery();
var
mwhere:string;
begin
if comboBox1.ItemIndex=0 then
begin
mwhere:=' and BusnTime>='''+dateTostr(begdate.Date)+''' and BusnTime<'''+dateTostr(endDate.Date+1)+'''';
end
else if comboBox1.ItemIndex=1 then
begin
mwhere:=' and deliver>='''+dateTostr(begdate.Date)+''' and deliver<'''+dateTostr(endDate.Date+1)+'''';
end
else if comboBox1.ItemIndex=2 then
begin
mwhere:=' and PCSCDate>='''+dateTostr(begdate.Date)+''' and PCSCDate<'''+dateTostr(endDate.Date+1)+'''';
end;
//计划单
if trim(edtPlan.Text)<>'' then
begin
mwhere:=mwhere+' and A.planNo like ''%'+trim(edtPlan.Text)+'%''';
end;
//客户
if trim(Edt_cust.Text)<>'' then
begin
mwhere:=mwhere+' and CustomNo like ''%'+trim(Edt_cust.Text)+'%''';
end;
//品种
if trim(P_chnName.Text)<>'' then
begin
mwhere:=mwhere+' and P_chnName like ''%'+trim(P_chnName.Text)+'%''';
end;
//产品编号
if trim(P_FQNo.Text)<>'' then
begin
mwhere:=mwhere+' and P_FQNo like ''%'+trim(P_FQNo.Text)+'%''';
end;
//纹路
if trim(P_YhNo.Text)<>'' then
begin
mwhere:=mwhere+' and P_YhNo like ''%'+trim(P_YhNo.Text)+'%''';
end;
//色号
if trim(P_Color.Text)<>'' then
begin
mwhere:=mwhere+' and P_Color like ''%'+trim(P_Color.Text)+'%''';
end;
//底布
if trim(P_BaseChnName.Text)<>'' then
begin
mwhere:=mwhere+' and P_BaseChnName like ''%'+trim(P_BaseChnName.Text)+'%''';
end;
//贝斯
if trim(LbStr6.Text)<>'' then
begin
mwhere:=mwhere+' and LbStr6 like ''%'+trim(LbStr6.Text)+'%''';
end;
//下达部门
if trim(gDef1)<>'' then
begin
mwhere:=mwhere+' and M.Dept ='''+trim(gDef1)+'''';
end;
//业务员
{if trim(BusineesName.Text)<>'' then
begin
mwhere:=mwhere+' and BusineesName like ''%'+trim(BusineesName.Text)+'%''';
end;}
//打样号
if trim(P_Csid.Text)<>'' then
begin
mwhere:=mwhere+' and P_Csid like ''%'+trim(P_Csid.Text)+'%''';
end;
if Trim(p_num1.Text)<>'' then
begin
mwhere:=mwhere+' and P_num >='+trim(p_num1.Text);
end;
if Trim(p_num2.Text)<>'' then
begin
mwhere:=mwhere+' and P_num <='+trim(p_num2.Text);
end;
try
panel1.Visible:=true;
panel1.Refresh;
ADOQueryPlan.DisableControls;
with ADOQueryPlan do
begin
close;
sql.Clear ;
sql.Add('EXEC P_Get_PlanListPL ');
sql.Add(' '+intTostr(cxTabControl1.TabIndex));
sql.Add(','+QuotedStr(formatDatetime('yyyy-MM-dd',begdate.Date)));
sql.Add(','+QuotedStr(formatDatetime('yyyy-MM-dd',(enddate.Date+1))));
sql.Add(','+quotedStr(mwhere));
Open;
end;
finally
panel1.Visible :=false;
ADOQueryPlan.EnableControls;
end;
end;
procedure TfrmPlanOrderPL.InitSubGrid();
begin
try
AdoQuerySub.DisableControls;
with AdoQuerySub do
begin
close;
sql.Clear ;
SQL.Add('select A.*,B.MName ChnName from MD_ProductPL A ');
SQL.Add(' JOIN Gy_Material B ON B.MNumber = A.Dyecode ');
SQL.Add('where PlanNo='''+Trim(ADOQueryPlan.fieldbyname('PlanNo').AsString)+'''');
sql.Add(' and P_SeqNo='''+Trim(ADOQueryPlan.fieldbyname('P_SeqNo').AsString)+'''');
sql.Add(' and Dept='''+Trim(ADOQueryPlan.fieldbyname('Dept').AsString)+'''');
Open;
CreateCDS20(AdoQuerySub,CDS_Sub);
InitCDSData20(AdoQuerySub,CDS_Sub);
end;
finally
AdoQuerySub.EnableControls;
end;
end;
procedure TfrmPlanOrderPL.TcloseClick(Sender: TObject);
begin
close;
WriteCxGrid('计划单配料信息',Tv1,'计划单');
end;
procedure TfrmPlanOrderPL.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmPlanOrderPL.FormDestroy(Sender: TObject);
begin
frmPlanOrderPL:=NIL;
end;
procedure TfrmPlanOrderPL.TfindClick(Sender: TObject);
begin
DoQuery();
end;
procedure TfrmPlanOrderPL.rgSystypeClick(Sender: TObject);
begin
DoQuery();
end;
procedure TfrmPlanOrderPL.cxTabControl1Change(Sender: TObject);
begin
{ if cxTabControl1.TabIndex=0 then
v1PCSeqNo.Visible:=False
else
v1PCSeqNo.Visible:=True;
if (cxTabControl1.TabIndex=1) or (cxTabControl1.TabIndex=2) then
begin
v1PCSeqNo.Options.Focusing:=True ;
Tv1exigence.Options.Focusing:=True;
end
else
begin
v1PCSeqNo.Options.Focusing:=False;
Tv1exigence.Options.Focusing:=False;
end; }
Tfind.Click ;
//ADOQueryPlan.Locate('PlanNo',FPlanNo,[]);
end;
procedure TfrmPlanOrderPL.v1P_FQNoCustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
id:Integer;
begin
begin
Id:=TV1.GetColumnByFieldName('SBtr3').Index;//;-TV1.GroupedItemCount;
if Id<0 then Exit;
if AViewInfo.GridRecord.Values[Id]='Red' then
begin
ACanvas.Brush.Color:=clRed;
end else
if AViewInfo.GridRecord.Values[Id]='Purple' then
begin
ACanvas.Brush.Color:=clPurple;
end else
if AViewInfo.GridRecord.Values[Id]='Olive' then
begin
ACanvas.Brush.Color:=clOlive;
end else
if AViewInfo.GridRecord.Values[Id]='Teal' then
begin
ACanvas.Brush.Color:=clTeal;
end else
if AViewInfo.GridRecord.Values[Id]='Background' then
begin
ACanvas.Brush.Color:=clBackground;
end;
end
end;
procedure TfrmPlanOrderPL.TBPrintClick(Sender: TObject);
begin
SelPrintDataNew(Tv1,ADOQueryPlan,'生 产 顺 序 表','日期:'+(FormatDateTime('yyyy-MM-dd',SGetServerDate(ADOQueryTemp))),'');
end;
procedure TfrmPlanOrderPL.FormShow(Sender: TObject);
begin
ReadCxGrid('计划单排产信息',Tv1,'计划单');
v1PCSeqNo.Visible:=True;
end;
procedure TfrmPlanOrderPL.TBExportClick(Sender: TObject);
begin
if ADOQueryPlan.IsEmpty then Exit;
TcxGridToExcel('生产顺序表',dbGrid2);
end;
procedure TfrmPlanOrderPL.TBViewClick(Sender: TObject);
begin
try
frmPlan:=TfrmPlan.Create(Application);
with frmPlan do
begin
fWinStatus:=5;
FplanNo:=Trim(Self.ADOQueryPlan.fieldbyname('PlanNo').AsString);
if ShowModal=1 then
begin
end;
end;
finally
frmPlan.Free;
end;
end;
procedure TfrmPlanOrderPL.p_num1KeyPress(Sender: TObject; var Key: Char);
begin
if not(Key in['0'..'9',#8,#27]) then
begin
key:=#0;
end;
end;
procedure TfrmPlanOrderPL.edtPlanChange(Sender: TObject);
begin
DoQuery();
end;
procedure TfrmPlanOrderPL.ToolButton5Click(Sender: TObject);
var
splanNo:string;
begin
frmPlan:=TfrmPlan.create(self);
with frmPlan do
begin
fWinStatus:=1;
FplanNo:=trim(ADOQueryPlan.fieldByName('PlanNo').asString);
planNo.Enabled:=False;
showModal;
free;
end;
splanno:=trim(ADOQueryPlan.fieldByName('PlanNo').asString);
DoQuery();
ADOQueryPlan.Locate('planno',splanno,[]);
end;
procedure TfrmPlanOrderPL.btnAddDyeClick(Sender: TObject);
var
mStepId: Integer;
begin
if ADOQueryPlan.IsEmpty then Exit;
if CDS_Sub.IsEmpty then
begin
mStepId := 1;
end
else
begin
CDS_Sub.Last ;
mStepId := CDS_Sub.FieldByName('stepId').AsInteger;
end;
frmRhlHelp := TfrmRhlHelp.Create(Application);
with frmRhlHelp do
begin
if ShowModal = 1 then
begin
with CDS_sel do
begin
try
DisableControls;
First ;
while not Eof do
begin
CDS_Sub.Append;
CDS_Sub.FieldByName('stepId').Value:=mStepId;
CDS_Sub.FieldByName('OrderId').Value:= CDS_Sub.RecordCount+1;
CDS_Sub.FieldByName('DyeCode').Value :=trim(FieldByName('DyeCode').AsString);
CDS_Sub.FieldByName('chnName').Value :=trim(FieldByName('chnName').AsString);
CDS_Sub.FieldByName('DyeStyle').Value :=FieldByName('DyepropertyName').AsString;
CDS_Sub.FieldByName('Unit').Value :=FieldByName('DyeUnitName').AsString;
CDS_Sub.Post;
Next;
end;
finally
EnableControls;
end;
end;
end;
Release;
end;
btnSaveDye.Enabled:=True;
end;
procedure TfrmPlanOrderPL.btnDelDyeClick(Sender: TObject);
begin
if CDS_Sub.IsEmpty then Exit;
if Trim(CDS_Sub.fieldbyname('PLID').AsString)<>'' then
begin
if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete MD_ProductPL where PLID='''+Trim(CDS_Sub.fieldbyname('PLID').AsString)+'''');
ExecSQL;
end;
end;
CDS_Sub.Delete;
end;
procedure TfrmPlanOrderPL.grdDyeTV1chnNamePropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
begin
if ADOQueryPlan.IsEmpty then Exit;
frmRhlHelpOne := TfrmRhlHelpOne.Create(Application);
with frmRhlHelpOne do
begin
if ShowModal = 1 then
begin
CDS_Sub.Edit;
CDS_Sub.FieldByName('DyeCode').Value :=trim(ADOQueryFrom.FieldByName('MNumber').AsString);
CDS_Sub.FieldByName('chnName').Value :=trim(ADOQueryFrom.FieldByName('MName').AsString);
CDS_Sub.FieldByName('DyeStyle').Value :=ADOQueryFrom.FieldByName('kfsortname').AsString;
CDS_Sub.FieldByName('Unit').Value :=ADOQueryFrom.FieldByName('PrimaryUnitName').AsString;
end;
Release;
end;
btnSaveDye.Enabled:=True;
end;
procedure TfrmPlanOrderPL.grdDyeTV1CraftsPropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
begin
try
frmItemManageNew:=TfrmItemManageNew.Create(Application);
with frmItemManageNew do
begin
flag:='JGXMTYPE';
flagname:='工序';
if ShowModal=1 then
begin
CDS_Sub.Edit;
CDS_Sub.FieldByName('Crafts').Value:=Trim(ClientDataSet1.fieldbyname('name').AsString);
//CDSDye.Post;
end;
end;
finally
frmItemManageNew.Free;
end;
btnSaveDye.Enabled:=True;
end;
function TfrmPlanOrderPL.saveDye(): Boolean;
var
k:integer;
MaxNo:String;
begin
try
ADOQueryCmd.Connection.BeginTrans;
CDS_Sub.First;
k := 1;
while not CDS_Sub.Eof do
begin
if Trim(CDS_Sub.fieldbyname('PLId').AsString)<>'' then
begin
MaxNo:=Trim(CDS_Sub.fieldbyname('PLId').AsString);
end else
begin
if GetMaxNo20(ADOQueryTemp,MaxNo,'MD_ProductPL','PL',1,3)=False then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('取最大号失败!','提示',0);
Exit;
end;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM MD_ProductPL');
SQL.Add('WHERE PlID='''+Trim(CDS_Sub.fieldbyname('PlID').AsString)+'''');
Open;
end;
with ADOQueryCmd do
begin
if Trim(CDS_Sub.FieldByName('PlID').AsString)='' then
Append
else
Edit;
FieldByName('PLID').Value := Trim(MaxNo);
FieldByName('PlanNo').Value := Trim(ADOQueryPlan.FieldByName('PlanNo').AsString);
FieldByName('P_SeqNo').Value :=Trim(ADOQueryPlan.FieldByName('P_SeqNo').AsString);
FieldByName('Dept').Value :=Trim(ADOQueryPlan.FieldByName('Dept').AsString);
FieldByName('dyeCode').Value :=CDS_Sub.FieldByName('DyeCode').AsString;
FieldByName('DyeStyle').Value :=CDS_Sub.FieldByName('DyeStyle').AsString;
FieldByName('stepId').Value :=CDS_Sub.FieldByName('stepId').AsInteger;
FieldByName('OrderID').Value :=k;
FieldByName('Unit').Value :=CDS_Sub.FieldByName('Unit').AsString ;
FieldByName('UnitDyeNum').Value :=CDS_Sub.FieldByName('UnitDyeNum').AsFloat ;
FieldByName('Crafts').Value :=trim(CDS_Sub.FieldByName('Crafts').asString);
FieldByName('beizhu').Value :=trim(CDS_Sub.FieldByName('BeiZhu').asString);
if Trim(CDS_Sub.FieldByName('PlanNo').AsString)='' then
begin
FieldByName('Filler').Value:=Trim(gUserName);
end else
begin
FieldByName('Editer').Value:=Trim(gUserName);
FieldByName('EditTime').Value:=GetServerTime10(ADOQueryTemp);
end;
Post;
end;
Inc(k);
CDS_Sub.Next;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update MD_ProductPC Set PLFlag=1,PLPerson='''+Trim(gUserName)+'''');
sql.Add(' ,PLTime=getdate() ');
sql.Add(' where PCID='''+Trim(ADOQueryPlan.fieldbyname('PCID').AsString)+'''');
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
Result := True;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('保存失败!', '提示', MB_ICONSTOP);
Result := False;
end;
end;
procedure TfrmPlanOrderPL.btnSaveDyeClick(Sender: TObject);
begin
if CDS_Sub.Locate('chnName',null,[]) then
begin
Application.MessageBox('所选材料不能为空!','提示',0);
Exit;
end;
if CDS_Sub.Locate('UnitdyeNum',null,[]) then
begin
Application.MessageBox('配方数不能为空!','提示',0);
Exit;
end;
if saveDye() then
begin
Application.MessageBox('数据保存成功!','提示',0);
btnSaveDye.Enabled:=false;
Tfind.Click;
end;
end;
procedure TfrmPlanOrderPL.Tv1FocusedRecordChanged(
Sender: TcxCustomGridTableView; APrevFocusedRecord,
AFocusedRecord: TcxCustomGridRecord;
ANewItemRecordFocusingChanged: Boolean);
begin
InitSubGrid();
end;
procedure TfrmPlanOrderPL.grdDyeTV1UnitdyeNumPropertiesChange(
Sender: TObject);
begin
btnSaveDye.Enabled:=True;
end;
procedure TfrmPlanOrderPL.ToolButton1Click(Sender: TObject);
var
mStepId: Integer;
begin
if ADOQueryPlan.IsEmpty then Exit;
if CDS_Sub.IsEmpty then
begin
mStepId := 1;
end
else
begin
CDS_Sub.Last ;
mStepId := CDS_Sub.FieldByName('stepId').AsInteger;
end;
try
frmGetXYHelp:=TfrmGetXYHelp.Create(Application);
with frmGetXYHelp do
begin
DYCode.Text:=Trim(ADOQueryPlan.fieldbyname('P_Csid').AsString);
if ShowModal=1 then
begin
with ADOQueryDY do
begin
try
DisableControls;
First ;
while not Eof do
begin
CDS_Sub.Append;
CDS_Sub.FieldByName('stepId').Value:=mStepId;
CDS_Sub.FieldByName('OrderId').Value:= CDS_Sub.RecordCount+1;
CDS_Sub.FieldByName('DyeCode').Value :=trim(FieldByName('DyeCode').AsString);
CDS_Sub.FieldByName('chnName').Value :=trim(FieldByName('chnName').AsString);
CDS_Sub.FieldByName('DyeStyle').Value :=FieldByName('DyeStyle').AsString;
CDS_Sub.FieldByName('Unit').Value :=FieldByName('DyeUnit').AsString;
CDS_Sub.FieldByName('Crafts').Value:=FieldByName('GXMC').AsString;
CDS_Sub.FieldByName('Beizhu').Value:=FieldByName('Beizhu').AsString;
CDS_Sub.FieldByName('UnitdyeNum').Value:=FieldByName('UnitdyeNum').AsString;
CDS_Sub.Post;
Next;
end;
finally
EnableControls;
end;
end;
end;
end;
finally
frmGetXYHelp.Free;
end;
end;
procedure TfrmPlanOrderPL.ToolButton2Click(Sender: TObject);
var
mStepId: Integer;
begin
if ADOQueryPlan.IsEmpty then Exit;
if CDS_Sub.IsEmpty then
begin
mStepId := 1;
end
else
begin
CDS_Sub.Last ;
mStepId := CDS_Sub.FieldByName('stepId').AsInteger;
end;
try
frmGetPlanXYHelp:=TfrmGetPlanXYHelp.Create(Application);
with frmGetPlanXYHelp do
begin
PlanNO.Text:=Trim(Self.ADOQueryPlan.fieldbyname('sid').AsString);
P_Color.Text:=Trim(Self.ADOQueryPlan.fieldbyname('P_Color').AsString);
if ShowModal=1 then
begin
with ADOQueryDY do
begin
try
DisableControls;
First ;
while not Eof do
begin
CDS_Sub.Append;
CDS_Sub.FieldByName('stepId').Value:=mStepId;
CDS_Sub.FieldByName('OrderId').Value:= CDS_Sub.RecordCount+1;
CDS_Sub.FieldByName('DyeCode').Value :=trim(FieldByName('DyeCode').AsString);
CDS_Sub.FieldByName('chnName').Value :=trim(FieldByName('chnName').AsString);
CDS_Sub.FieldByName('DyeStyle').Value :=FieldByName('DyeStyle').AsString;
CDS_Sub.FieldByName('Unit').Value :=FieldByName('Unit').AsString;
CDS_Sub.FieldByName('Crafts').Value:=FieldByName('Crafts').AsString;
CDS_Sub.FieldByName('Beizhu').Value:=FieldByName('Beizhu').AsString;
CDS_Sub.FieldByName('UnitdyeNum').Value:=FieldByName('UnitdyeNum').AsString;
CDS_Sub.Post;
Next;
end;
finally
EnableControls;
end;
end;
end;
end;
finally
frmGetPlanXYHelp.Free;
end;
btnSaveDye.Enabled:=True;
end;
procedure TfrmPlanOrderPL.grdDyeTV1beizhuPropertiesEditValueChanged(
Sender: TObject);
begin
btnSaveDye.Enabled:=True;
end;
end.

View File

@ -0,0 +1,726 @@
unit U_RSFormPas;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, StdCtrls, BtnEdit, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit,DBGrids, DB, cxDBData,
cxGridLevel, cxClasses, cxControls, cxGridCustomView, ADODB,StrUtils,
Midas,cxGridCustomTableView, cxGridTableView, cxGridDBTableView,cxTimeEdit,
cxTreeView, cxGrid,cxDBLookupComboBox,cxCalendar, cxCurrencyEdit,cxExportGrid4Link,
ExtCtrls, Buttons,DBClient,FTComboBox,cxDropDownEdit,RM_GridReport;
type
TA = class(TComponent)
public
S:string;
end;
procedure InitTree(ADOQueryTemp:TADOQuery;TreeView1:TcxTreeView);
procedure InitChildTree(ADOQueryTemp:TADOQuery;TreeView1:TcxTreeView);
function GetRoot(node:TTreeNode):TTreeNode;
function TreeFiltered(ADOQueryTemp:TADOQuery;TreeStr:string):string;
function TreeSelect(TreeStr:string;ADOQueryTemp:TADOQuery):string;
procedure Dofilter(ADOQueryMain:TADOQuery;TreeFilter:string);
procedure InitCombox(ADOQueryTemp: TADOQuery;FState:Integer;CB1:TComboBox;FFlag:string);
function DelData(ADOQueryMain,ADOQueryCmd:TADOQuery;FStr:String):Boolean;
//procedure InitData(ADOQueryMain:TADOQuery);
//procedure KeyPress(Sender: TObject;Key: Char);
procedure InitData(ADOQueryMain:TADOQuery;mParent:TWinControl;FTag:Integer);
procedure Initcomponents(mParent:TWinControl);
function GetDate(FDate:TDateTime):TDateTime;
procedure GetDate10(FPanel:TWinControl);
procedure SetDataNull(mParent:TWinControl);
procedure Setsavedata(ADOQueryCmd:TADOQuery;MyTable:string;
Myparent:TWinControl;MyTag:integer);
procedure SelMember(Selmem:TBtnEditA);
procedure Seldept(Selmem:TBtnEditA);
function GetTime(FTime:TDateTime):TTime;
procedure InitCDSData30(fromADO:TADOQuery;toCDS:TClientDataSet;
ProgressBar1:TProgressBar);
procedure InitFtComBoxByCustCode(ADOQueryTmp:TADOQuery;
cb: TFtComboBox;FlagType:string;
Boxtype:integer;
showMsg:string;
emptyFlag:Boolean;
isClearOld:boolean
);
procedure InitComBoxByCustCode(ADOQueryTmp:TADOQuery;
cb: TComboBox;FlagType:string;
Boxtype:integer;
showMsg:string;
emptyFlag:Boolean
);
procedure PrintRM(ADOQueryMain:TADOQuery;RMname:string;RM1:TRMGridReport);
implementation
uses U_global,U_StuffHelp,U_frameHelp;
///////////////////////////////////////////////////////
///// 函数功能:初始化一级树
//////////////////////////////////////////////////////
procedure InitTree(ADOQueryTemp:TADOQuery;TreeView1:TcxTreeView);
var
aNode:TTreeNode;
j:integer;
kind:string;
begin
with ADOQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add('select * from Xc_CustCode where Flag=''PStatus''');
Open;
end;
ADOQueryTemp.First;
for j:=0 to ADOQueryTemp.RecordCount-1 do
begin
kind:='所有'+Trim(ADOQueryTemp.FieldByName('name').AsString)+'员工';
aNode:=TreeView1.Items.AddChild(nil,kind) ;
ADOQueryTemp.Next;
end;
end;
///////////////////////////////////////////////
///函数功能:初始化子树
//////////////////////////////////////////////
procedure InitChildTree(ADOQueryTemp:TADOQuery;TreeView1:TcxTreeView);
var
kind:string;
Node:TTreeNode;
i:integer;
begin
if TreeView1.Selected.HasChildren then
begin
Exit;
end;
Node:=TreeView1.Selected;
i:=0;
while((Node<>nil)and(Node.Parent<>nil)) do
begin
Node:=Node.Parent;
i:=i+1;
end;
if TreeView1.Selected.Parent<>nil then
begin
kind:=Trim(TreeView1.Selected.Text);
with ADOQueryTemp do
begin
close;
SQL.Clear;
SQL.Add('select * from Yc_Frame where framename='''+kind+'''');
Open;
kind:=Trim(fieldbyname('frameno').AsString);
end;
end;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add('select * from Yc_Frame where frameLevel=:i');
Parameters.ParamByName('i').Value:=i+1;
if TreeView1.Selected.Parent<>nil then
SQL.Add('and frameno like '+QuotedStr('%'+kind+'%'));
Open;
end;
with ADOQueryTemp do
begin
First;
while not Eof do
begin
kind:='';
kind:=fieldbyname('framename').AsString;
node:=TreeView1.Items.AddChild(TreeView1.Selected,kind);
Next;
end;
end;
end;
////////////////////////////////
//// 函数功能:获得根节点
///////////////////////////////
function GetRoot(node:TTreeNode):TTreeNode;
begin
Result:=node;
while((Result <> nil) and (Result.Parent <> nil)) do
Result:= Result.Parent;
end;
//////////////////////////////////////
/// 函数功能:汇总过滤条件进行过滤
/////////////////////////////////////
function TreeFiltered(ADOQueryTemp:TADOQuery;TreeStr:string):string;
var
TreeFilter:string;
begin
result:='';
with ADOQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add('select * from Yc_Frame where framename='''+TreeStr+'''');
Open;
TreeStr:=Trim(fieldbyname('frameNo').AsString);
end;
TreeFilter:=' and Dept like'+' '+'%'+TreeStr+'%';
//TreeFilter:=' and Dept like'''+'%'+TreeStr+'%'+'''';
result:=TreeFilter;
end;
function GetDate(FDate:TDateTime):TDateTime;
begin
result:=StrToDate(FormatDateTime('yyyy-MM-dd',FDate));
end;
function GetTime(FTime:TDateTime):TTime;
begin
result:=StrTotime(FormatDateTime('HH:mm:ss',FTime));
end;
/////////////////////////////
//函数功能:获得根节点
///////////////////////////
function TreeSelect(TreeStr:string;ADOQueryTemp:TADOQuery):string;
var
TreeFilter:string;
begin
result:='';
TreeStr:=Copy(TreeStr,5,4);
with ADOQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add('select * from Xc_CustCode where name='''+TreeStr+''' and flag=''PStatus''');
Open;
TreeStr:=Trim(fieldbyname('code').AsString);
end;
TreeFilter:=' PStatus='''+TreeStr+'''';
result:=TreeFilter;
end;
////////////////////////////
/// 函数功能:过滤
///////////////////////////
procedure Dofilter(ADOQueryMain:TADOQuery;TreeFilter:string);
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
if Trim(TreeFilter)='' then
begin
Filtered:=False;
EnableControls;
end else
begin
Filtered:=False;
Filter:=TreeFilter;
Filtered:=True;
end;
end;
finally
ADOQueryMain.EnableControls;
end;
end;
/////////////////////////////////////////////
///函数功能初始化combobox 【XC_CustCode】
////////////////////////////////////////////
procedure InitCombox(ADOQueryTemp: TADOQuery;FState:Integer;CB1:TComboBox;FFlag:string);
var
A:TA;
begin
CB1.Items.Clear;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add(' select * from XC_CustCode');
SQL.Add(' where Flag='''+trim(FFlag)+''' ');
SQL.Add(' And Valid=''Y''');
SQL.Add(' order by orderno ');
Open;
if IsEmpty then
begin
Application.MessageBox(PChar('定义XC_CustCode Flag='+FFlag),'提示',0);
Exit;
end;
while not Eof do
begin
A:=TA.Create(nil);
A.S:=trim(fieldByName('Code').AsString);
if FState=0 then
begin
CB1.Items.AddObject((Trim(fieldbyname('name').AsString)),TObject(a));
Next;
end else
begin
CB1.Items.AddObject((Trim(fieldbyname('code').AsString)),TObject(a));
Next;
end;
end;
end;
end;
//////////////////////////////////////////////
//////函数功能根据SQL语句删除数据
//////////////////////////////////////////////
function DelData(ADOQueryMain,ADOQueryCmd:TADOQuery;FStr:String):Boolean;
begin
try
result:=False;
if ADOQueryMain.IsEmpty then Exit;
if Application.MessageBox('确定要删除数据吗?','提示',MB_YESNO+MB_ICONSTOP)<>IDYES then
begin
Exit;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add(FStr);
ExecSQL;
end;
result:=True;
except
result:=False;
Application.MessageBox('数据删除失败!','提示',0);
end;
end;
//////////////////////////////////
///函数功能:初始化数据
//////////////////////////////////
procedure InitData(ADOQueryMain:TADOQuery;mParent:TWinControl;FTag:Integer);
var
i:Integer;
begin
with mParent do
begin
for i:=0 to ControlCount-1 do
begin
if Controls[i] is TLabel then Continue;
if Controls[i].Tag=FTag then
begin
if (Controls[i] is TEdit) then
begin
if Controls[i].Name='name1' then
TEdit(Controls[i]).Text:=Trim(ADOQueryMain.fieldbyname('name').AsString)
else
TEdit(Controls[i]).Text:=Trim(ADOQueryMain.fieldbyname(Controls[i].Name).AsString);
end else
if (Controls[i] is TRichEdit) then
begin
TRichEdit(Controls[i]).Text:=Trim(ADOQueryMain.fieldbyname(Controls[i].Name).AsString);
end else
if (Controls[i] is TFTComboBox) then
begin
TFTComboBox(Controls[i]).ItemIndex:=TFTComboBox(Controls[i]).IndexOfItem2(Trim(ADOQueryMain.fieldbyname(Controls[i].Name).AsString));
end else
if (Controls[i] is TComboBox) then
begin
TComboBox(Controls[i]).ItemIndex:=TComboBox(Controls[i]).Items.IndexOf(Trim(ADOQueryMain.fieldbyname(Controls[i].Name).AsString));
end else
if (Controls[i] is TDateTimePicker) then
begin
if Trim(ADOQueryMain.fieldbyname(Controls[i].Name).AsString)<>'' then
begin
if TDateTimePicker(Controls[i]).ShowCheckbox then
TDateTimePicker(Controls[i]).Checked:=True;
TDateTimePicker(Controls[i]).DateTime:=ADOQueryMain.fieldbyname(Controls[i].Name).AsDateTime;
end else
begin
if TDateTimePicker(Controls[i]).ShowCheckbox then
TDateTimePicker(Controls[i]).Checked:=False;
end;
end else
if (Controls[i] is TBtnEditA) then
begin
if Controls[i].Name='name1' then
TBtnEditA(Controls[i]).Text:=Trim(ADOQueryMain.fieldbyname('name').AsString)
else
if Controls[i].Name='code' then
begin
TBtnEditA(Controls[i]).Text:=Trim(ADOQueryMain.fieldbyname('code').AsString);
TBtnEditA(Controls[i]).TxtCode:=Trim(ADOQueryMain.fieldbyname('code').AsString);
end
else
begin
TBtnEditA(Controls[i]).TxtCode:=Trim(ADOQueryMain.fieldbyname(Controls[i].Name).AsString);
TBtnEditA(Controls[i]).Text:=Trim(ADOQueryMain.fieldbyname(Controls[i].Name+'1').AsString);
end;
end;
end;
end;
end;
end;
procedure SetDataNull(mParent:TWinControl);
var
i:integer;
begin
with mParent do
begin
for i:=0 to ControlCount-1 do
begin
//if Controls[i].Tag=1 then
//begin
if Controls[i] is TLabel then Continue;
if (Controls[i] is TEdit) then
begin
TEdit(Controls[i]).Text:='';
end else
if (Controls[i] is TRichEdit) then
begin
TRichEdit(Controls[i]).Text:='';
end else
if (Controls[i] is TComboBox) then
begin
TComboBox(Controls[i]).ItemIndex:=-1;
end else
if (Controls[i] is TDateTimePicker) then
begin
if TDateTimePicker(Controls[i]).Kind=dtkdate then
TDateTimePicker(Controls[i]).DateTime:=GetDate(Now)
else
TDateTimePicker(Controls[i]).Time:=GetTime(Now);
end else
if (Controls[i] is TBtnEditA) then
begin
TBtnEditA(Controls[i]).Text:='';
TBtnEditA(Controls[i]).TxtCode:='';
end;
//end;
end;
end;
end;
////////////////////////////////////
///函数功能:按回车跳到下一个控件
///////////////////////////////////
{procedure KeyPress(Sender: TObject;Key: Char);
begin
if Key=#13 then
begin
FindNextControl(TWinControl(sender),True,True,False).SetFocus;
end;
end;}
/////////////////////////////////////
/// 函数功能:初始化控件状态
////////////////////////////////////
procedure Initcomponents(mParent:TWinControl);
var
i:Integer;
begin
with mParent do
begin
for i:=0 to ControlCount-1 do
begin
if Controls[i] is TLabel then Continue;
if (Controls[i] is TEdit) then
begin
TEdit(Controls[i]).Enabled:=False;
end else
if (Controls[i] is TRichEdit) then
begin
TRichEdit(Controls[i]).Enabled:=False;
end else
if (Controls[i] is TComboBox) then
begin
TComboBox(Controls[i]).Enabled:=False;
end else
if (Controls[i] is TDateTimePicker) then
begin
TDateTimePicker(Controls[i]).Enabled:=False;
end else
if (Controls[i] is TButton) then
begin
TButton(Controls[i]).Enabled:=False;
end else
if (Controls[i] is TToolButton) then
begin
TToolButton(Controls[i]).Visible:=False;
end else
if (Controls[i] is TBtnEditA) then
begin
TBtnEditA(Controls[i]).Enabled:=False;
end;
end;
end;
end;
procedure GetDate10(FPanel:TWinControl);
var
i:Integer;
begin
with FPanel do
begin
for i:=0 to ControlCount-1 do
begin
if not(Controls[i] is TLabel) then Continue;
if (Controls[i] is TDateTimePicker) then
begin
if TDateTimePicker(Controls[i]).Kind=dtkdate then
begin
TDateTimePicker(Controls[i]).DateTime:=StrToDate(FormatDateTime('yyyy-MM-dd',now));
if TDateTimePicker(Controls[i]).ShowCheckbox then
TDateTimePicker(Controls[i]).Checked:=False;
end
else
TDateTimePicker(Controls[i]).Time:=StrToTime(FormatDateTime('HH:mm:ss',now));
end;
end;
end;
end;
///////////////////////////////////
/////设置保存数据时字段赋值代码
//////////////////////////////////
procedure Setsavedata(ADOQueryCmd:TADOQuery;MyTable:string;
Myparent:TWinControl;MyTag:integer);
var
i:Integer;
begin
with Myparent do
begin
for i:=0 to ControlCount-1 do
begin
if Controls[i].Tag=MyTag then
begin
if Controls[i] is TEdit then
begin
if Controls[i].Name='name1' then
ADOQueryCmd.FieldByName('name').Value:=Trim(TEdit(Controls[i]).Text)
else
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Trim(TEdit(Controls[i]).Text);
end else
if Controls[i] is TRichEdit then
begin
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=TRichEdit(Controls[i]).Text;
end else
if Controls[i] is TFTComboBox then
begin
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Trim(TFTComboBox(Controls[i]).Item2);
end else
if Controls[i] is TComboBox then
begin
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Trim(TComboBox(Controls[i]).Text);
end else
if Controls[i] is TDateTimePicker then
begin
if TDateTimePicker(Controls[i]).ShowCheckbox then
begin
if TDateTimePicker(Controls[i]).Checked then
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=GetDate(TDateTimePicker(Controls[i]).DateTime);
end else
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=GetDate(TDateTimePicker(Controls[i]).DateTime);
end else
if Controls[i] is TBtnEditA then
begin
if Controls[i].Name='name1' then
ADOQueryCmd.FieldByName('name').Value:=Trim(TBtnEditA(Controls[i]).Text)
else
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Trim(TBtnEditA(Controls[i]).TxtCode);
end;
end;
end;
end;
end;
procedure SelMember(Selmem:TBtnEditA);
begin
try
frmStuffHelp:=TfrmStuffHelp.Create(Application);
with frmStuffHelp do
begin
frmStuffHelp.Position:=poScreenCenter;
if ShowModal=1 then
begin
Selmem.TxtCode:=Trim(ADOQueryHelp.fieldbyname('code').AsString);
Selmem.Text:=Trim(ADOQueryHelp.fieldbyname('name').AsString);
end;
end;
finally
frmStuffHelp.Free;
end;
end;
procedure Seldept(Selmem:TBtnEditA);
begin
try
frmFrameHelp:=TfrmFrameHelp.Create(Application);
with frmFrameHelp do
begin
frmFrameHelp.Position:=poScreenCenter;
if ShowModal=1 then
begin
Selmem.TxtCode:=Trim(ADOQueryHelp.fieldbyname('frameno').AsString);
Selmem.Text:=Trim(ADOQueryHelp.fieldbyname('framename').AsString);
end;
end;
finally
frmFrameHelp.Free;
end;
end;
////////////////////////
//增加进度条
///////////////////////
procedure InitCDSData30(fromADO:TADOQuery;toCDS:TClientDataSet;
ProgressBar1:TProgressBar);
var
i:integer;
k:integer;
j:Integer;
begin
if fromADO.IsEmpty then exit;
fromADO.first;
j:=1;
K:=1;
try
toCDS.DisableControls;
toCDS.Filtered:=false;
ProgressBar1.Min:=0;
while not fromADO.Eof do
begin
with toCDS do
begin
Append;
for i:=0 to fromADO.FieldCount-1 do
begin
fields[i].value:=fromADO.Fields[i].Value ;
end;
ProgressBar1.Visible:=True;
ProgressBar1.Max:=fromADO.FieldCount*10;
ProgressBar1.Position:=j;
fieldByName('flag').AsString :='1';
fieldByName('index').value :=k;
fieldByName('sel').value :=false;
//Application.ProcessMessages;
sleep(1);
inc(k);
Post;
end;
fromADO.Next;
j:=j+1;
end;
ProgressBar1.Visible:=False;
if not toCDS.IsEmpty then
begin
toCDS.First ;
end;
finally
toCDS.EnableControls;
end;
end;
procedure PrintRM(ADOQueryMain:TADOQuery;RMname:string;RM1:TRMGridReport);
var
fPrintFile:string;
begin
if ADOQueryMain.IsEmpty then Exit;
fPrintFile := ExtractFilePath(Application.ExeName)+RMname ;
begin
if FileExists(fPrintFile) then
begin
RM1.Clear;
RM1.LoadFromFile(fPrintFile);
RM1.ShowReport;
end
else
begin
Application.MessageBox(PChar('没有定义打印格式文件!不能完成打印' + #13+ fPrintFile),'提示',0);
Exit ;
end ;
end;
end;
//////////////////////////////////////////////
//函数初试化combox中的数据
//从XC_CustCode表中取定义数据
//Boxtype:0; 带编号:1;
//emptyFlag是否默认为空
//isClearOld:清除原有的项目
//////////////////////////////////////////////
procedure InitFtComBoxByCustCode(ADOQueryTmp:TADOQuery;
cb: TFtComboBox;FlagType:string;
Boxtype:integer;
showMsg:string;
emptyFlag:Boolean;
isClearOld:boolean
);
var
A:TA;
begin
if isClearOld then
cb.Items.Clear ;
with ADOQueryTmp do
begin
close;
sql.clear;
sql.Add('exec P_Get_XC_Custcode');
sql.Add(quotedStr(trim(flagType)));
Open;
if isEmpty then
begin
application.MessageBox(pChar('基础设置中未找到:'+showMsg),'',0);
exit;
end;
while not EOF do
begin
if Boxtype=0 then
begin
cb.Items.Add(trim(fieldByName('name').AsString));
end
else
begin
cb.AddItem2(trim(fieldByName('name').AsString),nil,trim(fieldByName('code').AsString));
end;
next;
end;
if not emptyFlag then
cb.Items.Add('');
if emptyFlag and (cb.Items.Count >0) then
cb.ItemIndex :=0;
end;
end;
//////////////////////////////////////////////
//函数初试化combox中的数据
//从XC_CustCode表中取定义数据
//Boxtype:0; 带编号:1;
//////////////////////////////////////////////
procedure InitComBoxByCustCode(ADOQueryTmp:TADOQuery;
cb: TComboBox;FlagType:string;
Boxtype:integer;
showMsg:string;
emptyFlag:Boolean
);
var
A:TA;
begin
cb.Items.Clear ;
with ADOQueryTmp do
begin
close;
sql.clear;
sql.Add('exec P_Get_XC_Custcode');
sql.Add(quotedStr(trim(flagType)));
Open;
if isEmpty then
begin
application.MessageBox(pChar('未找到:'+showMsg),'',0);
exit;
end;
while not EOF do
begin
if Boxtype=0 then
begin
cb.Items.Add(trim(fieldByName('name').AsString));
end
else
begin
A := TA.Create(Nil);
A.s:= trim(fieldByName('code').AsString);
cb.Items.AddObject(trim(fieldByName('name').AsString),TObject(a));
end;
next;
end;
if not emptyFlag then
cb.Items.Add('');
if emptyFlag and (cb.Items.Count >0) then
cb.ItemIndex :=0;
end;
end;
end.

View File

@ -0,0 +1,104 @@
object frmSelExportField: TfrmSelExportField
Left = 473
Top = 162
BorderStyle = bsDialog
Caption = #23383#27573#23548#20986#36873#25321
ClientHeight = 493
ClientWidth = 430
Color = clBtnFace
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
OnClose = FormClose
OnDestroy = FormDestroy
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 12
object Button1: TButton
Left = 94
Top = 456
Width = 75
Height = 25
Caption = #30830#23450
TabOrder = 0
OnClick = Button1Click
end
object Button2: TButton
Left = 243
Top = 456
Width = 75
Height = 25
Caption = #20851#38381
TabOrder = 1
OnClick = Button2Click
end
object cxGrid1: TcxGrid
Left = 425
Top = 63
Width = 281
Height = 113
TabOrder = 2
Visible = False
object ExpGrid: TcxGridDBTableView
NavigatorButtons.ConfirmDelete = False
DataController.DataSource = ExportDataSource
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <>
DataController.Summary.SummaryGroups = <>
OptionsBehavior.AlwaysShowEditor = True
OptionsView.GroupByBox = False
end
object cxGrid1Level1: TcxGridLevel
GridView = ExpGrid
end
end
object Panel2: TScrollBox
Left = 2
Top = 0
Width = 423
Height = 438
HorzScrollBar.Visible = False
Color = clSkyBlue
ParentColor = False
TabOrder = 3
object Label4: TLabel
Left = 158
Top = 9
Width = 60
Height = 14
Caption = #23383#27573#36873#25321
Font.Charset = GB2312_CHARSET
Font.Color = clRed
Font.Height = -14
Font.Name = #23435#20307
Font.Style = [fsBold]
ParentFont = False
end
end
object CheckBox1: TCheckBox
Left = 20
Top = 449
Width = 49
Height = 17
Caption = #20840#36873
TabOrder = 4
OnClick = CheckBox1Click
end
object CheckBox2: TCheckBox
Left = 20
Top = 465
Width = 49
Height = 17
Caption = #20840#24323
TabOrder = 5
OnClick = CheckBox2Click
end
object ExportDataSource: TDataSource
Left = 424
Top = 233
end
end

View File

@ -0,0 +1,272 @@
unit U_SelExportField;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, RM_FormReport, RM_PDBGrid,
DB,IniFiles, RM_Common, RM_Class, RM_e_Xls, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData,
cxGridLevel, cxClasses, cxControls, cxGridCustomView,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid;
type
TfrmSelExportField = class(TForm)
Button1: TButton;
Button2: TButton;
ExportDataSource: TDataSource;
ExpGrid: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
Panel2: TScrollBox;
Label4: TLabel;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
private
procedure CreateCheckBox();
procedure ExportData();
procedure ReadINIFile(fieldname:string);
procedure WriteINIFile(fieldname:string);
Function IsINIFile(fieldname:string):Boolean;
procedure GetExportFields();
procedure IsCheck();
{ Private declarations }
public
ExportFields,IniName:string;
{ Public declarations }
end;
var
frmSelExportField: TfrmSelExportField;
implementation
uses U_SelPrintField,U_FormPas;
{$R *.dfm}
procedure TfrmSelExportField.CreateCheckBox();
var
i,j,FTop,FLeft,Fdiv,FMod:Integer;// mod 余数div商
FCheckBox:TCheckBox;
begin
for i:=0 to ExpGrid.ColumnCount-1 do
begin
Fdiv:=(i+1) div 3;
FMod:=(i+1) mod 3;
FCheckBox:=TCheckBox.Create(Self);
FCheckBox.Caption:=Trim(ExpGrid.Columns[i].Caption);
FCheckBox.TabOrder:=i;
FCheckBox.Parent:=Panel2;
FCheckBox.Checked:=True;
if FMod>0 then
FCheckBox.Top:=36*(Fdiv+1)
else
FCheckBox.Top:=36*Fdiv;
if FMod=1 then
FCheckBox.Left:=29
else if FMod=2 then
FCheckBox.Left:=163
else if FMod=0 then
FCheckBox.Left:=305;
end;
end;
procedure TfrmSelExportField.Button1Click(Sender: TObject);
begin
//ShowMessage('10除以3取余'+inttostr(10 mod 3)+',取整'+inttostr(10 div 3));
ExportData();
GetExportFields();
if IsINIFile(IniName)=True then
begin
DeleteFile(IniName);
end;
WriteINIFile(IniName);
end;
procedure TfrmSelExportField.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmSelExportField.FormDestroy(Sender: TObject);
begin
frmSelExportField:=nil;
end;
procedure TfrmSelExportField.FormShow(Sender: TObject);
begin
CreateCheckBox();
ReadINIFile(IniName);
IsCheck();
end;
procedure TfrmSelExportField.IsCheck();
var
i:Integer;
fsj:string;
begin
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
fsj:=Trim(TCheckBox(Controls[i]).Caption);
if Pos(fsj,ExportFields)>0 then
TCheckBox(Controls[i]).Checked:=True
else
TCheckBox(Controls[i]).Checked:=False;
end;
end;
end;
end;
procedure TfrmSelExportField.ExportData();
var
i,j:Integer;
begin
j:=0;
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if TCheckBox(Controls[i]).Checked=True then
begin
j:=1;
ExpGrid.Columns[TCheckBox(Controls[i]).TabOrder].Visible:=True
end else
begin
ExpGrid.Columns[TCheckBox(Controls[i]).TabOrder].Visible:=False;
end;
end;
end;
end;
TcxGridToExcel(Trim(IniName),cxGrid1);
end;
procedure TfrmSelExportField.Button2Click(Sender: TObject);
begin
Close;
end;
procedure TfrmSelExportField.ReadINIFile(fieldname:string);
var
programIni:Tinifile; //配置文件名
FName:string;
begin
FName:=ExtractFilePath(Application.ExeName)+'FieldExportSet\' +trim(fieldname)+'.INI';
programIni:=Tinifile.create(FName);
ExportFields:=programIni.ReadString('导出设置','导出字段','');
programIni.Free;
end;
procedure TfrmSelExportField.GetExportFields();
var
i:Integer;
begin
ExportFields:='Begin';
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if TCheckBox(Controls[i]).Checked then
begin
ExportFields:=ExportFields+'/'+TCheckBox(Controls[i]).Caption;
end;
end;
end;
end;
end;
//////////////////////////////////////////////////////////////////
//写设置信息到INI文件
//参数
//////////////////////////////////////////////////////////////////
procedure TfrmSelExportField.WriteINIFile(fieldname:string);
var
programIni:Tinifile; //配置文件名
FName:string;
begin
FName:=ExtractFilePath(Application.ExeName)+'FieldExportSet\'+trim(fieldname)+'.INI';
if not DirectoryExists(ExtractFileDir(FName)) then
CreateDir(ExtractFileDir(FName));
programIni:=Tinifile.create(FName);
programIni.WriteString('导出设置','导出字段',ExportFields);
programIni.Free;
end;
//////////////////////////////////////////////////////////////////
//判断InI文件是否存在
//////////////////////////////////////////////////////////////////
Function TfrmSelExportField.IsINIFile(fieldname:string):Boolean;
var
FName:string;
begin
FName:=ExtractFilePath(Application.ExeName)+'FieldExportSet\'+trim(fieldname)+'.INI';
if FileExists(FName) then
Result:=True
else
Result:=false;
end;
procedure TfrmSelExportField.CheckBox1Click(Sender: TObject);
var
i:Integer;
begin
if CheckBox1.Checked then
begin
CheckBox2.Checked:=False;
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if (TCheckBox(Controls[i]).Name<>'CheckBox1') and (TCheckBox(Controls[i]).Name<>'CheckBox2') then
begin
TCheckBox(Controls[i]).Checked:=True;
end;
end;
end;
end;
end;
end;
procedure TfrmSelExportField.CheckBox2Click(Sender: TObject);
var
i:Integer;
begin
if CheckBox2.Checked then
begin
CheckBox1.Checked:=False;
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if (TCheckBox(Controls[i]).Name<>'CheckBox1') and (TCheckBox(Controls[i]).Name<>'CheckBox2') then
begin
TCheckBox(Controls[i]).Checked:=False;
end;
end;
end;
end;
end;
end;
end.

View File

@ -0,0 +1,149 @@
object frmSelPrintField: TfrmSelPrintField
Left = 329
Top = 100
Width = 427
Height = 530
Caption = #23383#27573#25171#21360#36873#25321
Color = clBtnFace
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
OnClose = FormClose
OnDestroy = FormDestroy
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 12
object Button1: TButton
Left = 94
Top = 456
Width = 75
Height = 25
Caption = #30830#23450
TabOrder = 0
OnClick = Button1Click
end
object Button2: TButton
Left = 243
Top = 456
Width = 75
Height = 25
Caption = #20851#38381
TabOrder = 1
OnClick = Button2Click
end
object PrnGrid: TDBGrid
Left = 497
Top = 93
Width = 200
Height = 120
DataSource = PrintDataSource
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = #23435#20307
Font.Style = []
ParentFont = False
TabOrder = 2
TitleFont.Charset = ANSI_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -16
TitleFont.Name = #23435#20307
TitleFont.Style = []
Visible = False
end
object ScrollBox1: TScrollBox
Left = 2
Top = 0
Width = 415
Height = 438
Color = clSkyBlue
ParentColor = False
TabOrder = 3
object Label4: TLabel
Left = 158
Top = 9
Width = 60
Height = 14
Caption = #23383#27573#36873#25321
Font.Charset = GB2312_CHARSET
Font.Color = clRed
Font.Height = -14
Font.Name = #23435#20307
Font.Style = [fsBold]
ParentFont = False
end
end
object RMPrintDBGrid1: TRMPrintDBGrid
ReportOptions = [rmgoStretch, rmgoWordWrap, rmgoGridLines]
PageLayout.LeftMargin = 38
PageLayout.TopMargin = 38
PageLayout.RightMargin = 38
PageLayout.BottomMargin = 38
PageLayout.Height = 2970
PageLayout.Width = 2100
PageLayout.PageBin = 0
PageLayout.PrinterName = #40664#35748#25171#21360#26426
PageLayout.ColorPrint = False
PageHeaderMsg.Font.Charset = GB2312_CHARSET
PageHeaderMsg.Font.Color = clWindowText
PageHeaderMsg.Font.Height = -13
PageHeaderMsg.Font.Name = #23435#20307
PageHeaderMsg.Font.Style = []
PageFooterMsg.Font.Charset = GB2312_CHARSET
PageFooterMsg.Font.Color = clWindowText
PageFooterMsg.Font.Height = -15
PageFooterMsg.Font.Name = #23435#20307
PageFooterMsg.Font.Style = []
PageCaptionMsg.CaptionMsg.Font.Charset = GB2312_CHARSET
PageCaptionMsg.CaptionMsg.Font.Color = clWindowText
PageCaptionMsg.CaptionMsg.Font.Height = -13
PageCaptionMsg.CaptionMsg.Font.Name = #23435#20307
PageCaptionMsg.CaptionMsg.Font.Style = []
PageCaptionMsg.TitleFont.Charset = GB2312_CHARSET
PageCaptionMsg.TitleFont.Color = clWindowText
PageCaptionMsg.TitleFont.Height = -16
PageCaptionMsg.TitleFont.Name = #23435#20307
PageCaptionMsg.TitleFont.Style = [fsBold]
MasterDataBandOptions.ReprintColumnHeaderOnNewColumn = True
GridNumOptions.Text = 'No'
GridFontOptions.Font.Charset = ANSI_CHARSET
GridFontOptions.Font.Color = clWindowText
GridFontOptions.Font.Height = -15
GridFontOptions.Font.Name = #23435#20307
GridFontOptions.Font.Style = []
ReportSettings.InitialZoom = pzDefault
ReportSettings.PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS]
DBGrid = PrnGrid
Left = 339
Top = 449
end
object PrintDataSource: TDataSource
DataSet = ClientDataSet1
Left = 536
Top = 246
end
object RMXLSExport1: TRMXLSExport
ShowAfterExport = True
ExportPrecision = 1
PagesOfSheet = 1
ExportImages = True
ExportFrames = True
ExportImageFormat = ifBMP
JPEGQuality = 0
ScaleX = 1.000000000000000000
ScaleY = 1.000000000000000000
CompressFile = False
Left = 359
Top = 368
end
object ClientDataSet1: TClientDataSet
Aggregates = <>
Params = <>
Left = 378
Top = 340
end
end

View File

@ -0,0 +1,241 @@
unit U_SelPrintField;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, RM_FormReport, RM_PDBGrid,
DB,IniFiles, RM_Common, RM_Class, RM_e_Xls, DBClient;
type
TfrmSelPrintField = class(TForm)
RMPrintDBGrid1: TRMPrintDBGrid;
Button1: TButton;
Button2: TButton;
PrintDataSource: TDataSource;
PrnGrid: TDBGrid;
RMXLSExport1: TRMXLSExport;
ClientDataSet1: TClientDataSet;
ScrollBox1: TScrollBox;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
procedure CreateCheckBox();
procedure PrintData();
procedure ReadINIFile(fieldname:string);
procedure WriteINIFile(fieldname:string);
Function IsINIFile(fieldname:string):Boolean;
procedure GetPrintFields();
procedure IsCheck();
{ Private declarations }
public
PrintFields,IniName:string;
{ Public declarations }
end;
var
frmSelPrintField: TfrmSelPrintField;
implementation
{$R *.dfm}
procedure TfrmSelPrintField.CreateCheckBox();
var
i,j,FTop,FLeft,Fdiv,FMod:Integer;// mod 余数div商
FCheckBox:TCheckBox;
begin
for i:=0 to PrnGrid.Columns.Count-1 do
begin
Fdiv:=(i+1) div 3;
FMod:=(i+1) mod 3;
FCheckBox:=TCheckBox.Create(Self);
FCheckBox.Caption:=Trim(PrnGrid.Columns[i].Title.Caption);
FCheckBox.TabOrder:=i;
FCheckBox.Parent:=ScrollBox1;
FCheckBox.Checked:=True;
if FMod>0 then
FCheckBox.Top:=36*(Fdiv+1)
else
FCheckBox.Top:=36*Fdiv;
if FMod=1 then
FCheckBox.Left:=29
else if FMod=2 then
FCheckBox.Left:=163
else if FMod=0 then
FCheckBox.Left:=305;
end;
end;
procedure TfrmSelPrintField.Button1Click(Sender: TObject);
begin
//ShowMessage('10除以3取余'+inttostr(10 mod 3)+',取整'+inttostr(10 div 3));
PrintData();
GetPrintFields();
if IsINIFile(IniName)=True then
begin
DeleteFile(IniName);
end;
WriteINIFile(IniName);
end;
procedure TfrmSelPrintField.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmSelPrintField.FormDestroy(Sender: TObject);
begin
frmSelPrintField:=nil;
end;
procedure TfrmSelPrintField.FormShow(Sender: TObject);
begin
CreateCheckBox();
ReadINIFile(IniName);
IsCheck();
end;
procedure TfrmSelPrintField.IsCheck();
var
i:Integer;
fsj:string;
begin
with ScrollBox1 do
begin
for i:=0 to ScrollBox1.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
fsj:=Trim(TCheckBox(Controls[i]).Caption);
if Pos(fsj,PrintFields)>0 then
TCheckBox(Controls[i]).Checked:=True
else
TCheckBox(Controls[i]).Checked:=False;
end;
end;
end;
end;
procedure TfrmSelPrintField.PrintData();
var
i,j,k:Integer;
FFieldName:string;
begin
j:=0;
k:=0;
with ScrollBox1 do
begin
for i:=0 to ScrollBox1.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if TCheckBox(Controls[i]).Checked=True then
begin
j:=1;
PrnGrid.Columns[TCheckBox(Controls[i]).TabOrder].Visible:=True;
k:=k+1;
if k=1 then
begin
FFieldName:=PrnGrid.Columns[TCheckBox(Controls[i]).TabOrder].FieldName;
end;
end else
begin
PrnGrid.Columns[TCheckBox(Controls[i]).TabOrder].Visible:=False;
end;
end;
end;
end;
{ClientDataSet1.Last;
if Trim(ClientDataSet1.FieldByName('flag').AsString)='Y' then
begin
ClientDataSet1.Edit;
ClientDataSet1.FieldByName(FFieldName).Value:='合计';
ClientDataSet1.Post;
end;}
if j=1 then
begin
RMPrintDBGrid1.ShowReport ;
end
else
begin
Application.MessageBox('没有可打印的信息!','提示',0);
Exit;
end;
//Panel2.Visible:=False;
//RMPrintDBGrid1.ShowReport;
end;
procedure TfrmSelPrintField.Button2Click(Sender: TObject);
begin
Close;
end;
procedure TfrmSelPrintField.ReadINIFile(fieldname:string);
var
programIni:Tinifile; //配置文件名
FName:string;
begin
FName:=ExtractFilePath(Application.ExeName)+'FieldPrintSet\' +trim(fieldname)+'.INI';
programIni:=Tinifile.create(FName);
PrintFields:=programIni.ReadString('打印设置','打印字段','');
programIni.Free;
end;
procedure TfrmSelPrintField.GetPrintFields();
var
i:Integer;
begin
PrintFields:='Begin';
with ScrollBox1 do
begin
for i:=0 to ScrollBox1.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if TCheckBox(Controls[i]).Checked then
begin
PrintFields:=PrintFields+'/'+TCheckBox(Controls[i]).Caption;
end;
end;
end;
end;
end;
//////////////////////////////////////////////////////////////////
//写设置信息到INI文件
//参数
//////////////////////////////////////////////////////////////////
procedure TfrmSelPrintField.WriteINIFile(fieldname:string);
var
programIni:Tinifile; //配置文件名
FName:string;
begin
FName:=ExtractFilePath(Application.ExeName)+'FieldPrintSet\'+trim(fieldname)+'.INI';
if not DirectoryExists(ExtractFileDir(FName)) then
CreateDir(ExtractFileDir(FName));
programIni:=Tinifile.create(FName);
programIni.WriteString('打印设置','打印字段',PrintFields);
programIni.Free;
end;
//////////////////////////////////////////////////////////////////
//判断InI文件是否存在
//////////////////////////////////////////////////////////////////
Function TfrmSelPrintField.IsINIFile(fieldname:string):Boolean;
var
FName:string;
begin
FName:=ExtractFilePath(Application.ExeName)+'FieldPrintSet\'+trim(fieldname)+'.INI';
if FileExists(FName) then
Result:=True
else
Result:=false;
end;
end.

View File

@ -0,0 +1,178 @@
object frmSelPrintFieldNew: TfrmSelPrintFieldNew
Left = 269
Top = 139
BorderStyle = bsDialog
Caption = #23383#27573#25171#21360#36873#25321
ClientHeight = 493
ClientWidth = 428
Color = clBtnFace
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
OnClose = FormClose
OnDestroy = FormDestroy
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 12
object Button1: TButton
Left = 94
Top = 456
Width = 75
Height = 25
Caption = #30830#23450
TabOrder = 0
OnClick = Button1Click
end
object Button2: TButton
Left = 243
Top = 456
Width = 75
Height = 25
Caption = #20851#38381
TabOrder = 1
OnClick = Button2Click
end
object PrnGrid: TDBGrid
Left = 17
Top = 165
Width = 320
Height = 120
DataSource = PrintDataSource
Font.Charset = GB2312_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
ParentFont = False
TabOrder = 2
TitleFont.Charset = GB2312_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -12
TitleFont.Name = #23435#20307
TitleFont.Style = []
Visible = False
end
object Panel2: TScrollBox
Left = 2
Top = 0
Width = 423
Height = 438
HorzScrollBar.Visible = False
BevelInner = bvSpace
BevelKind = bkTile
BorderStyle = bsNone
Color = clSkyBlue
Font.Charset = GB2312_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
ParentColor = False
ParentFont = False
TabOrder = 3
object Label4: TLabel
Left = 166
Top = 9
Width = 60
Height = 14
Caption = #23383#27573#36873#25321
Font.Charset = GB2312_CHARSET
Font.Color = clRed
Font.Height = -14
Font.Name = #23435#20307
Font.Style = [fsBold]
ParentFont = False
end
end
object CheckBox1: TCheckBox
Left = 21
Top = 450
Width = 49
Height = 17
Caption = #20840#36873
TabOrder = 4
OnClick = CheckBox1Click
end
object CheckBox2: TCheckBox
Left = 21
Top = 466
Width = 49
Height = 17
Caption = #20840#24323
TabOrder = 5
OnClick = CheckBox2Click
end
object RMPrintDBGrid1: TRMPrintDBGrid
ReportOptions = [rmgoStretch, rmgoWordWrap, rmgoGridLines]
PageLayout.LeftMargin = 38
PageLayout.TopMargin = 38
PageLayout.RightMargin = 38
PageLayout.BottomMargin = 38
PageLayout.Height = 2970
PageLayout.Width = 2100
PageLayout.PageBin = 0
PageLayout.PrinterName = #40664#35748#25171#21360#26426
PageLayout.ColorPrint = False
PageHeaderMsg.Font.Charset = GB2312_CHARSET
PageHeaderMsg.Font.Color = clWindowText
PageHeaderMsg.Font.Height = -13
PageHeaderMsg.Font.Name = #23435#20307
PageHeaderMsg.Font.Style = []
PageFooterMsg.Font.Charset = GB2312_CHARSET
PageFooterMsg.Font.Color = clWindowText
PageFooterMsg.Font.Height = -15
PageFooterMsg.Font.Name = #23435#20307
PageFooterMsg.Font.Style = []
PageCaptionMsg.CaptionMsg.Font.Charset = GB2312_CHARSET
PageCaptionMsg.CaptionMsg.Font.Color = clWindowText
PageCaptionMsg.CaptionMsg.Font.Height = -13
PageCaptionMsg.CaptionMsg.Font.Name = #23435#20307
PageCaptionMsg.CaptionMsg.Font.Style = []
PageCaptionMsg.TitleFont.Charset = GB2312_CHARSET
PageCaptionMsg.TitleFont.Color = clWindowText
PageCaptionMsg.TitleFont.Height = -16
PageCaptionMsg.TitleFont.Name = #23435#20307
PageCaptionMsg.TitleFont.Style = [fsBold]
MasterDataBandOptions.ReprintColumnHeaderOnNewColumn = True
GridNumOptions.Text = 'No'
GridFontOptions.Font.Charset = ANSI_CHARSET
GridFontOptions.Font.Color = clWindowText
GridFontOptions.Font.Height = -15
GridFontOptions.Font.Name = #23435#20307
GridFontOptions.Font.Style = []
ReportSettings.InitialZoom = pzDefault
ReportSettings.PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbPageSetup, pbExit, pbSaveToXLS]
DBGrid = PrnGrid
Left = 339
Top = 449
end
object PrintDataSource: TDataSource
DataSet = ClientDataSet1
Left = 536
Top = 246
end
object RMXLSExport1: TRMXLSExport
ShowAfterExport = True
ExportPrecision = 1
PagesOfSheet = 1
ExportImages = True
ExportFrames = True
ExportImageFormat = ifBMP
JPEGQuality = 0
ScaleX = 1.000000000000000000
ScaleY = 1.000000000000000000
CompressFile = False
Left = 359
Top = 368
end
object ClientDataSet1: TClientDataSet
Aggregates = <>
Params = <>
Left = 378
Top = 340
end
end

View File

@ -0,0 +1,293 @@
unit U_SelPrintFieldNew;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, RM_FormReport, RM_PDBGrid,
DB,IniFiles, RM_Common, RM_Class, RM_e_Xls, DBClient;
type
TfrmSelPrintFieldNew = class(TForm)
RMPrintDBGrid1: TRMPrintDBGrid;
Button1: TButton;
Button2: TButton;
PrintDataSource: TDataSource;
PrnGrid: TDBGrid;
RMXLSExport1: TRMXLSExport;
ClientDataSet1: TClientDataSet;
Panel2: TScrollBox;
Label4: TLabel;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
private
procedure CreateCheckBox();
procedure PrintData();
procedure ReadINIFile(fieldname:string);
procedure WriteINIFile(fieldname:string);
Function IsINIFile(fieldname:string):Boolean;
procedure GetPrintFields();
procedure IsCheck();
{ Private declarations }
public
PrintFields,IniName:string;
{ Public declarations }
end;
var
frmSelPrintFieldNew: TfrmSelPrintFieldNew;
implementation
{$R *.dfm}
procedure TfrmSelPrintFieldNew.CreateCheckBox();
var
i,j,FTop,FLeft,Fdiv,FMod:Integer;// mod 余数div商
FCheckBox:TCheckBox;
begin
for i:=0 to PrnGrid.Columns.Count-1 do
begin
Fdiv:=(i+1) div 3;
FMod:=(i+1) mod 3;
FCheckBox:=TCheckBox.Create(Self);
FCheckBox.Caption:=Trim(PrnGrid.Columns[i].Title.Caption);
FCheckBox.TabOrder:=i;
FCheckBox.Parent:=Panel2;
FCheckBox.Checked:=True;
if FMod>0 then
FCheckBox.Top:=36*(Fdiv+1)
else
FCheckBox.Top:=36*Fdiv;
if FMod=1 then
FCheckBox.Left:=29
else if FMod=2 then
FCheckBox.Left:=163
else if FMod=0 then
FCheckBox.Left:=305;
end;
end;
procedure TfrmSelPrintFieldNew.Button1Click(Sender: TObject);
begin
//ShowMessage('10除以3取余'+inttostr(10 mod 3)+',取整'+inttostr(10 div 3));
PrintData();
GetPrintFields();
if IsINIFile(IniName)=True then
begin
DeleteFile(IniName);
end;
WriteINIFile(IniName);
end;
procedure TfrmSelPrintFieldNew.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmSelPrintFieldNew.FormDestroy(Sender: TObject);
begin
frmSelPrintFieldNew:=nil;
end;
procedure TfrmSelPrintFieldNew.FormShow(Sender: TObject);
begin
CreateCheckBox();
ReadINIFile(IniName);
IsCheck();
end;
procedure TfrmSelPrintFieldNew.IsCheck();
var
i:Integer;
fsj:string;
begin
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
fsj:=Trim(TCheckBox(Controls[i]).Caption);
if Pos(fsj,PrintFields)>0 then
TCheckBox(Controls[i]).Checked:=True
else
TCheckBox(Controls[i]).Checked:=False;
end;
end;
end;
end;
procedure TfrmSelPrintFieldNew.PrintData();
var
i,j,k:Integer;
FFieldName:string;
begin
j:=0;
k:=0;
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if TCheckBox(Controls[i]).Checked=True then
begin
j:=1;
PrnGrid.Columns[TCheckBox(Controls[i]).TabOrder].Visible:=True;
k:=k+1;
if k=1 then
begin
FFieldName:=PrnGrid.Columns[TCheckBox(Controls[i]).TabOrder].FieldName;
end;
end else
begin
PrnGrid.Columns[TCheckBox(Controls[i]).TabOrder].Visible:=False;
end;
end;
end;
end;
{ClientDataSet1.Last;
if Trim(ClientDataSet1.FieldByName('flag').AsString)='Y' then
begin
ClientDataSet1.Edit;
ClientDataSet1.FieldByName(FFieldName).Value:='合计';
ClientDataSet1.Post;
end;}
if j=1 then
begin
RMPrintDBGrid1.ShowReport ;
end
else
begin
Application.MessageBox('没有可打印的信息!','提示',0);
Exit;
end;
//Panel2.Visible:=False;
//RMPrintDBGrid1.ShowReport;
end;
procedure TfrmSelPrintFieldNew.Button2Click(Sender: TObject);
begin
Close;
end;
procedure TfrmSelPrintFieldNew.ReadINIFile(fieldname:string);
var
programIni:Tinifile; //配置文件名
FName:string;
begin
FName:=ExtractFilePath(Application.ExeName)+'FieldPrintSet\' +trim(fieldname)+'.INI';
programIni:=Tinifile.create(FName);
PrintFields:=programIni.ReadString('打印设置','打印字段','');
programIni.Free;
end;
procedure TfrmSelPrintFieldNew.GetPrintFields();
var
i:Integer;
begin
PrintFields:='Begin';
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if TCheckBox(Controls[i]).Checked then
begin
PrintFields:=PrintFields+'/'+TCheckBox(Controls[i]).Caption;
end;
end;
end;
end;
end;
//////////////////////////////////////////////////////////////////
//写设置信息到INI文件
//参数
//////////////////////////////////////////////////////////////////
procedure TfrmSelPrintFieldNew.WriteINIFile(fieldname:string);
var
programIni:Tinifile; //配置文件名
FName:string;
begin
FName:=ExtractFilePath(Application.ExeName)+'FieldPrintSet\'+trim(fieldname)+'.INI';
if not DirectoryExists(ExtractFileDir(FName)) then
CreateDir(ExtractFileDir(FName));
programIni:=Tinifile.create(FName);
programIni.WriteString('打印设置','打印字段',PrintFields);
programIni.Free;
end;
//////////////////////////////////////////////////////////////////
//判断InI文件是否存在
//////////////////////////////////////////////////////////////////
Function TfrmSelPrintFieldNew.IsINIFile(fieldname:string):Boolean;
var
FName:string;
begin
FName:=ExtractFilePath(Application.ExeName)+'FieldPrintSet\'+trim(fieldname)+'.INI';
if FileExists(FName) then
Result:=True
else
Result:=false;
end;
procedure TfrmSelPrintFieldNew.CheckBox1Click(Sender: TObject);
var
i:Integer;
begin
if CheckBox1.Checked then
begin
CheckBox2.Checked:=False;
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if (TCheckBox(Controls[i]).Name<>'CheckBox1') and (TCheckBox(Controls[i]).Name<>'CheckBox2') then
begin
TCheckBox(Controls[i]).Checked:=True;
end;
end;
end;
end;
end;
end;
procedure TfrmSelPrintFieldNew.CheckBox2Click(Sender: TObject);
var
i:Integer;
begin
if CheckBox2.Checked then
begin
CheckBox1.Checked:=False;
with Panel2 do
begin
for i:=0 to Panel2.ControlCount-1 do
begin
if Controls[i] is TCheckBox then
begin
if (TCheckBox(Controls[i]).Name<>'CheckBox1') and (TCheckBox(Controls[i]).Name<>'CheckBox2') then
begin
TCheckBox(Controls[i]).Checked:=False;
end;
end;
end;
end;
end;
end;
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,119 @@
object frmXcCustCodeHelp_dx: TfrmXcCustCodeHelp_dx
Left = 373
Top = 226
BorderIcons = [biSystemMenu]
BorderStyle = bsSingle
Caption = #36755#20837#24110#21161
ClientHeight = 415
ClientWidth = 410
Color = clBtnFace
Font.Charset = GB2312_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
OldCreateOrder = False
OnClose = FormClose
OnCreate = FormCreate
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 12
object Label1: TLabel
Left = 330
Top = 31
Width = 60
Height = 12
Caption = #21517#31216#25110#32534#21495
end
object btOk: TBitBtn
Left = 328
Top = 112
Width = 57
Height = 27
Caption = #30830#23450
TabOrder = 0
OnClick = btOkClick
end
object btNo: TBitBtn
Left = 328
Top = 200
Width = 57
Height = 27
Caption = #21462#28040
TabOrder = 1
OnClick = btNoClick
end
object dbGrid1: TcxGrid
Left = 0
Top = 0
Width = 315
Height = 415
Align = alLeft
TabOrder = 2
object Tv1: TcxGridDBTableView
OnDblClick = Tv1DblClick
NavigatorButtons.ConfirmDelete = False
DataController.DataSource = DataSource1
DataController.Options = [dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoGroupsAlwaysExpanded]
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <
item
Kind = skCount
end>
DataController.Summary.SummaryGroups = <>
OptionsBehavior.GoToNextCellOnEnter = True
OptionsBehavior.FocusCellOnCycle = True
OptionsCustomize.ColumnFiltering = False
OptionsData.Deleting = False
OptionsData.DeletingConfirmation = False
OptionsData.Inserting = False
OptionsSelection.CellSelect = False
OptionsView.GroupByBox = False
object Tv1code: TcxGridDBColumn
Caption = #32534#21495
DataBinding.FieldName = 'code'
HeaderAlignmentHorz = taCenter
HeaderGlyphAlignmentHorz = taCenter
Width = 100
end
object Tv1Name: TcxGridDBColumn
Caption = #21517#31216
DataBinding.FieldName = 'Name'
PropertiesClassName = 'TcxComboBoxProperties'
HeaderAlignmentHorz = taCenter
HeaderGlyphAlignmentHorz = taCenter
Options.Editing = False
Options.Focusing = False
Width = 189
end
end
object dbGrid1Level1: TcxGridLevel
GridView = Tv1
end
end
object NameOrCode: TEdit
Left = 320
Top = 46
Width = 85
Height = 20
TabOrder = 3
OnChange = NameOrCodeChange
end
object ADOQueryHelp: TADOQuery
Connection = ADOConnection1
LockType = ltReadOnly
Parameters = <>
Left = 272
Top = 24
end
object DataSource1: TDataSource
DataSet = ADOQueryHelp
Left = 216
Top = 40
end
object ADOConnection1: TADOConnection
LoginPrompt = False
Left = 192
Top = 96
end
end

View File

@ -0,0 +1,124 @@
unit U_XcCustCodeHelp_dx;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, CheckLst, Buttons, DB, ADODB, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData,
cxDropDownEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid;
type
TfrmXcCustCodeHelp_dx = class(TForm)
ADOQueryHelp: TADOQuery;
btOk: TBitBtn;
btNo: TBitBtn;
dbGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
Tv1code: TcxGridDBColumn;
Tv1Name: TcxGridDBColumn;
dbGrid1Level1: TcxGridLevel;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
NameOrCode: TEdit;
Label1: TLabel;
procedure btNoClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure btOkClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Tv1DblClick(Sender: TObject);
procedure NameOrCodeChange(Sender: TObject);
private
procedure InitData();
public
Fflag:string; //类型标志
fDivChar:string;
pColumns:integer;
fSelResult:string;
end;
var
frmXcCustCodeHelp_dx: TfrmXcCustCodeHelp_dx;
implementation
uses
U_global;
{$R *.dfm}
procedure TfrmXcCustCodeHelp_dx.btNoClick(Sender: TObject);
begin
ModalResult:=-1;
end;
procedure TfrmXcCustCodeHelp_dx.FormCreate(Sender: TObject);
begin
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=gConString;
Connected:=true;
end;
end;
////////////////////////////////////////////////
//函数:
////////////////////////////////////////////////
procedure TfrmXcCustCodeHelp_dx.InitData();
begin
with ADOQueryHelp do
begin
close;
sql.clear;
sql.Add('select * from XC_Custcode');
sql.Add('where flag='''+Fflag+'''');
sql.Add('and Valid=''Y''');
sql.Add('order by orderno');
Open;
end;
end;
procedure TfrmXcCustCodeHelp_dx.FormShow(Sender: TObject);
begin
self.Caption :='输入帮助(类别:'+FFlag+')';
InitData();
end;
procedure TfrmXcCustCodeHelp_dx.btOkClick(Sender: TObject);
var
fsj:string;
begin
if ADOQueryHelp.IsEmpty then exit;
fSelResult:=trim(ADOQueryHelp.fieldByName('Name').AsString);
ModalResult:=1;
end;
procedure TfrmXcCustCodeHelp_dx.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmXcCustCodeHelp_dx.Tv1DblClick(Sender: TObject);
begin
btOk.Click ;
end;
procedure TfrmXcCustCodeHelp_dx.NameOrCodeChange(Sender: TObject);
var
fsj:string;
begin
if Trim(NameOrCode.Text)<>'' then
begin
fsj:=' name like '+QuotedStr('%'+Trim(NameOrCode.Text)+'%');
fsj:=fsj+' or code like '+QuotedStr('%'+Trim(NameOrCode.Text)+'%');
end;
with ADOQueryHelp do
begin
Filtered:=False;
Filter:=fsj;
Filtered:=True;
end;
end;
end.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,125 @@
unit U_frameHelp10;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, cxGraphics, cxCustomData, cxStyles, cxTL, DB,
ADODB, cxControls, cxInplaceContainer, cxTLData, cxDBTL, cxMaskEdit,
ImgList;
type
TfrmFrameHelp10 = class(TForm)
ToolBar2: TToolBar;
TOk: TToolButton;
ToolButton7: TToolButton;
cxDBTreeList1: TcxDBTreeList;
ADOQueryHelp: TADOQuery;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
cxDBTreeList1cxDBTreeListColumn2: TcxDBTreeListColumn;
ImageList24: TImageList;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
cxStyle2: TcxStyle;
cxStyle_gridRow: TcxStyle;
cxStyle_gridFoot: TcxStyle;
cxStyle_gridHead: TcxStyle;
cxStyle_gridGroupBox: TcxStyle;
cxStyle_yellow: TcxStyle;
cxStyle_Red: TcxStyle;
cxStyleTree: TcxStyle;
cxStyle3: TcxStyle;
procedure ToolButton7Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TOkClick(Sender: TObject);
procedure cxDBTreeList1DblClick(Sender: TObject);
private
procedure DoQuery();
public
fFrameNo:string;
fFrameName:string;
fAddress:String;
frametop:string;
fWhSql:String;
end;
var
frmFrameHelp10: TfrmFrameHelp10;
implementation
uses
U_global;
{$R *.dfm}
procedure TfrmFrameHelp10.ToolButton7Click(Sender: TObject);
begin
close;
end;
procedure TfrmFrameHelp10.FormCreate(Sender: TObject);
begin
cxDBTreeList1.Align :=alClient;
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=gConString;
Connected:=true;
end;
end;
///////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////
procedure TfrmFrameHelp10.DoQuery();
begin
with ADOQueryHelp do
begin
close;
sql.Clear ;
sql.Add('select * from YC_frame');
sql.Add('where valid=''Y''');
sql.Add('and frameLevel>=0');
if trim(fFrameNo)<>'' then
begin
sql.Add('and frameNo like '+quotedStr('%'+fFrameNo+'%'));
end;
if trim(fFrameName)<>'' then
begin
sql.Add('and frameName like '+quotedStr('%'+fFrameName+'%'));
end;
if trim(fAddress)<>'' then
begin
sql.Add('and Address like '+quotedStr('%'+fAddress+'%'));
end;
if trim(frametop)<>'' then
begin
sql.Add('and frametop='+quotedStr(frametop));
end;
if Trim(fWhSql)<>'' then
SQL.Add(fWhSql);
sql.Add('order by frameLevel');
Open;
end;
end;
procedure TfrmFrameHelp10.FormShow(Sender: TObject);
begin
DoQuery();
cxDBTreeList1.Nodes[0].Expand(False);
end;
procedure TfrmFrameHelp10.TOkClick(Sender: TObject);
begin
if ADOQueryHelp.IsEmpty then
ModalResult:=-1
else
ModalResult:=1;
end;
procedure TfrmFrameHelp10.cxDBTreeList1DblClick(Sender: TObject);
begin
tok.Click ;
end;
end.

View File

@ -0,0 +1,148 @@
unit U_CxGridSet;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,cxGridCustomView, cxGridCustomTableView, cxGridTableView,cxCustomData,
cxGridDBTableView, cxGrid, BtnEdit, StdCtrls, ExtCtrls, ComCtrls, ToolWin,
cxGridBandedTableView, cxGridDBBandedTableView;
procedure ReadCxGrid(fileName:string;cxgrid:TcxGridDBTableView;filePack:string='公用');
procedure ReadCxBandedGrid(fileName:string;cxgrid:TcxGridDBBandedTableView;filePack:string='公用');
procedure WriteCxGrid(fileName:string;cxgrid:TcxGridDBTableView;filePack:string='公用');
procedure WriteCxBandedGrid(fileName:string;cxgrid:TcxGridDBBandedTableView;filePack:string='公用');
procedure CreateGroupSummarry(tv1:TcxGridDBTableView);
implementation
///////////////////////////////////////////////////////////////
//函数功能从文件中读取cxGridCol设置
//fileName 推荐为窗口的caption名字caption名字
///////////////////////////////////////////////////////////////
procedure ReadCxGrid(fileName:string;cxgrid:TcxGridDBTableView;filePack:string='公用');
var
mFileName:string;
begin
mFileName := ExtractFilePath(Application.ExeName)+'Layout\' +filePack+'\'+trim(fileName)+ '.dbg';
//从布局文件中恢复
if FileExists(mFileName) then
cxgrid.RestoreFromIniFile(mFileName);
CreateGroupSummarry(cxgrid);
end;
///////////////////////////////////////////////////////////////
//函数功能从文件中读取cxGridCol设置
//fileName 推荐为窗口的caption名字caption名字
///////////////////////////////////////////////////////////////
procedure ReadCxBandedGrid(fileName:string;cxgrid:TcxGridDBBandedTableView;filePack:string='公用');
var
mFileName:string;
begin
mFileName := ExtractFilePath(Application.ExeName)+'Layout\' +filePack+'\'+trim(fileName)+ '.dbg';
//从布局文件中恢复
if FileExists(mFileName) then
cxgrid.RestoreFromIniFile(mFileName);
end;
///////////////////////////////////////////////////////////////
//函数功能写cxGridCol设置到.dbg文件中
//默认推荐为窗口的caption名字
///////////////////////////////////////////////////////////////
procedure WriteCxGrid(fileName:string;cxgrid:TcxGridDBTableView;filePack:string='公用');
var
mFileName:string;
begin
mFileName := ExtractFilePath(Application.ExeName)+'Layout\' +filePack+'\'+trim(fileName)+ '.dbg';
if not DirectoryExists(ExtractFileDir(mFileName)) then
CreateDir(ExtractFileDir(mFileName));
//保存为布局文件
cxgrid.StoreToIniFile(mFileName);
end;
///////////////////////////////////////////////////////////////
//函数功能写cxGridCol设置到.dbg文件中
//默认推荐为窗口的caption名字
///////////////////////////////////////////////////////////////
procedure WriteCxBandedGrid(fileName:string;cxgrid:TcxGridDBBandedTableView;filePack:string='公用');
var
mFileName:string;
begin
mFileName := ExtractFilePath(Application.ExeName)+'Layout\' +filePack+'\'+trim(fileName)+ '.dbg';
if not DirectoryExists(ExtractFileDir(mFileName)) then
CreateDir(ExtractFileDir(mFileName));
//保存为布局文件
cxgrid.StoreToIniFile(mFileName);
end;
/////////////////////////////////////////////////////
//函数:创建汇总列
/////////////////////////////////////////////////////
procedure CreateGroupSummarry(tv1:TcxGridDBTableView);
var
csg : TcxDataSummaryGroup;
csglink : TcxDataSummaryGroupItemLink;
csgItem : TcxDataSummaryItem;
i:integer;
mFieldName:string;
begin
///创建汇总列
with tv1.DataController.Summary do
begin
try
csg := DataController.Summary.SummaryGroups.Add; //创建汇总项
csg.Links.Clear;
for i:= 0 to tv1.ColumnCount -1 do
begin
if not tv1.Columns[i].Visible then continue;
mFieldName:=tv1.Columns[i].DataBinding.FieldName;
if tv1.Columns[i].Summary.FooterKind=skSum then
begin
// (tv1.DataController.DataSet.Fields[i] as TNumericField).DisplayFormat := '#,0.00;-#,0.00;#';
//tv1.Columns[i].Summary.FooterFormat:='0.0';
//tv1.Columns[i].Summary.FooterKind := skSum;
//这个与Group Row上的汇总同时使用时好象只能有一个有效
//创建行分组行上的汇总项
csgitem := csg.SummaryItems.Add;
csgitem.ItemLink := tv1.Columns[i]; //汇总字段1
csgitem.Position :=spGroup;
csgitem.Kind := skSum;
csgItem.Format := trim(tv1.Columns[i].Caption) +'小计=#,0.0';
tv1.Columns[i].Summary.GroupFooterKind := skSum;
tv1.Columns[i].Summary.GroupFooterFormat := '#,0.00';
end
else if tv1.Columns[i].Summary.FooterKind=skCount then
begin
// (tv1.DataController.DataSet.Fields[i] as TNumericField).DisplayFormat := '#,0.00;-#,0.00;#';
//tv1.Columns[i].Summary.FooterFormat:='0.0';
tv1.Columns[i].Summary.FooterKind := skCount;
tv1.Columns[i].Summary.GroupFooterKind := skCount;
//tv1.Columns[i].Summary.GroupFooterFormat := '#,0.00';
//这个与Group Row上的汇总同时使用时好象只能有一个有效
//创建行分组行上的汇总项
csgitem := csg.SummaryItems.Add;
csgitem.ItemLink := tv1.Columns[i]; //汇总字段1
csgitem.Kind := skCount;
//csgItem.Format := '小计=#,0.0';
end
else
begin
csglink := csg.Links.Add;
csglink.ItemLink := tv1.Columns[i]; //分类字段
//所有不参与汇总的列都有可能用来分组,必须将这些列加入到
//SummaryGroupItemLink中没有加入该连接的列用来分组时
//汇总值不会显示
end;
end;
finally
end;
end;
end;
end.

View File

@ -0,0 +1,345 @@
object frmWorkShopMain: TfrmWorkShopMain
Left = 47
Top = 135
Width = 926
Height = 602
Caption = #26426#21488#20135#37327#30331#35760
Color = clBtnFace
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
OldCreateOrder = False
OnClose = FormClose
OnCreate = FormCreate
OnDestroy = FormDestroy
PixelsPerInch = 96
TextHeight = 12
object ToolBar3: TToolBar
Left = 0
Top = 0
Width = 918
Height = 22
AutoSize = True
ButtonWidth = 75
Caption = 'ToolBar1'
EdgeBorders = []
Flat = True
Images = ADODBMD_work100.ImageList24
List = True
ShowCaptions = True
TabOrder = 0
object Trefresh: TToolButton
Left = 0
Top = 0
AutoSize = True
Caption = #21047#26032
ImageIndex = 30
OnClick = TrefreshClick
end
object Tfind: TToolButton
Left = 55
Top = 0
AutoSize = True
Caption = #36807#28388
ImageIndex = 2
OnClick = TfindClick
end
object Toutput: TToolButton
Left = 110
Top = 0
Caption = #30331#35760#20135#37327
ImageIndex = 50
OnClick = ToutputClick
end
object TMx: TToolButton
Left = 185
Top = 0
AutoSize = True
Caption = #26126#32454
ImageIndex = 19
end
object ToolButton1: TToolButton
Left = 240
Top = 0
AutoSize = True
Caption = #23457#26680
ImageIndex = 23
Visible = False
end
object Tclose: TToolButton
Left = 295
Top = 0
AutoSize = True
Caption = #20851' '#38381
ImageIndex = 10
OnClick = TcloseClick
end
end
object Panel1: TPanel
Left = 0
Top = 22
Width = 918
Height = 38
Align = alTop
BevelInner = bvRaised
BevelOuter = bvLowered
TabOrder = 1
object Label1: TLabel
Left = 449
Top = 13
Width = 24
Height = 12
Caption = #26426#21488
end
object Label8: TLabel
Left = 5
Top = 12
Width = 72
Height = 12
Caption = #20135#37327#36215#22987#26085#26399
Font.Charset = GB2312_CHARSET
Font.Color = clBlack
Font.Height = -12
Font.Name = #23435#20307
Font.Style = []
ParentFont = False
end
object Label5: TLabel
Left = 170
Top = 13
Width = 12
Height = 12
Caption = #65293
end
object Label2: TLabel
Left = 612
Top = 12
Width = 24
Height = 12
Caption = #29677#32452
end
object Label3: TLabel
Left = 759
Top = 11
Width = 24
Height = 12
Caption = #24037#24207
end
object Label4: TLabel
Left = 286
Top = 12
Width = 48
Height = 12
Caption = #26426#21488#37096#38376
end
object dtBeg: TDateTimePicker
Left = 83
Top = 9
Width = 85
Height = 20
Date = 39444.322589513890000000
Format = 'yyyy-MM-dd'
Time = 39444.322589513890000000
TabOrder = 0
end
object dtEnd: TDateTimePicker
Left = 181
Top = 9
Width = 87
Height = 20
Date = 39444.322589513890000000
Format = 'yyyy-MM-dd'
Time = 39444.322589513890000000
TabOrder = 1
end
object edtGroup: TBtnEditC
Left = 644
Top = 8
Width = 98
Height = 20
TabOrder = 2
OnBtnUpClick = edtGroupBtnUpClick
OnBtnDnClick = edtGroupBtnDnClick
end
object EditMach: TBtnEditC
Left = 479
Top = 8
Width = 105
Height = 20
TabOrder = 3
end
object edtGlide: TBtnEditC
Left = 790
Top = 7
Width = 98
Height = 20
TabOrder = 4
OnBtnUpClick = edtGlideBtnUpClick
OnBtnDnClick = edtGlideBtnDnClick
end
object BtnEditC1: TBtnEditC
Left = 338
Top = 8
Width = 89
Height = 20
TabOrder = 5
end
end
object cxTabControl1: TcxTabControl
Left = 0
Top = 60
Width = 918
Height = 21
Align = alTop
Style = 10
TabIndex = 0
TabOrder = 2
Tabs.Strings = (
#24050#30331#35760
#23457#26680#30830#35748
#20840#37096)
OnChange = cxTabControl1Change
ClientRectBottom = 21
ClientRectRight = 918
ClientRectTop = 18
end
object cxGrid1: TcxGrid
Left = 8
Top = 136
Width = 881
Height = 321
TabOrder = 3
object tv1: TcxGridDBTableView
NavigatorButtons.ConfirmDelete = False
DataController.DataSource = DataSource1
DataController.Summary.DefaultGroupSummaryItems = <>
DataController.Summary.FooterSummaryItems = <
item
Kind = skSum
Column = tv1Quantity
end
item
Kind = skSum
Column = tv1rollNum
end
item
Kind = skSum
Column = tv1crockNum
end>
DataController.Summary.SummaryGroups = <>
OptionsBehavior.FocusCellOnTab = True
OptionsCustomize.ColumnFiltering = False
OptionsData.Deleting = False
OptionsData.Editing = False
OptionsSelection.CellSelect = False
OptionsView.Footer = True
OptionsView.GroupByBox = False
Styles.Footer = ADODBMD_work100.cxStyle_gridFoot
Styles.Header = ADODBMD_work100.cxStyle_gridHead
object tv1ClDate: TcxGridDBColumn
Caption = #20135#37327#26085#26399
DataBinding.FieldName = 'ClDate'
HeaderAlignmentHorz = taCenter
Width = 89
end
object tv1DeviceName: TcxGridDBColumn
Caption = #20135#37327#26426#21488
DataBinding.FieldName = 'DeviceName'
PropertiesClassName = 'TcxTextEditProperties'
Properties.Alignment.Horz = taLeftJustify
Properties.ReadOnly = True
HeaderAlignmentHorz = taCenter
Width = 107
end
object tv1GlideName: TcxGridDBColumn
Caption = #29983#20135#24037#24207
DataBinding.FieldName = 'GlideName'
PropertiesClassName = 'TcxTextEditProperties'
Properties.Alignment.Horz = taLeftJustify
Properties.ReadOnly = True
HeaderAlignmentHorz = taCenter
Width = 76
end
object tv1groupName: TcxGridDBColumn
Caption = #29677#32452#21517#31216
DataBinding.FieldName = 'groupName'
HeaderAlignmentHorz = taCenter
Width = 111
end
object tv1Quantity: TcxGridDBColumn
Caption = #20135#37327#25968#37327
DataBinding.FieldName = 'Quantity'
PropertiesClassName = 'TcxTextEditProperties'
Properties.Alignment.Horz = taLeftJustify
Properties.ReadOnly = True
HeaderAlignmentHorz = taCenter
Width = 96
end
object tv1rollNum: TcxGridDBColumn
Caption = #20135#37327#21305#25968
DataBinding.FieldName = 'rollNum'
PropertiesClassName = 'TcxTextEditProperties'
Properties.Alignment.Horz = taLeftJustify
Properties.ReadOnly = True
HeaderAlignmentHorz = taCenter
Width = 84
end
object tv1crockNum: TcxGridDBColumn
Caption = #32568#25968
DataBinding.FieldName = 'crockNum'
HeaderAlignmentHorz = taCenter
Width = 67
end
object tv1filler: TcxGridDBColumn
Caption = #30331#35760#20154
DataBinding.FieldName = 'filler'
PropertiesClassName = 'TcxTextEditProperties'
Properties.Alignment.Horz = taLeftJustify
Properties.ReadOnly = True
HeaderAlignmentHorz = taCenter
Width = 81
end
object tv1filltime: TcxGridDBColumn
Caption = #30331#35760#26102#38388
DataBinding.FieldName = 'filltime'
PropertiesClassName = 'TcxTextEditProperties'
Properties.Alignment.Horz = taLeftJustify
Properties.ReadOnly = True
HeaderAlignmentHorz = taCenter
Width = 103
end
object tv1checker: TcxGridDBColumn
Caption = #23457#26680#20154
DataBinding.FieldName = 'checker'
Visible = False
HeaderAlignmentHorz = taCenter
Width = 59
end
object tv1chkTime: TcxGridDBColumn
Caption = #23457#26680#26102#38388
DataBinding.FieldName = 'chkTime'
Visible = False
HeaderAlignmentHorz = taCenter
Width = 98
end
end
object cxGrid1Level1: TcxGridLevel
GridView = tv1
end
end
object ADOQueryMain: TADOQuery
Connection = ADODBMD_work100.ADOCon
LockType = ltReadOnly
CommandTimeout = 300
Parameters = <>
Left = 360
Top = 200
end
object DataSource1: TDataSource
DataSet = ADOQueryMain
Left = 320
Top = 200
end
end

View File

@ -0,0 +1,145 @@
unit dsr;
interface
uses
SysUtils, StrUtils;
function FTConSvr(hWnd: THandle;
hostAddress: PChar;
Server, User, Pswd, DTBase: PChar): Integer; stdcall; external 'FTClient.dll';
{
FTConSvr 参数说明hWnd-调用程序主窗口句柄(输入)
hostAddress-通讯服务器IP地址(输入)
Server-数据库服务器(输出)
User-数据库登录名(输出)
Pswd-数据库登录密码(输出)
DTBase-数据库名(输出)
调用前请先为每个输出参数分配至少16字节的存储空间。
返回值:-1表示连接服务器失败(调用程序无需显示原因),调用程序关闭;
0表示本次连接成功,1表示已有连接,调用程序请继续运行。
}
//function PBDecode(Strin, StrOut: PAnsiChar; nInLen, nOutLen: Integer): Integer; stdcall; external 'FUTONGDLL.DLL';
function ft001():Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数Ini:
//目的:初步检查是否存在用户锁,如果有存在,提示用户插入用户锁。在程序初始化时,一定要使用这段代码
function ft002():Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数CheckKey
//目的:用狗中特定的算法验证当前的加密狗是否为授权的正确狗
//返回结果:要进行设置的值
function ft003(a :longint):longint; stdcall; external 'FUTONGDLL.DLL';
//输出函数SetValue
//目的:用来对变量进行值的设置
//参数a要进行设置的值
//返回结果:要进行设置的值
//例:对于原来如 x1 = x2; 的赋值方式,可改用 x1 = ft003(x2)的方式
function ft004(s1,s2 :PAnsiChar; len :Integer) :Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数CompareString
//目的:用来对两个字符串进行比较
//参数s1要比较的两个字符串之一
//参数s2要比较的两个字符串之一
//参数len要比较的长度
//返回结果:如果为0两个字符串相等如果为正数s1>s2,如果为负数,s1<s2
function ft005(s1,s2 :PAnsiChar; len :Integer) :Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数CompareStringNoCase
//目的:用来对两个字符串进行比较(忽略大小写)
//参数s1要比较的两个字符串之一
//参数s2要比较的两个字符串之一
//参数len要比较的长度
//返回结果:如果为0两个字符串相等如果为正数s1>s2,如果为负数,s1<s2
function ft006(s1,s2 :PAnsiChar) :Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数Strcat
//目的:用来对两个字符串进行连接
//参数s1要连接的两个字符串之一
//参数s2要连接的两个字符串之一
//返回结果:返回目的字符串的长度, s1 为连接后的字符串
//相当于 s1 = s1 + s2, s2加在s1的后面 返回。
function ft007(sd,s :PAnsiChar) :Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数Strcpy
//目的:对字符串进行复制
//参数sd目的字符串
//参数s:源字符串
//返回结果:返回目的字符串的长度
//相当于 sd = s
function ft008(p1,p2 :LongInt; exp :PAnsiChar) :Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数:Compare
//目的:用来比较两个数的大小,相当于?a>b,a<b,a=b
//参数p1要比较的第一个数
//参数p2要比较的第二个数
//参数c是大于小于或等于">","<","="
//返回结果:
//如果返回0,表示表达式为假,返回1表示表达式为真
//获取设置加密狗中的参数
//对加密狗的存储区进行操作时,耗时时间较长,应注意!!!!
//加密狗中存储位置说明
//允许使用的总空间160字节,其中:64字节存放数据库连接信息,分别是:
//标识 对应参数 允许存放的最大字符串长度
// 5 IP地址 15
// 6 用户名 15
// 7 用户口令 15
// 8 DataBase 15
// 9 标识 可用来进行特别标识,如本加密狗的信息,本机硬件信息等
// 0-4 自定义 80字节空间,每个数字表示1(16字节),递增
// 注意空间不能溢出,否则引起未知错误;
// 0-4标识使用的是连续空间,当0位置的长度超过15时,
// 将覆盖1号位置的存储区域。
// 使用 0 可用空间 80 - 1
// 1 64 - 1
// 2 48 - 1
//........
//[out, retval] BSTR * Value
function ft011(outstr :PAnsiChar; Ord :Integer) :Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数GetParm
//目的:获取加密狗指定位置的字符串
//参数outstr目的字符串
//参数Ord:标识加密狗特定地点的标志值(0-9
//返回结果:返回目的字符串的长度
function ft012(var instr :PAnsiChar; Ord :Integer) :Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数SetParm
//目的:在加密狗的指定位置存放字符串
//参数instr需存放的字符串
//参数Ord:标识加密狗特定地点的标志值(0-9
//返回结果:返回写入字符串的长度
//加解密函数
function ft021(var instr :PAnsiChar; outstr :PAnsiChar) :Integer; stdcall; external 'FUTONGDLL.DLL';
//说明本函数单向加密字符串instr不能逆向解密
//目的获取输入字符串instr的单向加密字符串outstr
//参数instr需加密的字符串
//参数outStr:单向加密后的密文
//返回结果:返回密文的长度
function ft022(source,dest,key :PAnsiChar; flg :Integer) :Integer; stdcall; external 'FUTONGDLL.DLL';
function ft023(source,dest,key :PAnsiChar; flg :Integer) :Integer; stdcall; external 'FUTONGDLL.DLL';
//说明:均为字符串加解密函数,可加解密
//目的用指定的Key对输入字符串source进行置换dest为置换后的字符串
//参数source需置换的字符串源文
//参数dest:置换后后的字符串密文
//参数key置换采用的key,字符串
//参数flg: 1时,进行加密,为0时进行解密
//返回结果:返回置换后字符串的长度
implementation
end.

View File

@ -0,0 +1,174 @@
unit dsrnew;
interface
function ft001(): Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数Ini:
//目的:初步检查是否存在用户锁,如果有存在,提示用户插入用户锁。在程序初始化时,一定要使用这段代码
function ft002(): Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数CheckKey
//目的:用狗中特定的算法验证当前的加密狗是否为授权的正确狗
//返回结果:要进行设置的值
function ft003(a: Integer): Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数SetValue
//目的:用来对变量进行值的设置
//参数a要进行设置的值
//返回结果:要进行设置的值
//例:对于原来如 x1 = x2; 的赋值方式,可改用 x1 = ft003(x2)的方式
function ft004(var s1, s2: PAnsiChar; len: Integer): Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数CompareString
//目的:用来对两个字符串进行比较
//参数s1要比较的两个字符串之一
//参数s2要比较的两个字符串之一
//参数len要比较的长度
//返回结果:如果为0两个字符串相等如果为正数s1>s2,如果为负数,s1<s2
function ft005(var s1, s2: PAnsiChar; len: Integer): Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数CompareStringNoCase
//目的:用来对两个字符串进行比较(忽略大小写)
//参数s1要比较的两个字符串之一
//参数s2要比较的两个字符串之一
//参数len要比较的长度
//返回结果:如果为0两个字符串相等如果为正数s1>s2,如果为负数,s1<s2
function ft006(var s1, s2: PAnsiChar): Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数Strcat
//目的:用来对两个字符串进行连接
//参数s1要连接的两个字符串之一
//参数s2要连接的两个字符串之一
//返回结果:返回目的字符串的长度, s1 为连接后的字符串
//相当于 s1 = s1 + s2, s2加在s1的后面 返回。
function ft007(sd, s: PAnsiChar): Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数Strcpy
//目的:对字符串进行复制
//参数sd目的字符串
//参数s:源字符串
//返回结果:返回目的字符串的长度
//相当于 sd = s
function ft008(p1, p2: Integer; exp: Char): Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数:Compare
//目的:用来比较两个数的大小,相当于?a>b,a<b,a=b
//参数p1要比较的第一个数
//参数p2要比较的第二个数
//参数c是大于小于或等于">","<","="
//返回结果:
//如果返回0,表示表达式为假,返回1表示表达式为真
//获取设置加密狗中的参数
//对加密狗的存储区进行操作时,耗时时间较长,应注意!!!!
//加密狗中存储位置说明
//允许使用的总空间160字节,其中:64字节存放数据库连接信息,分别是:
//标识 对应参数 允许存放的最大字符串长度
// 5 IP地址 15
// 6 用户名 15
// 7 用户口令 15
// 8 DataBase 15
// 9 标识 可用来进行特别标识,如本加密狗的信息,本机硬件信息等
// 0-4 自定义 80字节空间,每个数字表示1(16字节),递增
// 注意空间不能溢出,否则引起未知错误;
// 0-4标识使用的是连续空间,当0位置的长度超过15时,
// 将覆盖1号位置的存储区域。
// 使用 0 可用空间 80 - 1
// 1 64 - 1
// 2 48 - 1
//........
function ft011(outstr: PAnsiChar; Ord: Integer): Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数GetParm
//目的:获取加密狗指定位置的字符串
//参数outstr目的字符串
//参数Ord:标识加密狗特定地点的标志值(0-9
//返回结果:返回目的字符串的长度
function ft012(instr: PAnsiChar; Ord: Integer): Integer; stdcall; external 'FUTONGDLL.DLL';
//输出函数SetParm
//目的:在加密狗的指定位置存放字符串
//参数instr需存放的字符串
//参数Ord:标识加密狗特定地点的标志值(0-9
//返回结果:返回写入字符串的长度
//加解密函数
function ft021(inStr, outStr: PAnsiChar): Integer; stdcall; external 'FUTONGDLL.DLL';
//说明本函数单向加密字符串instr不能逆向解密
//目的获取输入字符串instr的单向加密字符串outstr
//参数instr需加密的字符串
//参数outStr:单向加密后的密文
//返回结果:返回密文的长度
function ft022(source, dest, key: PAnsiChar; flg: Integer): Integer; stdcall; external 'FUTONGDLL.DLL';
function ft023(source, dest, key: PAnsiChar; flg: Integer): Integer; stdcall; external 'FUTONGDLL.DLL';
//说明:均为字符串加解密函数,可加解密
//目的用指定的Key对输入字符串source进行置换dest为置换后的字符串
//参数source需置换的字符串源文
//参数dest:置换后后的字符串密文
//参数key置换采用的key,字符串
//参数flg: 1时,进行加密,为0时进行解密
//返回结果:返回置换后字符串的长度
function PBDecode(Strin, StrOut: PAnsiChar; nInLen, nOutLen: Integer): Integer; stdcall; external 'FUTONG.DLL';
//为解密函数入口参数为Strin,需解密的字符串
// StrOut,解密后的字符串(要求预先分配空间)
// nInLen,为Strin的长度
// nOutLen,为解密后的长度
function PBEncode(Strin, StrOut: PAnsiChar; nInLen, nOutLen: Integer): Integer; stdcall; external 'FUTONG.DLL';
//跟上面的函数对应,实现加密功能
{
//function ulong SQlfunc(ref string OutStr,ref string InStr,UINT len,UINT ID) LIBRARY "Futong.dll"
//对应数据库扩展存储过程(实现加密功能)对应的解密函数
// OutStr要求预先分配空间
// len 为解密后内容长度
// ID 算法因子(和存储过程对应)
function checkfunc(handle: Integer; DogFlag: String): Integer; stdcall; external 'FUTONG.DLL';
//检查硬件狗函数
// handle为主窗口句柄
// DogFlag为从数据库中查询到的硬件狗信息
// DLL自动检查硬件狗和DogFlag的信息是否相符不符时将在3分钟左右自动重启计算机
function GetParm(flag: Integer; out len: Integer; outHex: PAnsiChar): Integer; stdcall; external 'FUTONG.DLL';
//硬件狗中获取特定信息如IP地址数据库名称用户名、口令等
//自定义参数flag取值范围为0--4,存储空间一共为20个字节,为连续的地址空间
//也即:参数0,最大可用长度为20,这时其他参数,将覆盖这个区域
// 参数4,最大可用长度为4
//DogFlag为字符串信息
function SetParm(flag, len: Integer; inHex: PAnsiChar): Integer; stdcall; external 'FUTONG.DLL';
//flag=5IP,=6User,=7Pass,=8DB
//硬件狗中设置参数传入IP时须设置为 “C8A00164”等形式传入192.168.1.100
//自定义参数用法同上
function InfoFunc(order: Integer; info: PAnsiChar): Integer; stdcall; external 'FUTONG.DLL';
//读取本机硬件信息,返回值为机器网卡个数
//考虑到某些可移动的网卡,要查询固定的网卡信息
//软件安装时要求移除可移动网卡
//order为第几块网卡0开始
function GetHostIpAddr(DogParm, HostName, IPAddr: PAnsiChar): Integer; stdcall; external 'FUTONG.DLL';
//获取硬件狗标识,本机IP地址仅参考因为机器有多个IP地址获取的只是其中之一
//以及机器名称
}
implementation
end.

View File

@ -0,0 +1,84 @@
unit getsvrcon;
interface
uses
SysUtils, Windows, Forms, IniFiles,strUtils;
function FTConSvr(H: THandle; ProdID, Address, Server, User, Pswd, DTBase: PChar): Integer; stdcall; external 'FTClient.dll';
function GetSvrConn(
H: THandle;
ProdID: String;
var Server: String;
var User: String;
var Pswd: String;
var DTBase: String
): Integer;
implementation
function GetSvrConn(
H: THandle;
ProdID: String;
var Server: String;
var User: String;
var Pswd: String;
var DTBase: String
): Integer;
var
Ini: TIniFile;
Address, Server1, User1, Pswd1, DTBase1,DtType: String;
iPos:integer;
begin
Ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'consvr.ini');
try
Address := Ini.ReadString('SERVER', 'SERVER', '0.0.0.0');
finally
Ini.Free;
end;
if Address = '0.0.0.0' then
begin
Application.MessageBox('¶ÁÎļþconsvr.ini´íÎó', '´íÎó', MB_ICONERROR);
Application.Terminate;
end;
Server1 := StringOfChar(#0, 20);
User1 := StringOfChar(#0, 20);
Pswd1 := StringOfChar(#0, 20);
DTBase1 := StringOfChar(#0, 20);
Result := FTConSvr(H, PChar(ProdID), Pchar(address),PChar(Server1), PChar(User1), PChar(Pswd1), PChar(DTBase1));
Server := Trim(Server1);
User := Trim(User1);
Pswd := Trim(Pswd1);
DTBase := Trim(DTBase1);
/////////////////////
//database
iPos:=pos('/',dtbase);
if iPos>0 then
begin
DtType:=leftStr(dtbase,iPos-1);
DTBase:=rightStr(dtBase,length(dtbase)-iPos);
end
else
DtType:='';
//////////////////////////////
//user
if DtType='' then
begin
iPos:=pos('/',User);
if iPos>0 then
begin
DtType:=leftStr(User,iPos-1);
User:=rightStr(User,length(User)-iPos);
end
else
DtType:='';
end;
if trim(DTType)<>'' then
server:=server+'\'+DTType;
end;
end.

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More