多数据源同时提交
多数据源同时修改
w.isReady = true; 约定放到最后
sh.reloadOnEdit 表示点编辑的时候再次加载数据,编辑必须把 sh.reloadOnEdit = true
数据服务配置文件的继承覆盖需要与被继承的节点一致
store 的主键默认为第一行
waitid 的用法
storeWareHouse.load({
waitid: 'storeWareHouse'
});
shStockBillMstInit.onEdit({
waitid: 'storeStockBillMstInit',
wait: 'storeWareHouse',
params: { id: $args.id }
});
storeWhlocation.load({
waitid: 'storeWhlocation',
wait: ['storeWareHouse','storeStockBillMstInit'] //一定要按照顺序调用,如果把storeStockBillMstInit或只
写storeStockBillMstInit 有可能 storeWhlocation.load 的请求执行会比 shStockBillMstInit 早
// params: {whid:storeStockBillMstInit.getAt(0).get('whid')}
});
<Create>
<Table Name="in_stockbillmst">
<Values>
<Exp Field="createdate" Target="Express" Value="Now" level="1"/>
<Exp Field="createman" Target="AppInfo" Value="UserId" level="1"/>
<Exp Field="verdtm" Target="Express" Value="Now" level="1"/>
<Exp Field="exes" Value="0" level="1"/>
<Exp Field="audit" Value="0" level="1" />
</Values>
</Table>
</Create>
系统默认值如 <Exp Field="audit" Value="0" level="1" />
需要 加 leve = "1",表示优先取该值 否则会用客户端传上来的值
通用帮助 一张单据只能用一个。
查询控件必须后台服务的配置文件有相关键值,否则会报错
不要在页面写好控件后没有在配置文件配置相关键值就直接测试
<Table Name="ba_enterprise">
<Field Name="compno"/>
<Field Name="compname" />
</Table>
<Table Name="sa_ordermst_online">
<Field Name="relbillno" AsName="wbillno"/>
</Table>
</Tables>
<Read>
<Sql>
select [fields] from [table]
left join ba_enterprise on [table].compid = ba_enterprise.id
[where]
</Sql>
</Read>
配置文件的节点是区分大小写的 如果把 <Sql> 写成了 <sql> 会与预期结果不符合
ValueChangeOption="Leave" 表示控件会保留上次加载的值
<Record> 节点的<Where>节点不允许有元素
Ajax异步调用问题 :
如果一个Ajax请求还未结束,其他的Ajax请求无法请求到服务端这是因为ASP.NET的Session锁定的机制导致的
解决此问题的方法是在aspx页面的第一行里
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="OnSaleOrderDownload.aspx.cs" Inherits="BE.OnSale.OnSaleOrderDownload" EnableSessionState="ReadOnly" %>
加上 EnableSessionState="ReadOnly"
能用var b = builder.Transation(bd =>
{
bd.TransationBegin(true);
if (Pub.Request("storeMst").Length > 0)
{
storeStockBillMst.With(bd).Commit("storeMst");
}
if (Pub.Request("storeDtl").Length > 0)
{
storeStockBillDtl.With(bd).Commit("storeDtl");
}
});
尽量用,因为这个事务可以被其他外部事务调用,除非有特殊处理才用
try
{
builder.TransationBegin(true);
srvMst.DelStockBillById(jarr[i].TryParseToString());
}
catch (Exception ex)
{
builder.TransationRollBack();
jarr.RemoveAt(i);
sError += ex.Message + "<br>";
}
finally
{
builder.TransationEnd();
}
这种事务处理不能被其他外部事务调用,一般主要用于需要特殊处理的环境
当有两个弹出框的时候 第一个框的关闭按钮与第二个框的关闭按钮的id必须不一样,否则第一个框会出现两个关闭按钮
如果希望语句不要出现 _uid 的where 查询条件 则可以在<DataService NeedUid="false"> 设置NeedUid="false"