📄 accountinfoform.pas
字号:
unit AccountInfoForm;
interface
uses
Windows,
Messages,
SysUtils,
Variants,
Classes,
Graphics,
Controls,
Forms,
Dialogs,
EditForm,
dxExEdtr,
dxEdLib,
dxDBELib,
dxCntner,
dxEditor,
KsControls,
KsLabels,
KsSkinLabels,
KsHooks,
KsForms,
KsSkinForms,
KsButtons,
KsSkinButtons,
DB,
ADODB,
SysPublic,
KsPanels,
KsSkinPanels,
KsTabs,
KsSkinTabs,
StdCtrls,
KsCheckBoxs,
KsSkinCheckBoxs,
KsGroupBoxs,
KsSkinGroupBoxs,
Buttons;
type
TfrmAccountInfo = class(TfrmEditForm)
bbOk: TSeSkinButton;
bbNo: TSeSkinButton;
dsSource: TDataSource;
DataSet: TADODataSet;
PageControl: TSeSkinPageControl;
TabSheet1: TKsCustomTabSheet;
TabSheet2: TKsCustomTabSheet;
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: TKsCustomTabSheet;
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: TKsCustomTabSheet;
SeSkinPanel4: TSeSkinPanel;
SpeedButton2: TSpeedButton;
SeSkinLabel13: TSeSkinLabel;
pkBillName: TdxPickEdit;
SeSkinGroupBox5: TSeSkinGroupBox;
SeSkinLabel8: TSeSkinLabel;
SeSkinLabel9: TSeSkinLabel;
SeSkinLabel10: TSeSkinLabel;
SeSkinLabel11: TSeSkinLabel;
SeSkinLabel12: TSeSkinLabel;
lblBillAutoDemo: TSeSkinLabel;
SpeedButton1: TSpeedButton;
edtBillSerialExp: TdxButtonEdit;
edtBillSerialSp: TdxEdit;
edtBillSerialNum: TdxEdit;
edtBillSerialUser: TdxEdit;
KsCustomTabSheet3: TKsCustomTabSheet;
SeSkinPanel5: TSeSkinPanel;
SeSkinGroupBox4: TSeSkinGroupBox;
lblUnit: TSeSkinLabel;
lblDepot: TSeSkinLabel;
edtDepot: TdxButtonEdit;
edtUnit: TdxButtonEdit;
cbxMinusWare: TSeSkinCheckBox;
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 + -