📄 mainform.~pas
字号:
{
发票里需要用到的项目
ShiShouFee---------实收金额
ZhiNaJin-----------实收滞纳金
BenYueYE-----------本月余额
2003-7-18 更新
-------------------------------------
1.增加
}
unit MainForm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Commfunc, ComCtrls, ExtCtrls, Buttons,Db,
Spin, ReportControl, ImgList, Menus, Grids, DBGrids, ToolWin, Mask,
ToolEdit, CurrEdit, IniFiles, Variants, ADODB,math;
type
TDllCreate=function(AOwner:THandle):Integer;
TDllInitDb=procedure(ConnectionStr,HuHao,LSH,OpName:PChar;YongHuID,ShouFeiXH,OpID:Integer);
//连接字符串,户号,流水号,收费序号,操作员 用户ID,操作员ID
TDllPrepay=procedure(YuJiaoFee:double);
TVoidProc=procedure;
TFormMain = class(TForm)
Panel2: TPanel;
PopupMenuSet: TPopupMenu;
MenuS_ShouFeiSet: TMenuItem;
N2: TMenuItem;
MenuS_Quit: TMenuItem;
PopupMenuPrint: TPopupMenu;
MenuP_Print: TMenuItem;
MenuP_View: TMenuItem;
N6: TMenuItem;
MenuS_Selete: TMenuItem;
PopupMenuHelp: TPopupMenu;
MenuH_Sum: TMenuItem;
N9: TMenuItem;
MenuH_About: TMenuItem;
ImageList1: TImageList;
MenuP_ZuoFei: TMenuItem;
PageControl: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
ScrollBoxView: TScrollBox;
LabelShY: TLabel;
DataSourceGrid: TDataSource;
CEditShiShou: TCurrencyEdit;
MenuH_ListWindow: TMenuItem;
RepRunShouFei: TReportRunTime;
Label4: TLabel;
CurrencyEditZHNJ: TCurrencyEdit;
Panel1: TPanel;
PanelOpName: TPanel;
PanelDate: TPanel;
Panel5: TPanel;
StaticText1: TStaticText;
SpinEditPiaoHao: TSpinEdit;
Label3: TLabel;
LabelZHL: TLabel;
SpeedButtonPrn: TSpeedButton;
SpeedButtonPre: TSpeedButton;
SpeedButtonZuoFei: TSpeedButton;
QueryMain: TADOQuery;
QueryYiShou: TADOQuery;
QueryWDFP: TADOQuery;
Label9: TLabel;
LabelSYYE: TLabel;
Label11: TLabel;
LabelYSZNJ: TLabel;
PanelHeJi: TPanel;
SpdBtnClear: TSpeedButton;
Label1: TLabel;
LabelYSJE: TLabel;
ComboBoxCurFP: TComboBox;
StringGridDETAIL: TStringGrid;
ControlBar: TControlBar;
ToolBarMenu: TToolBar;
ToolButtonSetup: TToolButton;
ToolButtonPrint: TToolButton;
ToolButtonHelp: TToolButton;
ToolBarLB: TToolBar;
ToolButtonName: TToolButton;
EditHuHao: TEdit;
ToolButtonSel: TToolButton;
ToolBarRB: TToolBar;
ToolButtonSelPrn: TToolButton;
ToolButtonSum: TToolButton;
Label2: TLabel;
LabelHJ: TLabel;
Label6: TLabel;
LabelYJ: TLabel;
ToolBarRT: TToolBar;
RadioButtonWSH: TToolButton;
RadioButtonYSH: TToolButton;
RadioButtonWDFP: TToolButton;
Panel3: TPanel;
DBGridMain: TDBGrid;
Panel4: TPanel;
Label5: TLabel;
LabelSum: TLabel;
ToolButtonData: TToolButton;
PopupMenuData: TPopupMenu;
Menu_DataIn: TMenuItem;
Menu_DataZuoFei: TMenuItem;
Menu_PrePay: TMenuItem;
N5: TMenuItem;
N7: TMenuItem;
CheckBox1: TCheckBox;
Label7: TLabel;
LabelYC: TLabel;
Splitter1: TSplitter;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure MenuS_QuitClick(Sender: TObject);
procedure MenuS_ShouFeiSetClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure RadioButtonWSHClick(Sender: TObject);
procedure ToolButtonSelClick(Sender: TObject);
procedure MenuH_SumClick(Sender: TObject);
procedure MenuS_SeleteClick(Sender: TObject);
procedure SpdBtnClearClick(Sender: TObject);
procedure QueryMainAfterOpen(DataSet: TDataSet);
procedure MenuH_ListWindowClick(Sender: TObject);
procedure MenuP_ViewClick(Sender: TObject);
procedure MenuH_AboutClick(Sender: TObject);
procedure MenuP_PrintClick(Sender: TObject);
procedure MenuP_ZuoFeiClick(Sender: TObject);
procedure QueryYiShouAfterOpen(DataSet: TDataSet);
procedure ToolButtonSelPrnClick(Sender: TObject);
procedure ToolButtonSumClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure SpeedButtonPrnClick(Sender: TObject);
procedure SpeedButtonPreClick(Sender: TObject);
procedure SpeedButtonZuoFeiClick(Sender: TObject);
procedure RadioButtonYSHClick(Sender: TObject);
procedure RadioButtonWDFPClick(Sender: TObject);
procedure QueryWDFPAfterOpen(DataSet: TDataSet);
procedure QueryMainAfterScroll(DataSet: TDataSet);
procedure QueryYiShouAfterScroll(DataSet: TDataSet);
procedure QueryWDFPAfterScroll(DataSet: TDataSet);
procedure CEditShiShouExit(Sender: TObject);
procedure CEditShiShouKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ToolButtonWSHClick(Sender: TObject);
procedure ToolButtonYSHClick(Sender: TObject);
procedure ToolButtonWDFPClick(Sender: TObject);
procedure Menu_PrePayClick(Sender: TObject);
procedure CurrencyEditZHNJKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Menu_DataInClick(Sender: TObject);
procedure Menu_DataZuoFeiClick(Sender: TObject);
procedure QueryMainAfterClose(DataSet: TDataSet);
procedure QueryYiShouAfterClose(DataSet: TDataSet);
procedure QueryWDFPAfterClose(DataSet: TDataSet);
procedure CEditShiShouEnter(Sender: TObject);
procedure FormResize(Sender: TObject);
private
ChkIdx : Integer;
BrowSqlLst,RecallSqlLst,SumSqlStr,WDFPLst:TStringList;//浏览、已打、合计、未打发票的SQL
YuShouFei, //预交
ZHIDINGZHNJ, //指定滞纳金
JINEQUZHENG, //金额取整
FenCiShouFei, //分次收费
DirectPreView, //直接预览
ViewDetail :Boolean; //显示明细
YuEisNegative :Boolean; //举例说明:如果应缴0.85,实缴0.9,如果YuEisNegative为True 则本月余额为-0.5否则为+0.5
//对应设置:如果xt_inifile中存在一条这样的记录('取整方式','余额符号','多缴为正',null)则YuEisNegative为False否则为True
QUZHENGWS:Integer; //取整位数,(0---元 1----角)
JieDuanHeJi:Extended;//阶段合计
RefreshUIFee : Boolean; //当QueryMain(待收费记录)里记录滚动时是否需要刷新界面
//全部打印过程中不需要刷新界面,打印完毕则需要
procedure LoadBasicSeting;
procedure FillReport(IsPrint:Boolean);
function GetPrintRepName(FName:String):String;
Procedure EnableButtons;
procedure ResetCtrls;
procedure ReadDetail(AdoQuery: TAdoQuery);
procedure ResetValue;
procedure PreCallDll(DllHandle:THandle); //调用DLL的第一步:初始化
procedure ShowORHideZHAOLING(IsShow : Boolean);
public
procedure OpenQueryProc(SQLStr:String;Query:TAdoQuery);
procedure DBGridFldRef(Query:TAdoQuery);
end;
var
FormMain: TFormMain;
IniFile:TIniFile;
OpName: String;//当前操作员
OpID:Integer;//当前操作员编号
OpDate:TDateTime;//当前操作日期
function GetFieldorValue(FVString:String;ForV:char):String;
procedure RefreshDesk(RefreshIdx : Integer);
implementation
uses DataMod, SelOpDate, ShouFeiSet, SelectCase, InfoWin, AboutBox,
PrinInfoUnit;
var
ChangeMySelf:Boolean;
FormInfoList: TFormInfoList;
{$R *.DFM}
{TFormMain}
procedure RefreshDesk(RefreshIdx : Integer);
begin
if Assigned(FormMain) then
with FormMain do begin
case RefreshIdx of
0:
if QueryMain.Active then begin
QueryMain.Close;
QueryMain.Open;
DBGridFldRef(QueryMain);
end;
1:
if QueryYiShou.Active then begin
QueryYiShou.Close;
QueryYiShou.Open;
DBGridFldRef(QueryYiShou);
end;
2:
if QueryWDFP.Active then begin
QueryWDFP.Close;
QueryWDFP.Open;
DBGridFldRef(QueryWDFP);
end;
3:begin
case ChkIdx of
0:
if QueryMain.Active then begin
QueryMain.Close;
QueryMain.Open;
DBGridFldRef(QueryMain);
end;
1:
if QueryYiShou.Active then begin
QueryYiShou.Close;
QueryYiShou.Open;
DBGridFldRef(QueryYiShou);
end;
2:
if QueryWDFP.Active then begin
QueryWDFP.Close;
QueryWDFP.Open;
DBGridFldRef(QueryWDFP);
end;
end;
end;
end;
end;
end;
procedure TFormMain.FormCreate(Sender: TObject);
var
AppPath:String;
begin
RefreshUIFee:=True;
YuEisNegative:=True;
AppPath:=ExtractFilePath(Application.ExeName);
IniFile:=TIniFile.Create(AppPath+'ShouFei.Sys');
BrowSqlLst:=TStringList.Create;
RecallSqlLst:=TStringList.Create;
SumSqlStr:=TStringList.Create;
WDFPLst:=TStringList.Create;
JieDuanHeJi:=0;
FormInfoList:=nil;
SpinEditPiaoHao.Value:=IniFile.ReadInteger('最新设置','发票票号',0);
with DataMD.ADOQueryPub do begin
Close;
SQL.Clear;
SQL.Add('select 1 from xt_inifile where 类别=''取整方式'' and 名称=''余额符号'' and 值=''多缴为正''');
Open;
if RecordCount>0 then
YuEisNegative:=False;
Close;
end;
end;
procedure TFormMain.ResetCtrls; //设置界面
begin
LabelSYYE.Caption:='0.00';
LabelYSJE.Caption:='0.00';LabelYSZNJ.Caption:='0.00';
LabelHJ.Caption:='0.00';
CEditShiShou.Value:=0;CurrencyEditZHNJ.Value:=0;LabelZHL.Caption:='0.00';
ShowORHideZHAOLING(False);
Label4.Visible:=ZHIDINGZHNJ;
CurrencyEditZHNJ.Visible:=ZHIDINGZHNJ;
// Label6.Visible:=FenCiShouFei;
// LabelYJ.Visible:=FenCiShouFei;
end;
procedure TFormMain.FormShow(Sender: TObject);
begin
if Self.Height>700 then
PageControl.Height:=515
else
PageControl.Height:=355;
StringGridDETAIL.ColWidths[1]:=140;
StringGridDETAIL.Rows[0].Strings[0]:='明细条目';
StringGridDETAIL.Rows[0].Strings[1]:='对应数值';
PanelOpName.Caption:='操作员:'+OpName;
LoadBasicSeting;
ResetCtrls;
ToolBarLB.Height:=22;
ToolBarRT.Height:=22;
ToolBarRB.Height:=22;
EnableButtons;
end;
procedure TFormMain.OpenQueryProc(SQLStr:String;Query:TAdoQuery);
begin
with Query do begin
Close;
SQL.Clear;
SQL.Add(SQLStr);
if Parameters.FindParam('OpName')<>nil then begin
Parameters.ParamByName('OpName').DataType:=ftString;
Parameters.ParamByName('OpName').Size:=50;
Parameters.ParamByName('OpName').Value:=OpName;
end;
if Parameters.FindParam('OpID')<>nil then
Parameters.ParamByName('OpID').Value:=OpID;
if Parameters.FindParam('CurDate')<>nil then begin
Parameters.ParamByName('OpDate').DataType:=ftDateTime;
Parameters.ParamByName('OpDate').Value:=OpDate;
end;
Open;
end;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -