首 页 开发联盟 开发培训 下载中心 相关教程 点击排行 留言 开发手册
 
用户名:     密 码:     验证码:   
 
宏达软件开发网 > 教程排行中心 >
宏达软件开发网 > >点击排行
    • 3642
    • 3581

    利用脚本实现给某个字段赋值

    所属类别名称:系统资料     发布日期:2011/5/6 11:23:00

    实现功能:通过功能按钮,实现主表中某个字段赋值。

    实     例:将主表的‘打印’字段赋值“√”




    脚本语句:
    begin
    DataMdl_Tabledoc.First
    while not DataMdl_Tabledoc.eof do
    begin
    if not ((DataMdl_Tabledoc.state=dsedit) or (DataMdl_Tabledoc.state=dsinsert)) then DataMdl_Tabledoc.edit;
    DataMdl_Tabledoc.Fieldbyname(’打印’).asstring:=’√’;
    DataMdl_Tabledoc.post;
    DataMdl_Tabledoc.next;
    end;
    end.

    注释1:定位语句 

    第一条:DataMdl_Tabledoc.First 

    下一条:  DataMdl_Tabledoc.next 

    最后一条:DataMdl_Tabledoc.eof

    注释2:如果记录不是最后一条 执行下面的语句

    while not DataMdl_Tabledoc.eof do
    begin

    执行语句

    DataMdl_Tabledoc.next;
    end;

    注释3:如果主表不是编译或者插入状态,把主表置为编译状态。

    if not ((DataMdl_Tabledoc.state=dsedit) or DataMdl_Tabledoc.state=dsinsert)then   DataMdl_Tabledoc.edit;

     

    注释4:主表保存  

    DataMdl_Tabledoc.post;

    注释5:赋值   

    DataMdl_Tabledoc.Fieldbyname(’打印’).asstring:=’√’;

    • 3883
    • 3651

    开发设计中应该注意的一些问题

    所属类别名称:系统资料     发布日期:2011/3/31 10:01:00

    1.有记录重复出现的字段应该采用下拉框加记忆功能的方式实现;
    2.设计录入/参数窗口时标题应该与上边框保持一定距离;
    3.在查询语句中不要使用类似where条件为 is null的语句;
    4.库存更新:在主表删除后也应该进行库存更新;
    5.在一个系统中不要出现2种命名方式,例如一个叫编号,另外一个叫编码或者电话/联系电话等。
    • 3727
    • 3954

    关于win2003服务器远程断开后自动注销的问题解决办法

    所属类别名称:系统资料     发布日期:2011/1/30 15:57:00

    问题:关闭远程服务器后一段时间,服务器自动注销。如何避免服务器自动注销?

    解决办法:开始-->运行-->gpedit.msc 计算机配置->管理模板->Windows组件->终端服务->会话把"为断开的会话设置时间限制"改为"未被配置"。如果通过上面的操作,还是出现程序自动退出,再进行以下操作:开始-->运行-->tscc.msc 连接-->RDP-Tcp右键属性-->会话把这里面的替代用户设置的设置都改为“从不”,并且把“从不”勾选。 需要说明的是:前述工作做完后,远程服务器还是问题依旧,接下来:取消开机按ctl+alt+del,这一点大家都会吧。开始-->所有程序--> 管理工具-->本地安全策略-->本地策略-->安全选项:microsoft网络服务器:当登录时间用完后自动注销用户,改为“已禁用”。microsoft网络服务器:在挂起会话之前所需的空闲时间,改为99999,实际上是禁止了此策略。最后,到服务器用administrator登录一次。

    最关键的一步当您退出远程服务器的过程中,不要直接点击远程桌面程序的那个“×”,也不能单击‘注销’。而是在远程服务器的桌面上,单击“开始--关机--断开”,这一点十分重要。

    • 4227
    • 5052

    提高网络版三层客户端访问服务器端查询节点的速度问题

    所属类别名称:系统资料     发布日期:2011/1/8 14:36:00

    互联网三层客户端在访问查询节点的时候如出现以下提示:

     
    这是由于该查询节点是根据单位名称相同的条件查询出两个表中的内容,而SQL语句没有优化的原因造成的!
    通常我们根据某种条件读取相关两表的语句如下:
     
    此语句也可以查询出两表中的内容,但是查询出来的结果速度较慢,因此对该语句进行了优化,该语句优化后见下图:
    语句优化后,客户端访问服务器端的速度大大提高!
    • 4137
    • 3991

    联合Rich文本的使用

    所属类别名称:系统资料     发布日期:2010/12/17 15:20:00

    节点有主表和从表,细节区显示从表数据,最后一页的页尾需要显示一大篇幅的字和主表数据。

    放在汇总区,用联合Rich文本,换行用 #13#10

    如果要显示主表数据用格式:  {[(主表).字段名称]}

    • 4513
    • 4051

    利用脚本实现自动更新数据

    所属类别名称:系统资料     发布日期:2010/7/14 18:27:00

       软件有时存在这种情况,这里有三个字段“上次结余 本次充装  本次结余”。如图

    我想修改同一个编号的中间某条记录中的数据,单击保存后自动修改下面的数据。通过脚本就可以实现这个功能,脚本如下:

    第一:保存后:

     

    脚本如下:

    <script>
      var
       m:double;
       n:double;
       i:integer;  // 定义变量 m、 n、 i
      begin
        m:=DataMdl_Tabledoc.fieldbyname('上次结余数量m3').value;   //将当前记录上次结余数量赋值给变量M

        n:=DataMdl_Tabledoc.fieldbyname('上次结余金额(元)').value;    //将当前记录上次结余数量赋值给变量n

    DataMdl_ADOQueryTemp.Sql_text:= 'select * from 充装信息 where ID > ' +  DataMdl_Tabledoc.fieldbyname('ID').asstring + ' AND  编号='''+ DataMdl_Tabledoc.fieldbyname('编号').asstring +''''+'order by  ID';
        DataMdl_ADOQueryTemp.open;
        while not DataMdl_ADOQueryTemp.eof  do
         begin
          DataMdl_ADOQueryTemp.edit;
          DataMdl_ADOQueryTemp.fieldbyname('上次结余数量m3').value := m;
          DataMdl_ADOQueryTemp.fieldbyname('上次结余金额(元)').value := n;
          DataMdl_ADOQueryTemp.fieldbyname('本次结存数量m3').value:=  DataMdl_ADOQueryTemp.fieldbyname('上次结余数量m3').value - DataMdl_ADOQueryTemp.fieldbyname('本次充装数量m3').value;
          DataMdl_ADOQueryTemp.fieldbyname('本次结存金额(元)').value:=  DataMdl_ADOQueryTemp.fieldbyname('上次结余金额(元)').value - DataMdl_ADOQueryTemp.fieldbyname('本次充装金额(元)').value;
          DataMdl_ADOQueryTemp.post;
          m:=DataMdl_ADOQueryTemp.fieldbyname('本次结存数量m3').value;
          n:=DataMdl_ADOQueryTemp.fieldbyname('本次结存金额(元)').value;
          DataMdl_ADOQueryTemp.next ;
         end;
         DataMdl_ADOQueryTemp.close;

     

    DataMdl_ADOQueryTemp.Sql_text:='SELECT * FROM  充装信息';
    DataMdl_ADOQueryTemp.OPEN;
    DataMdl_ADOQueryTemp.CLOSE;


      END.


    </script>

    • 3839
    • 3761

    利用按扭脚本实现“删除录入密码”

    所属类别名称:系统资料     发布日期:2010/6/2 18:08:00

    当确定删除一条记录时需要知道管理员的密码,如果录入正确则才可删除,如果录入不正确则提示无权删除。

    具体实现:打开设计录入窗口创建按扭,然后点击右侧脚本内容打开如图

    脚本内容:

    var
    s:string;
    oform:Tform;
    oLabel:TLabel;
    oEdit:TEdit;
    oButton:TButton;
    begin
    if Application.messagebox('确定删除当前记录吗?','记录删除提示',1)=1 then
    begin
    DataMdl_ADOQueryTemp.CLOSE;
    DataMdl_ADOQueryTemp.Sql_text:='SELECT 密码 FROM  操作人员管理';
    DataMdl_ADOQueryTemp.OPEN;

    oform:=TForm.create(nil);
    oform.BorderStyle:=bsDialog;
    oform.Position:=poMainFormCenter;
    oform.width:=200;
    oform.height:=100;
    oLabel:=TLabel.Create(oform);
    oLabel.Parent:=oform;
    oLabel.Left:=10;
    oLabel.Top:=10;
    oLabel.Caption:='请输入删除口令';
    oEdit:=TEdit.Create(oform);
    oEdit.Parent:=oform;
    oEdit.Left:=10;
    oEdit.Top:=40;
    oEdit.PasswordChar:='*';
    oform.ShowModal;
    s:=oEdit.Text;
    oform.Free;
    if s=DataMdl_ADOQueryTemp.fields[0].asstring then
    begin
    DataMdl_Tabledoc.delete;
    end
    else
    begin
     Application.messagebox('您没有删除当前记录的权限','记录删除提示',0)
    end;
    DataMdl_ADOQueryTemp.CLOSE;
    end;
    end.

    脚本解析:

    var
    s:string;
    oform:Tform;
    oLabel:TLabel;
    oEdit:TEdit;
    oButton:TButton;

    //以上都是上定义变量

    begin
    if Application.messagebox('确定删除当前记录吗?','记录删除提示',1)=1 then //弹出确定删除当前记录的对话框

    begin
    DataMdl_ADOQueryTemp.CLOSE;//执行关闭

    DataMdl_ADOQueryTemp.Sql_text:='SELECT 密码 FROM  操作人员管理';//执行SQL获得密码

    DataMdl_ADOQueryTemp.OPEN; //执行打开

    oform:=TForm.create(nil);
    oform.BorderStyle:=bsDialog;
    oform.Position:=poMainFormCenter;
    oform.width:=200;
    oform.height:=100;
    oLabel:=TLabel.Create(oform);
    oLabel.Parent:=oform;
    oLabel.Left:=10;
    oLabel.Top:=10;
    oLabel.Caption:='请输入删除口令';
    oEdit:=TEdit.Create(oform);
    oEdit.Parent:=oform;
    oEdit.Left:=10;
    oEdit.Top:=40;
    oEdit.PasswordChar:='*';
    oform.ShowModal;
    //以上是定义录入密码的窗口及录入密码用*

    s:=oEdit.Text;
    oform.Free;
    if s=DataMdl_ADOQueryTemp.fields[0].asstring then
    begin
    DataMdl_Tabledoc.delete;
    //如要录入正确则删除

    else
    begin
     Application.messagebox('您没有删除当前记录的权限','记录删除提示',0)//否则弹出对话框图无权删除。
    end;
    DataMdl_ADOQueryTemp.CLOSE;
    end;
    end.

     

     


     


     

    • 3856
    • 3928

    利用按扭脚本实现“重置”

    所属类别名称:系统资料     发布日期:2010/6/2 17:58:00

    对于已经录入的车主名称,手机号码点重置按扭后可以清空。

    具体实现:打开设计录入窗口创建按扭,然后点击右侧脚本内容打开如图

    脚本内容:

    begin
    DataMdl_Tabledoc.cancel;
    end.

    脚本解析:

    begin
    DataMdl_Tabledoc.cancel;//对主表当前录入的内容取消
    end.

    • 4032
    • 4305

    利用按扭脚本实现“提交成功”

    所属类别名称:系统资料     发布日期:2010/6/2 17:52:00

    点击提交按钮弹出对话框提交成功。

    具体实现:打开设计录入窗口创建按扭,然后点击右侧脚本内容打开如图

    脚本内容:

    begin
    if (DataMdl_Tabledoc.state=dsedit) or (DataMdl_Tabledoc.state=dsInsert) then
    begin
      DataMdl_Tabledoc.post;
    end;
    Application.messagebox('提交成功','信息提交',0)
    end.

    脚本解析:

    bdgin //执行代码开始

    if (DataMdl_Tabledoc.state=dsedit) or (DataMdl_Tabledoc.state=dsInsert) then
    //如果主表是编辑或插入状态

    begin
      DataMdl_Tabledoc.post;
    end;
    //执行主表保存结束

    Application.messagebox('提交成功','信息提交',0)//弹出提交成功对话框

    end.

    • 3975
    • 4081

    利用脚本功能实现只能打印一次报表

    所属类别名称:系统资料     发布日期:2010/6/2 10:43:00

    打开报表设置窗口,如下图

    首先编写打印后执行的语句,单击打印后执行脚本按钮,编写语句如下图

    然后编写打印前执行的语句,单击打印前执行脚本按钮,编写语句如下图

    注:在编写语句前要在内部表增加一个字段,类型不限制,这个字段起标识作用,如上图的“打印”字段。

    脚本解析:

    1、打印后脚本:

    begin
    if DataMdl_Tabledoc.Fieldbyname('打印').asstring='S' then

    exit;//如果主表的打印字段其值为S,那么就退出操作。

    if not ((DataMdl_Tabledoc.state=dsedit) or (DataMdl_Tabledoc.state=dsinsert)) then DataMdl_Tabledoc.edit;//如果主表不是编译或者插入状态,把主表置为编译状态。

    DataMdl_Tabledoc.Fieldbyname('打印').asstring:='S';//如果主表是编译状态,调用主表打印字段,赋其值为S,这里可以赋任意的字符值。
    DataMdl_Tabledoc.post;//保存主表
    end.

    2、打印前脚本:

    begin
    if DataMdl_Tabledoc.Fieldbyname('打印').asstring ='S' then
    begin

    //如果打印字段已经赋值为S,将系统变量SYSTEMINFO_CANPRINT标识为FALSE

    SYSTEMINFO_CANPRINT:=FALSE;

    Application.messagebox('当前信息已经打印过,不能再打印','打印合法检查',0);

    //如果系统变量SYSTEMINFO_CANPRINT值为FALSE,弹出对话框提示不能打印的信息。
    exit;
    end
    else
    SYSTEMINFO_CANPRINT:=TRUE;//将系统变量SYSTEMINFO_CANPRINT赋值为TRUE

    end.  

    • 5030
    • 3900

    互联网三层--SQL计算与验证部分问题

    所属类别名称:系统资料     发布日期:2010/6/2 9:16:00

    互联网三层客户端在增加记录的时候如出现以下提示:

    这个时候就要检查SQL计算与验证,出现上图提示时,名称为“本次积分”的计算执行点是“记录保存后”,改成“记录保存前”以后,就不再提示错误。

    所以:慎用“记录保存后”,可以适当运用“记录保存前”。因为多次使用“记录保存”后容易产生冲突,系统后台无法分辨先执行哪个“记录保存后”。

    • 4182
    • 3779

    安装SQL时,出现如图错误提示

    所属类别名称:SQL资料     发布日期:2010/3/19 9:37:00

    安装SQL SERVER时,出现如图所示的错误:

    造成这个错误的原因,电脑安装过SQL SERVER,没有卸载,重新安装过操作系统后,再次安装SQL SERVER时出现这个提示。

    解决方法:在电脑磁盘有一个Microsoft SQL Server文件夹,手工删除后,再安装就可以了。

    • 4479
    • 4038

    如何取消“记录分组的查询设置”

    所属类别名称:系统资料     发布日期:2010/3/16 10:02:00

     去掉表格界面的分组设置,点击 “显示分组设置”前的复选框,下面分组字段显示相应的字段,点击“移去”,把分组字段全部移除,点击"保存". 然后点击关闭按钮即可。
    • 4340
    • 4168

    验证的那四个提示方式如何选择,语句的区别

    所属类别名称:系统资料     发布日期:2010/3/12 13:48:00

    数据验证是指的:根据所设置SQL语句的执行结果及所选验证方式;阻止或允许某些操作(触发执行点)的执行并向用户返回提示信息。

        常用于以下方面:

        1,将某些字段设置为必读字段,如果字段为空,则提示用户输入;

              2,防止关键字段重复,如已有重复字段,则提示用户信息重复;

              3,禁止已经存在的符合某种条件的记录再进行修改;

        验证方式说明:

              1,记录存在时提示:所设置SQL语句返回的记录数大于0

              2,记录为空时提示:所设置SQL语句返回的记录数等于0

        3,返回的第一条记录的第一个字段值为非0

        4,返回的第一条记录的第一个字段值为0

        验证一般将触发执行点放在“记录保存前”和“记录删除前”,这样可以起到提示加禁止的作用。如果放到记录保存后或删除后。那么只能起到提示作用,保存和删除记录的动作已经被执行了。

    • 3900
    • 4058

    报表中的几个区,具体如何使用呢?

    所属类别名称:系统资料     发布日期:2010/3/12 13:47:00

    标题区:用于存放报表标题,仅会显示在报表第一页

    表头区:用于打印相应表格(由“报表设置”中的“数据源”决定)的当前所有字段名称

    细节区:用于打印相应表格(由“报表设置”中的“数据源”决定)的当前所有记录

    汇总区:汇总细节区中的数字字段,如果已有细节区,那么勾选汇总区后,系统会自动生成相应字段的汇总表达式,可以进行手工修改。

    页头区:用于存放报表最上方(页头)的公共部分,会显示在报表所有页面

    页脚区:用于存放报表最下方(页脚)的公共部分,会显示在报表所有页面

    首页 上一页 下一页 尾页 页次:1/4页 共有48条教程排行 转到: 

    4341