时空KSOA之CS表单工具说明
CS表单工具说明
1、调用:
1.1、单据事件调用
runbill_表单sn 调用无窗口表单
loadbill_表单sn 调用窗口表单
1.2、功能调用
功能号:LOADCSBILL 参数表单名称
1.3、表单中调用表单
OPENBILL_表单sn
2、对象
2.1、DJForm: // 特指单据调用表单,此为单据窗体对象
如果以单据为基础调用表单,则表单中全局对象DJForm <> nil;
DJForm即为当前单据对象,可以通过此对象与单据进行交互,
2.2、ParentForm: // 上一层调用表单窗体对象
2.3、SKPrint:
SKPrint.ShowBillReport; // 打印预览
SKPrint.PrintBillReport; // 打印
SKPrint.DesignBillReport; // 打印设计
2.4、PrnValList: // 打印变量列表
3、全局变量
__dbname 用DatabaseName
单据变量:
MX_字段名
HZ_字段名
4、函数
4.1、直接使用
4.1.1、万能打印
ShowReport // 打印预览
PrintReport // 打印
DesignReport // 打印设计
RUNCALC // 计算器
SelectDate // 日期选择
ZL_SELECT_方案号 // 资料选择方案
Close // 关闭窗口
4.2、在代码中使用
procedure SetFldDisplay(DataSet: TDataSet); // 翻译中文字段
procedure OpenBill(Self, 表单SN); // 打开新表单
procedure Close; // 关闭窗体
function GetMaxBh(const biaoshi: string; const IsNew: Boolean = True): string; // 得到最大编号,不含分店标识
procedure SelectDate(Sender: TWinControl; DateStr: string); // 选择日期
procedure GetTickCount; // 用于计算自windows启动后到现在的毫秒数
如:
DjForm.djfmxtable.locate('fieldname','gzid',1);
0: []
1: [loCaseInsensitive]
2: [loPartialKey]
3: [loCaseInsensitive, loPartialKey]
----------------------------------------------------------------------------------------------------------
资料检索方案调用:ZL_SELECT_方案号
代码中调用资料检索方案:zl_select(DsMain, 'pos_pdb', 'amxl');
//数据集,方案号,所要传递的参数。
比如:
zl_select(DsMain, 'qy', DsMain.FieldByName('hzflbh').AsString);
这是'qy'的检索方案,其中:v_zjm 可以看成 ‘%所传参数%’
select qyid,qybh,qymch,zjm,qyms from hzfa a(nolock)
join hzfamx b(nolock) on a.hzcode=b.hzcode
join spxxqyzl c(nolock) on b.hzflbh=LEFT(c.qybh,LEFT(a.fjrule,1))
where a.hzcode='qy_init' and c.beactive='是'
and LEFT(c.qybh,LEFT(a.fjrule,1)) like :v_zjm
----------------------------------------------------------------------------------------------------------
为事件指定方法:SetEvent(Self, SKBILLgrid1, 'OnColEnter', 'Edit2Change', False);
参数:表单,数据集,自己找delphi事件,自定义事件,不知道
procedure Edit2Change(Sender: TObject);
begin
ShowMessage('a');
end;
--------------------------------------------------------------------------------
将当前表单的数据集取出来赋值到另一个数据集里。
单据提取方案
function DJ_Select(Self: TForm; FAID: string; MainDataSet, SubDataSet: TDataSet): Boolean;
begin
Self.ObjList.Clear;
Self.ObjList.AddObject('HZDataSet', MainDataSet);
Self.ObjList.AddObject('MXDataSet', SubDataSet);
Self.ObjList.Add('FAID=' + FAID);
OpenBill(Self, 'hr_fhl_test1');
end;
赋值
----------------------
ParentForm.ObjList.Add('djbh='+dssub1.FieldByName('djbh').AsString);
self.close;
---------------------
取值
if self.ObjList.Values['djbh'] = '' then exit;
DJForm.SetDJValue('dwbh','');
----------------------------------------------------------------------------------------------------------
初始化的时候,需要对主数据集DsMain的值初始化。否则无法操作
//with DsMain do
//if Active then Close;
with DsMain do
begin
if Active then Close;
SQL.Text:='select space(20) as spid,space(20) as spbh,space(20) as spmch,space(20) as dw,space(20) as shpchd,'
+ 'space(20) as shpgg';
Open;
----------------------------------------------------------------------------------------------------------
SKDBTreeView 树控件
能支持,关键字段code,name,id,sqls,active
用法:
SKDBTreeView1.codemode :='2,2,3';显示格式
tmp :=' select hzflbh as code,rtrim(hzflbh)+'':''+hzflchina as name,hzflbh as id'
+' from hzfamx where hzcode = ''qy_init'''
+' order by hzflbh';
SKDBTreeView1.SQLS:=tmp;
SKDBTreeView1.Active := true;
---------------------------------------------------------------------------------------------------------
要有写注释的习惯。
注释用 (**)也可用{}以及//
//回写的时候是对编辑的数据写回数据集中,提交是一行写入数据集的时候,但是直接赋值的话不会触发回写,
-------------------------------------------------------------------------------------------
异常的使用: 自我感觉是没用,因为是二次开发嘛,错误还是报,最后还是的关了单子,从新打开。
try //try 保护代码块
被保护语句
except //异常处理块
on <异常对象类型 1> do <语句 1> //捕获指定类型的异常对象,进行处理
on <异常对象类型 n> do <语句 n> //捕获指定类型的异常对象,进行处理
else
<语句 n+1> //默认的异常处理代码
end;
注意:运行时必须先编译生成 exe 文件,然后在 Windows 中运行,否则在发生异常时仍将 出现系统的错误信息。
try....finally...end;
-------------------------------------------------------------------------------------------
for i :=LenBH downto 1 do
嵌套循环的用法,以及数据集取值和赋值的用法。 有时用上dssub1.MoveBy()一起用的话 两个for也能用吧。
dssub1.First;
while not dssub1.Eof do
begin
for i := 0 to dssub1.FieldCount do
begin
dssub1.Fields[i].FieldName;
dssub1.Field('beactive').Value := '否';
end;
dssub1.Next;
end;
因为语法是强数据类型,所以最好知道所取和所设值的类型,以下为string型。
dssub1.FieldByName('qybh').AsString;
-----------------------------------------------------------------------------------------------
列选择和数据集与数据的脱钩与挂钩 书签等。
--鼠标选择
SKBILLgrid1.selectedfield.value 此为选中的当前值
SKBILLgrid1.selectedfield.FieldName 此为选中的当前列
--指针******自己查找关于Delphi的指针@和Pointer函数等知识
var p : pointer;
if SKBILLgrid1.selectedfield.FieldName = '类别/区域' then
begin
alert('请选择需要选中的列!');
exit;
end;
try
p := dssub1.GetBookmark;//取得当前指针
dssub1.DisableControls;//使当前数据集与数据源切断
dssub1.First;
while not dssub1.Eof do
begin
dssub1.Edit;
SKBILLgrid1.selectedfield.value := 'Y';
dssub1.Next;
end;
finally
dssub1.GotoBookmark(p);//跳到指针处
dssub1.EnableControls;//恢复与数据源的联系
dssub1.FreeBookmark(p);//释放内存
end;
程序修改或后台有刷新记录的时候切断数据组件,如果没有切断,数据源中只要一有数据的改动,尤其是批量改动的话,每一笔的改动都会更新窗口中数据浏览组件的显示,这样会急剧减慢处理过程而且浪费时间, 这两个函数主要阻止组件感应显示,以加快语句执行速度。 比如,用大量的循环的时候,最好用他们。
--------------------------------------------------------------------------------------
运算符的优先级
级 别 运 算 符
第一级 (最高级) .^
第二级 @ not
第三级 * / div mod and as shl shr
第四级 + - or xor
第五级(最低级) = <> < > <= >= in is
需要注意的是,在 Object Pascal 中,“and”和“or”运算符的优先级比关系运算符高,
因此,对于表达式“a<b and c<d”,编译器会首先编译“and”运算符,由此导致编译错误。
因此,应该把该表达式用小括号括起来,即:(a<b)and(c<d)。
-----------------------------------------------------------------------------------------------------
一些经常碰到的函数
select convert(char(10),getdate(),20) 日期
inc 应该是自增
IsSpace();
length('abc');
strtoint();
inttostr();
ansilowercase 函数 将字符转换为小写
ansiuppercase 函数 将字符转换为大写
SKDBedit5.Text := FormatDateTime('YYYY-MM-DD', Now - 60);
SKDBedit6.Text := FormatDateTime('YYYY-MM-DD', StrToDate(SKDBedit5.Text) - 60);
copy(a,b,c)字符串处理函数。--->substr
参数: a 字符串
b 从第几个字符(从0和1开始算都一样)
c 取多长字符 (length)
Copy(s + inttostr(Fields[0].AsInteger + 1), length(inttostr(Fields[0].AsInteger + 1))+1, length(s) )
----------------------------------------------------------------------------------------------------------
临时的查询
var tmp_qry:TQuery; 声明----??????
tmp_qry := TQuery.Create(nil);
with tmp_qry do
try
DatabaseName := __dbname;//上行 和 这行 的顺序不能颠倒
SQL.Text := 'if exists(select top 1 1 from spxxqyzl where qybh like :fangabh)'
+ ' select substring(max(qybh),'+inttostr(length(fangabh)+1)+',100) as qybh from spxxqyzl c(nolock)'
+ ' where c.qybh like :fangabh'
+ ' else '
+ ' select qybh from spxxqyzl where 1=2';
ParamByName('fangabh').AsString := fangabh+'%';
Open;
finally
free;
end;
返回的是单个值就用Fields[0].AsInteger或Fields[0].AsString
-------------------------------------------------------
关于数据集dssub或SK
-----判断数据集是否为空
if (dssub1.FieldByName('dj_sn').AsString = '') and (dssub1.RecordCount = 0)
if dssub1.IsEmpty then
if messagebox('确定删除该记录吗?','系统提示',36) <> 6 then
begin
exit;
end;
-----清空数据集
dssub1.close;
dssub1.open;
----指针
dssub1.MoveBy(2);
dssub1.firset;
dssub1.last;
dssub1.next;
dssub1.eof
dssub1.bof
dssub1.append();
alert(dssub1.FieldByName('qybh').Value);//返回的是append新增一行的数据,所以一直是空。
----数据集已经查出来,对其中的数据查询,及过滤
数据集过滤的用法,且K,D 是变量的时候,最后会将数据集过滤。
dssub2.Filtered:=false;
dssub2.Filter:='(KH='+ QuotedStr(k) +') and (DH='+QuotedStr(d) + ')';//QUotedStr是单引号的意思,没用过。
dssub2.Filtered:=true;
findRowNumR := dssub2.RecordCount;
返回的是当前过滤完的数据集个数
----数据集返回值
if dssub2.Active then dssub2.Close; 有时呢如果不关闭数据集,结果程序为了显示结果,将不会退出继续执行。
dssub1.SQL.text := 'declare @col varchar(100), @sql varchar(8000)'
+ ' select @col = '' '', @sql = '' '''
+ ' select @col = @col + '','''''' '''''' as ['' + dictlist + '']'' '
+ ' from (select dictlist from gldict where bianh = ''kehulb'') a'
+ ' select @sql = @sql + ''select '''''''''' + qyid + '''''''''' as qyid,'''''''''' + qymch + '''''''''' as ''''''区域/类别'''''''''' + @col + '' union all '''
+ ' from (select c.qyid,c.qymch from hzfa a(nolock)join hzfamx b(nolock) on a.hzcode=b.hzcode '
+ ' join spxxqyzl c(nolock) on b.hzflbh=left(qybh,len(hzflbh)) '
+ ' where a.hzcode=''qy_init'' and c.beactive=''是'' and left(qybh,len(hzflbh))= :leib ) a '
+ ' set @sql = left(@sql,len(@sql)-10)'
+ ' exec(@sql)';
dssub1.ParamByName('leib').AsString := SKDBTreeView1.id;
dssub1.Open;
返回数据用open,不返回光执行用ExecSQL
----数据集中的复选框
property UnCheckBoxValue: string read FUnCheckBoxValue write FUnCheckBoxValue;
property CheckBoxValue: string read FCheckBoxValue write FCheckBoxValue;
property CheckBoxFields: string read FCheckBoxFields write SetCheckBoxFields;
怎么把一个字段的值设置成“复选框”
给这个属性这么赋值就可以了,'spbh,spmch,shpgg'
复选框的用法:
SKBILLgrid1.UnCheckBoxValue := 'N';
SKBILLgrid1.CheckBoxValue := 'Y';
SKBILLgrid1.CheckBoxFields := dssub1.Fields[i].FieldName;
必须注意的是,上面三句不可颠倒。
类似地
(*
SKBILLgrid1.UnCheckBoxValue := '否';
SKBILLgrid1.CheckBoxValue := '是';
SKBILLgrid1.CheckBoxFields := 'beactive';
*)
-----数据集选中变颜色
procedure uf_dclick;
begin
dssub1.Edit();
if dssub1.FieldByName('is_selected').AsString = '是' then
begin
dssub1.FieldByName('is_selected').AsString := '否';
end
else
begin
dssub1.FieldByName('is_selected').AsString := '是';
end;
end;
procedure DrawDataCell;
begin
if dssub1.FieldByName('is_selected').AsString = '是' then
begin
SKBILLgrid1.Canvas.Brush.Color := $EFCBA5;
SKBILLgrid1.Canvas.Font.Color := $000000;
end;
end;
-----------------------------------------------------------------------------------------------
字符串数组TStringList,该方法是用来分隔字符串的,默认的分隔符是‘,’更多方法看Delphi技巧。
其中:SKDBTreeView1.codemode=‘2,2,3’
分割后在strings中
数据 序号 个数
2 0 1
2 1 2
3 2 3
function uf_add():Boolean;
var
strlst:TStringList;
i,l:integer;
tmp_qry :TQuery;
begin
l := 0;
strlst := TStringList.Create;
try
strlst.CommaText := SKDBTreeView1.codemode;
for i := 0 to strlst.Count - 2 do
l := l + strtoint(strlst.strings[i]);
finally
strlst.Free;
end;
----------------------------------------------------------------------------------------------------
存盘(&S) uf_save() /bill/userimage/D:/SpaceTime/KSOA_ufida90/wms图标/save.bmp
新增(&N) uf_add() /bill/userimage/D:/SpaceTime/KSOA_ufida90/wms图标/add.bmp
删除(&D) uf_del() /bill/userimage/D:/SpaceTime/KSOA_ufida90/wms图标/delete.bmp
------------------------------------------------------------------------------------------
当前登录的用户名与分店标识
username
myselfbdbs
------------------------------------------------------
取最大编号
SQL.Text := 'exec SOF_getmaxbh ''PLA'',1';
Open;
-----------------------------------------------------
//服务器日期
SQL.Text := 'select convert(char(10),getdate(),20) as kaiprq';
Open;
//日期,时间
DsMain.FieldByName('rq').AsString := FormatDateTime('YYYY-MM-DD', Now);
DsMain.FieldByName('ontime').AsString := FormatDateTime('HH:NN:SS', Now);
----------------------------------------------------
下拉框
SKComboBox1.Style:=csOwnerDrawVariable;
SKComboBox4.Enabled := true;
SKComboBox5.ItemIndex := -1;
SKComboBox4.text := '';
文本框内容
for i:=0 to SKComboBox4.items.count-1 do
begin
if SKComboBox4.items.Strings[i]=SKComboBox4.text then
begin
SKComboBox4.ItemIndex :=i;
right := true;
end;
end;
-------------------------------------------------------------
事务
Session.FindDatabase(__dbname).StartTransaction;
try
tmp_qry := TQuery.Create(nil);
p := dssub1.GetBookmark;//取得当前指针
dssub1.DisableControls;//使当前数据集与数据源切断
with tmp_qry do
try
tmp_qry.DatabaseName := __dbname;
。。。。。。。。。。。。。。。。
finally
tmp_qry.free;
dssub1.GotoBookmark(p);//跳到指针处
dssub1.EnableControls;//恢复与数据源的联系
dssub1.FreeBookmark(p);//释放内存
end;
Session.FindDatabase(__dbname).Commit;
alert('保存成功!');
uf_clear();
except
Session.FindDatabase(__dbname).Rollback;
raise;
end;
---------
字符串
{
for i := 0 to Fid_list.Count-1 do
begin
//alert(Fid_list[i]);
//alert(Fid_list.Values[i]);
//alert(Fid_list.Names[i]);
alert(Fid_list.Names[Fid_list.Values[i]]);
//alert(Fid_list.Values[Fid_list.Names[i]]);
end
}
----------
treeview 控件
//alert(TreeNode.level);
//alert(TreeNode.index);
//alert(TreeNode.AbsoluteIndex);
//alert(Fid_list.indexofobject(TreeNode));
//alert(Fid_list.Names[Fid_list.indexofobject(TreeNode)]);
//alert(Fid_list[TreeNode.AbsoluteIndex]);
//alert(Fid_list.Names[TreeNode.AbsoluteIndex]);
var Fid_list:Tstrings;
//建树
procedure create_tree(Node: TTreeNode;level:integer);
var T_item: TTreeNode ;
i:integer;
begin
//检索level级子项
dssub2.Filtered:=false;
dssub2.Filter:='p_id='+inttostr(level);
dssub2.Filtered:=true;
//循环构建树结点
dssub2.First;
while not dssub2.eof do
begin
T_item:=SKDBTreeView1.Items.AddChild(Node,dssub2.Fields[1].AsString);
T_item.ImageIndex := 0;
T_item.SelectedIndex := 0;
Fid_list.AddObject(dssub2.Fields[0].AsString+'='+dssub2.Fields[2].AsString,T_item) ;
dssub2.next;
end;
//循环各自的子结点
for i := 0 to Node.Count-1 do
begin
T_item:=Node.Item[i];
T_item.ImageIndex := 1;
T_item.SelectedIndex := 1;
create_tree(T_item,strtoint(Fid_list.Names[Fid_list.indexofobject(T_item)]));
end;
end;
//建索引
procedure create_index;
var T_root: TTreeNode ;
aBookmark:TBookmark;
begin
// query1.SQL.Strings[3]:='FROM '+ management_table ;
// query2.SQL.Strings[2]:='FROM '+ management_table ;
//构建树
Fid_list:=Tstringlist.Create;
if dssub2.active then dssub2.close;
dssub2.open;
if dssub2.RecordCount=0 then exit;
dssub2.First;
dssub2.Filtered:=false;
dssub2.Filter:='p_id=0';
dssub2.Filtered:=true;
dssub2.first;
while not dssub2.eof do
begin
aBookmark:=dssub2.GetBookmark;
T_root:=SKDBTreeView1.Items.Add(nil,dssub2.Fields[1].AsString);
Fid_list.AddObject(dssub2.Fields[0].AsString+'='+dssub2.Fields[2].AsString,T_root) ;
create_tree(T_root,dssub2.Fields[0].AsInteger);
dssub2.Filtered:=false;
dssub2.Filter:='p_id=0';
dssub2.Filtered:=true;
dssub2.GotoBookmark(aBookmark);
dssub2.next;
end;
dssub2.Filtered:=false;
dssub2.Close;
dssub2.Filter:='';
end;
横向移动设置:
//添加事件
SetEvent(Self, SKBILLgrid1, 'OnColEnter', 'uf_huoShang', False);
if dssub1.RecordCount =0 then
begin
dssub1.Edit();
dssub1.ClearFields();
end;
tmp_qry := TQuery.Create(nil);
with tmp_qry do
try
tmp_qry.DatabaseName := __dbname;
// SQL.text := 'select top 3 * from spkfk ';
SQL.Text := 'select a.spid,spbh,b.spmch,a.dj,a.shl,b.shpgg,b.shpchd,b.dw,b.shlv,b.jlgg,b.zjm, '
+' a.dj*(1+b.shlv/100) as hshjj,b.lshj, '
+' b.zdshj,b.hshjj as zxdj,b.hshjj as htdj,b.shj*(1+b.shlv/100) as hshsj,b.shj*(1+b.shlv/100) as hshj, '
+' b.shj,b.jj,b.hshjj,b.zgshj,b.leibie '
+' from PackagesMX a(nolock),spkfk b(nolock) '
+' where a.spid = b.spid and a.fangabh in (select fangabh from PackagesMX(nolock) where spid ='''+ mx_spid+''')';
//alert(SQL.Text);
Open;
DjForm.djmxtable.Edit;
copydataset(tmp_qry,DjForm.djmxtable,false);
//DjForm.djmxtable.FieldByName('spbh').AsString := '234';
//DjForm.djmxtable.append;
finally
free;
end;
最主要的还是要有思路,其他的一切都是方法
时空KSOA之CS表单工具说明的更多相关文章
- java 验证表单工具类,史上最全
package com.wiker.utils; import java.util.regex.*; /** * * @version 1.0 * @author wiker * @since JDK ...
- 来玩Play框架04 表单
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 表单(form)是最常见的从客户往服务器传递数据的方式.Play框架提供了一些工具 ...
- 如何用ChemFinder制作子表单
通过使用ChemFinder这一插件,用户可以建立自己的ChemFinder数据库,数据库是由表单集合而成,所以建立数据库的前提是要制作表单.在之前的教程中已经介绍了制作表单的方法,本节ChemDra ...
- 用友时空B/S表单外挂(接口)程序操作说明文档
用友时空B/S表单外挂(接口)程序 一.B/S表单接口需求 众所周知,用友时空KSOA支持B/S架构.且移动商务.在线门店,都是完全基于B/S架构的. B/S架构的优越性在于没有本地客户端和本地数据, ...
- SharePoint 2013 表单认证使用ASP.Net配置工具添加用户
前 言 上面一篇博客,我们了解到如何为SharePoint 2013配置表单身份认证,但是添加用户是一个麻烦事儿:其实,我们还可以用Asp.Net的配置工具,为SharePoint 2013添加表单用 ...
- $.ajax、$.post、from表单序列化工具
$.ajax\$.post <script type="text/javascript" language="javascript" src=" ...
- 不使用ASP.NET服务器端控件(包括form表单不加runat="server")来触发.cs里的事件(方法),(适用于有代码洁癖者)。
很多时候,我们使用服务器端控件写出的代码,会给我们生成一些很多我们看不懂的代码(初学者),但是有时候我们并不需要这些代码(业务需求不同),对于生成的一些代码感到多余.所以我就开始想,有没有一种可能:不 ...
- 前端工具 - 15个最佳的 JavaScript 表单验证库
客户端验证在任何项目都是不够的,因为 JavaScript 可以直接忽略,人们可以提交请求到服务器. 然而这并不意味着客户端验证都没必要了,很多时候我们需要在用户提交到服务器之前给予提示.JavaSc ...
- java工具类(二)之java正则表达式表单验证
java正则表达式表单验证类工具类(验证邮箱.手机号码.qq号码等) 这篇文章主要介绍了java使用正则表达式进行表单验证工具类,可以验证邮箱.手机号码.qq号码等方法,需要的朋友可以参考下. jav ...
随机推荐
- Docker与CI持续集成/CD(转)
背景 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会 ...
- 洛谷P1313 计算系数【快速幂+dp】
P1313 计算系数 题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别 ...
- 通过Task异步加快对数组的运算
一.介绍 Task是.NetFramework3.0出现的,线程是基于线程池,然后提供了丰富的API. 先用AverageAssign方法把一组数据平均分成n组,再通过遍历n组数据,循环开Task多线 ...
- 第一阶段·Linux运维基础-第1章·Linux基础及入门介绍
01-课程介绍-学习流程 02-服务器硬件-详解 03-服务器核心硬件-服务器型号-电源-CPU 01-课程介绍-学习流程 1.1. 光看不练,等于白干: 1.2 不看光练,思想怠慢: 1.3 即看又 ...
- TPO-23 C2 Advice on choosing courses
第 1 段 1.Listen to a conversation between a student and his English professor. 请听一段学生与他的英文教授的对话. 第 2 ...
- 前端基础之CSS(总结)
css学什么?? 主要学习选择器和属性,选择器是去找到标签的位置,属性是给标签增加需要的样式. CSS选择器 1.基本选择器: 1.标签选择器 2.ID选择器 3.类选择器(class="c ...
- Log4j简单配置解析
log4j.rootLogger=ERROR, stdoutlog4j.logger.tk.mybatis.simple.mapper=TRACElog4j.appender.stdout=org.a ...
- Dede织梦验证码不显示,织梦后台登陆验证码不显示解决方法
关于"织梦验证码不显示"的解决方法 "织梦验证码无法显示出来"的问题分析? 1.之前显示正常,但是换了服务器后就不能够正常显示:(这种通常是网站程序经过迁移后所 ...
- AlexNet论文翻译-ImageNet Classification with Deep Convolutional Neural Networks
ImageNet Classification with Deep Convolutional Neural Networks 深度卷积神经网络的ImageNet分类 Alex Krizhevsky ...
- 基于Python的信用评分卡模型分析(二)
上一篇文章基于Python的信用评分卡模型分析(一)已经介绍了信用评分卡模型的数据预处理.探索性数据分析.变量分箱和变量选择等.接下来我们将继续讨论信用评分卡的模型实现和分析,信用评分的方法和自动评分 ...