📄 accountinfoform.pas.~1~
字号:
unit AccountInfoForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, EditForm, dxExEdtr, dxEdLib, dxDBELib, dxCntner, dxEditor,
KsSkinLabels, KsSkinForms, KsSkinButtons, DB, ADODB, SysPublic,
KsSkinPanels, KsSkinTabs, StdCtrls, KsSkinCheckBoxs, KsSkinGroupBoxs,
Buttons, se_controls, KsSkinSpeedButtons;
type
TfrmAccountInfo = class(TfrmEditForm)
bbOk: TSeSkinButton;
bbNo: TSeSkinButton;
dsSource: TDataSource;
DataSet: TADODataSet;
PageControl: TSeSkinPageControl;
TabSheet1: TSeCustomTabSheet;
TabSheet2: TSeCustomTabSheet;
SeSkinPanel1: TSeSkinPanel;
lblName: TSeSkinLabel;
Label6: TSeSkinLabel;
Label5: TSeSkinLabel;
Label10: TSeSkinLabel;
Label9: TSeSkinLabel;
Label11: TSeSkinLabel;
Label12: TSeSkinLabel;
Label13: TSeSkinLabel;
Label14: TSeSkinLabel;
SeSkinLabel1: TSeSkinLabel;
Label16: TSeSkinLabel;
edtName: TdxDBEdit;
dxDBEdit6: TdxDBEdit;
dxDBEdit5: TdxDBEdit;
dxDBEdit10: TdxDBEdit;
dxDBEdit9: TdxDBEdit;
dxDBEdit4: TdxDBEdit;
dxDBMemo1: TdxDBMemo;
dxDBEdit11: TdxDBEdit;
dxDBEdit12: TdxDBEdit;
dxDBEdit2: TdxDBEdit;
dxDBEdit14: TdxDBEdit;
SeSkinPanel2: TSeSkinPanel;
SeSkinLabel2: TSeSkinLabel;
edtOutOrder: TdxPickEdit;
KsCustomTabSheet1: TSeCustomTabSheet;
cbxLog: TSeSkinCheckBox;
SeSkinPanel3: TSeSkinPanel;
SeSkinGroupBox1: TSeSkinGroupBox;
SeSkinLabel3: TSeSkinLabel;
SeSkinLabel4: TSeSkinLabel;
cbxStock: TSeSkinCheckBox;
edtNum1: TdxEdit;
edtNum2: TdxEdit;
SeSkinGroupBox2: TSeSkinGroupBox;
SeSkinLabel5: TSeSkinLabel;
lblDate: TSeSkinLabel;
cbxAR: TSeSkinCheckBox;
edtRTotal: TdxEdit;
edtRDate: TdxDateEdit;
SeSkinGroupBox3: TSeSkinGroupBox;
SeSkinLabel6: TSeSkinLabel;
SeSkinLabel7: TSeSkinLabel;
cbxAP: TSeSkinCheckBox;
edtPTotal: TdxEdit;
edtPDate: TdxDateEdit;
cbxPrintSave: TSeSkinCheckBox;
cbxTwoUnit: TSeSkinCheckBox;
cbxRepGroup: TSeSkinCheckBox;
cbxPriceCan0: TSeSkinCheckBox;
KsCustomTabSheet2: TSeCustomTabSheet;
SeSkinPanel4: TSeSkinPanel;
SeSkinLabel13: TSeSkinLabel;
pkBillName: TdxPickEdit;
SeSkinGroupBox5: TSeSkinGroupBox;
SeSkinLabel8: TSeSkinLabel;
SeSkinLabel9: TSeSkinLabel;
SeSkinLabel10: TSeSkinLabel;
SeSkinLabel11: TSeSkinLabel;
SeSkinLabel12: TSeSkinLabel;
lblBillAutoDemo: TSeSkinLabel;
edtBillSerialExp: TdxButtonEdit;
edtBillSerialSp: TdxEdit;
edtBillSerialNum: TdxEdit;
edtBillSerialUser: TdxEdit;
KsCustomTabSheet3: TSeCustomTabSheet;
SeSkinPanel5: TSeSkinPanel;
SeSkinGroupBox4: TSeSkinGroupBox;
lblUnit: TSeSkinLabel;
lblDepot: TSeSkinLabel;
edtDepot: TdxButtonEdit;
edtUnit: TdxButtonEdit;
cbxMinusWare: TSeSkinCheckBox;
SpeedButton2: TSeSkinSpeedButton;
SpeedButton1: TSeSkinSpeedButton;
procedure bbNoClick(Sender: TObject);
procedure bbOkClick(Sender: TObject);
procedure edtUnitButtonClick(Sender: TObject; AbsoluteIndex: Integer);
procedure edtDepotButtonClick(Sender: TObject; AbsoluteIndex: Integer);
procedure edtBillSerialExpButtonClick(Sender: TObject; AbsoluteIndex:
Integer);
procedure SpeedButton1Click(Sender: TObject);
procedure edtBillSerialExpChange(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure edtBillSerialExpClick(Sender: TObject);
private
{ Private declarations }
lUnitID, lDepotID: Integer;
bReturn: Boolean;
function GetBillItemIndex: Integer;
procedure MainShow;
procedure LoadData;
public
{ Public declarations }
end;
function AccountInfoShow: Boolean;
implementation
uses DBData,
UserLimitForm,
ExpressionForm;
{$R *.dfm}
function AccountInfoShow: Boolean;
var
frmAccountInfo: TfrmAccountInfo;
begin
frmAccountInfo := TfrmAccountInfo.Create(Application);
with frmAccountInfo do
begin
MainShow;
Result := bReturn;
Free;
end;
end;
procedure TfrmAccountInfo.MainShow;
begin
if not CheckLimit(ACCOUNT_INFO) then
begin
ShowMsg('对不起,你没有权限使用此功能!');
Exit;
end;
LoadData;
ShowModal;
end;
function TfrmAccountInfo.GetBillItemIndex: Integer;
begin
case pkBillName.ItemIndex of
//进货单编辑{100-110}
0: Result := STOCK_ORDER_EDIT; //进货订单
1: Result := STOCK_FORMAL_EDIT; //进货单
2: Result := STOCK_MONEY_EDIT; //进货付款单
3: Result := STOCK_BACK_EDIT; //进货退货单
//销售单编辑{110-120}
4: Result := SALE_ORDER_EDIT; //销售订单
5: Result := SALE_FORMAL_EDIT; //销售单
6: Result := SALE_MONEY_EDIT; //销售收款单
7: Result := SALE_READY_EDIT; //现款销售单
8: Result := SALE_BACK_EDIT; //销售退货单
9: Result := SALE_POS_EDIT; //零售单(POS)
//库存单据
10: Result := EXIST_DRAW; //领料单
11: Result := EXIST_RETURN; //退料单
12: Result := EXIST_LOSING; //报损单
13: Result := EXIST_INCREASE; //报溢单
14: Result := EXIST_PRESENT; //赠送单
15: Result := EXIST_GAIN; //获赠单
16: Result := EXIST_ENTER_DEPOT; //产品进仓
17: Result := EXIST_CHECK_LIST; //库存盘点
18: Result := EXIST_CHANGE_PRICE; //存货调价
19: Result := EXIST_EXCHANGE; //仓库调拨
20: Result := EXIST_PRICE_EXCHANGE; //变价调拨
21: Result := EXIST_ASSEMBLY; //组装拆卸
22: Result := EXIST_OTHER; //库存变动
//钱流单据
23: Result := MONEY_EXPENSES; //其它费用单
24: Result := MONEY_INCOME; //其它收入单
25: Result := MONEY_DEPOSIT; //银行存取款
else
Result := -1;
end;
end;
procedure TfrmAccountInfo.LoadData;
var
sSql: string;
begin
bReturn := false;
pkBillName.Items.Text := ' 进货订单' + #13 + ' 进货单' + #13 + ' 进货付款单'
+ #13 + ' 进货退货单' + #13 +
' 销售订单' + #13 + ' 销售单' + #13 + ' 销售收款单' + #13 + ' 现款销售单'
+ #13 + ' 销售退货单' + #13 +
' 零售单(POS)' + #13 +
' 领料单' + #13 + ' 退料单' + #13 + ' 报损单' + #13 + ' 报溢单' + #13 +
' 赠送单' + #13 +
' 获赠单' + #13 + ' 产品进仓' + #13 + ' 库存盘点' + #13 + ' 存货调价' +
#13 + ' 仓库调拨' + #13 +
' 变价调拨' + #13 + ' 组装拆卸' + #13 + ' 库存变动' + #13 +
' 其它费用单' + #13 + ' 其它收入单' + #13 + ' 银行存取款';
pkBillName.ItemIndex := 0;
PageControl.TabIndex := 0;
edtOutOrder.ItemIndex := StrToInt2(GetIniValue(frmData.ADOConnet, 'OutOrder'));
cbxLog.Checked := StrToBool2(GetIniValue(frmData.ADOConnet, 'OperateLog'));
cbxPrintSave.Checked := StrToBool2(GetIniValue(frmData.ADOConnet,
'BillSavePrint'));
cbxTwoUnit.Checked := StrToBool2(GetIniValue(frmData.ADOConnet, 'UseTwoUnit'));
//双单位
cbxRepGroup.Checked := StrToBool2(GetIniValue(frmData.ADOConnet, 'ReportGroup')); //表表分组
cbxPriceCan0.Checked := StrToBool2(GetIniValue(frmData.ADOConnet, 'BillPriceCan0'));
cbxMinusWare.Checked := StrToBool2(GetIniValue(frmData.ADOConnet, 'CanMinusWare'));
//单据自动编号
edtBillSerialSp.Text := GetIniValue(frmData.ADOConnet, 'BillSerialSp');
edtBillSerialNum.Text := GetIniValue(frmData.ADOConnet, 'BillSerialNum');
edtBillSerialUser.Text := GetIniValue(frmData.ADOConnet, 'BillSerialUser');
edtBillSerialExp.Text := GetIniValue(frmData.ADOConnet, 'BillSerialExp');
//报警
cbxStock.Checked := StrToBool2(GetIniValue(frmData.ADOConnet,
'StockAnnunct'));
cbxAR.Checked := StrToBool2(GetIniValue(frmData.ADOConnet, 'ARAnnunct'));
cbxAP.Checked := StrToBool2(GetIniValue(frmData.ADOConnet, 'APAnnunct'));
//零售单
lUnitID := StrToInt2(GetIniValue(frmData.ADOConnet, 'POSUnitID'));
lDepotID := StrToInt2(GetIniValue(frmData.ADOConnet, 'POSDepotID'));
if lUnitID > 0 then
edtUnit.Text := FieldIdToName('Unit', IntToStr(lUnitID), 'Name');
if lDepotID > 0 then
edtDepot.Text := FieldIdToName('Depot', IntToStr(lDepotID), 'Name');
sSql := 'SELECT * FROM CoAccountInfo';
OpenDataSet(DataSet, sSql);
end;
procedure TfrmAccountInfo.bbNoClick(Sender: TObject);
begin
inherited;
Close;
end;
procedure TfrmAccountInfo.bbOkClick(Sender: TObject);
begin
inherited;
SetIniValue(frmData.ADOConnet, 'OutOrder', IntToStr(edtOutOrder.ItemIndex));
SetIniValue(frmData.ADOConnet, 'OperateLog', BoolToStr(cbxLog.Checked, False));
SetIniValue(frmData.ADOConnet, 'BillSavePrint', BoolToStr(cbxPrintSave.Checked));
SetIniValue(frmData.ADOConnet, 'ReportGroup', BoolToStr(cbxRepGroup.Checked));
SetIniValue(frmData.ADOConnet, 'BillPriceCan0', BoolToStr(cbxPriceCan0.Checked)); //录单时商品单价可以为零
SetIniValue(frmData.ADOConnet, 'CanMinusWare', BoolToStr(cbxMinusWare.Checked)); //允许产生负库存商品
SetIniValue(frmData.ADOConnet, 'UseTwoUnit', BoolToStr(cbxTwoUnit.Checked));
//双单位
bUseTwoUnit := cbxTwoUnit.Checked;
//单据自动编号
SetIniValue(frmData.ADOConnet, 'BillSerialSp', edtBillSerialSp.Text);
SetIniValue(frmData.ADOConnet, 'BillSerialNum', edtBillSerialNum.Text);
SetIniValue(frmData.ADOConnet, 'BillSerialUser', edtBillSerialUser.Text);
SetIniValue(frmData.ADOConnet, 'BillSerialExp', edtBillSerialExp.Text);
//报警
SetIniValue(frmData.ADOConnet, 'StockAnnunct', BoolToStr(cbxStock.Checked));
SetIniValue(frmData.ADOConnet, 'ARAnnunct', BoolToStr(cbxAR.Checked));
SetIniValue(frmData.ADOConnet, 'APAnnunct', BoolToStr(cbxAP.Checked));
//零售单
SetIniValue(frmData.ADOConnet, 'POSUnitID', IntToStr(lUnitID));
SetIniValue(frmData.ADOConnet, 'POSDepotID', IntToStr(lDepotID));
if SaveDataSet(DataSet, false) then
bReturn := True;
Close;
end;
procedure TfrmAccountInfo.edtUnitButtonClick(Sender: TObject; AbsoluteIndex:
Integer);
var
sUnit: string;
begin
inherited;
sUnit := BaseSelect(BASE_CLIENT, 1, edtUnit.Text);
if (sUnit <> '') then
begin
lUnitID := StrToInt2(sUnit);
edtUnit.Text := FieldIdToName('Unit', sUnit, 'Name');
end;
end;
procedure TfrmAccountInfo.edtDepotButtonClick(Sender: TObject; AbsoluteIndex:
Integer);
var
sDepot: string;
begin
inherited;
sDepot := BaseSelect(BASE_DEPOT, 1, edtDepot.Text);
if (sDepot <> '') then
begin
lDepotID := StrToInt2(sDepot);
edtDepot.Text := FieldIdToName('Depot', sDepot, 'Name');
end;
end;
procedure TfrmAccountInfo.edtBillSerialExpButtonClick(Sender: TObject;
AbsoluteIndex: Integer);
var
sItem, sExp: string;
begin
inherited;
sExp := edtBillSerialExp.Text;
sItem := '单据简拼' + #13 + '年' + #13 + '月' + #13 + '日' + #13 + '自增序号'
+ #13 + '自定义' + #13 + '分割符';
sExp := GetExpression(sItem, sExp, 1);
if sExp <> '' then
edtBillSerialExp.Text := sExp;
end;
procedure TfrmAccountInfo.SpeedButton1Click(Sender: TObject);
begin
inherited;
edtBillSerialExp.Text := '单据简拼+年+月+日+自增序号';
end;
procedure TfrmAccountInfo.edtBillSerialExpChange(Sender: TObject);
begin
inherited;
lblBillAutoDemo.Caption :=
GetAutoSerial2(GetBillItemIndex, 0, edtBillSerialSp.Text,
edtBillSerialNum.Text, edtBillSerialUser.Text, edtBillSerialExp.Text);
end;
procedure TfrmAccountInfo.SpeedButton2Click(Sender: TObject);
var
sSql: string;
begin
inherited;
if MsgBox('重设单据起始序号,会使单据的编号恢复到以上自增序号的值!' + #13 +
'是否重设?', '提示', MB_OKCancel) = IDOK then
begin
sSql := 'DELETE FROM SysDef WHERE Mode=' + IntToStr(GetBillItemIndex);
if ExecSql(sSql) then
GetAutoSerial2(GetBillItemIndex, 1, edtBillSerialSp.Text,
edtBillSerialNum.Text, edtBillSerialUser.Text, edtBillSerialExp.Text);
end;
end;
procedure TfrmAccountInfo.edtBillSerialExpClick(Sender: TObject);
begin
inherited;
lblBillAutoDemo.Caption := GetAutoSerial2(GetBillItemIndex, 0, edtBillSerialSp.Text,
edtBillSerialNum.Text, edtBillSerialUser.Text, edtBillSerialExp.Text);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -