这是对我的更大问题的精简查询,但要点是我正在尝试内部联接到选择受外部选择限制的选择.那可能吗?我在内部选择上收到有关多部分标识符S.Item和S.SerialNum的错误.
要点就是这个,我们必须按项目/序列进行分组,并且查询足够大,我们不希望返回并将整个查询中的所有内容分组为此次要连接.
SELECT S.Item, S.SerialNum, S.ReceiveDate
FROM SALES S
INNER JOIN (SELECT W.Item, W.SerialNum, MIN(W.SalesDate)
FROM WARRANTY W
WHERE W.Item = S.Item AND
W.SerialNum = S.SerialNum
GROUP BY Item, SerialNum, SalesDate) WW
ON S.Item = WW.Item AND WW.SerialNum
Run Code Online (Sandbox Code Playgroud) 我通过X ++中的直接SQL调用存储过程,我无法弄清楚如何从中获取整数返回值.0很好,-1很差.
// Login to SQL DB
loginProperty = new LoginProperty();
loginProperty.setServer('localhost');
loginProperty.setDatabase('SQL_DB');
odbcConnection = new OdbcConnection(loginProperty);
statement = odbcConnection.createStatement();
/*
@in_customer_id INT
,@status INT
,@dlvmode NVARCHAR(25)
,@dlvmodedesc NVARCHAR(50)
,@tracking_id NVARCHAR(50)
,@note NVARCHAR(MAX)
,@modified SMALLDATETIME = null
,@override_email NVARCHAR(200) = null
*/
sqlStatement = strfmt(' EXEC pr_send_status_email ' +
' %1,' + // CustomerId
' %2,' + // Status
' %3,' + // DlvMode
' %4,' + // DlvMode description
' %5,' + // Tracking #
' %6,' + // …Run Code Online (Sandbox Code Playgroud) 我有一个有两个网格的表格.我有一个包含行的表,其中每行的状态为"是"或"否".我想在顶部显示所有"是",在底部网格中显示"否".
类似的情况是,如果我想显示SalesTable标题记录.顶部网格只是那些状态为已交付的网格,而底部网格则是状态为已开票的网格.
我怎么能做到这一点?
我已经接近添加了同一个表类型的另一个数据源.我添加了一个QueryBuildRange来过滤记录,但我遇到两个问题:
我在AOT中创建了一个名为"MyMacro"的宏对象.我把它放在:
#localmacro.myStrFmt
'Here is some text before (' + %1 + ') and some after'
#endmacro
Run Code Online (Sandbox Code Playgroud)
在我的课程中,如果我在run方法或类dec中本地定义它,它会起作用,但如果我使用#MyMacro则不行.是否有不同的语法或东西?
void run()
{
// #MyMacro
str retVal;
#localmacro.myStrFmt
'Here is some text before (' + %1 + ') and some after'
#endmacro
;
retVal = #myStrFmt("Text in parenthesis");
info (retVal);
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建自己的自定义深入分析功能,其中URL dynamics://0?myfunction_123456将启动我自己的代码.
在C\SysStartupCmd\construct,这个基本代码:
case 'viewalert':
sysStartupCmd = new SysStartUpCmdViewAlert(s,parm);
break;
case 'drilldown':
sysStartupCmd = new SysStartUpCmdDrillDown(s,parm);
break;
case 'viewalertrule':
sysStartupCmd = new SysStartUpCmdViewAlertRule(s,parm);
break;
Run Code Online (Sandbox Code Playgroud)
我已经测试了,所有这些都被这些网址解雇了:
但是,如果我添加自己的案例,让所有其他代码保持不变,我就无法获取要触发的URL:
case 'myFunction':
sysStartupCmd = new SysStartUpCmdDrillDown(s,parm);
break;
Run Code Online (Sandbox Code Playgroud)
我在整个系统中进行了挖掘,并且无法弄清楚是什么导致dynamics://URL只针对这三种情况触发.有注册表项还是什么?我发现C\EventDrillDownPoller哪个似乎创建了一个PipeServer来处理传入的内容?
为了进行讨论,我将使用SalesTable/SalesLine 。
我有一个简单的表单,其中包含两个数据源SalesTable和SalesLine,其中SalesLine连接到SalesTable。有一个标题和行网格。标题网格有属性MultiSelect = Yes
当我从网格中选择 3 个SalesTable记录时,有没有办法让它以某种本机样式显示下部网格中三个选定的SalesTable记录中的所有SalesLine记录?
我知道我可以通过某种代码以某种方式完成此任务,但我认为这可以通过设计模式以某种方式通过表单和数据源属性来完成?对我来说,您可以选择/突出显示三个标题记录,并且 AX 只会使行网格仅显示标题:子行对之一,这对我来说没有意义。
我觉得我可能会失去理智......但是如果你在AOT搜索任何带有双冒号"::"的东西,它就会完全失败.我正试图通过Forms\SysAotFind来解决这个问题,但我不想把我的轮子旋转成一堆可能只在我系统上的东西.
要在AX 2009中重现,请选择Classes\SalesTableType,按Ctrl + F并将"CustLedgerAccounts :: sumAccount"放入包含的文本框中,然后单击"立即查找".您可以看到它显然位于Classes\SalesTableType\accountCust方法中.我已经尝试在没有运气的对象中搜索基本枚举.
有没有办法在记录创建过程中(Ctrl+N)自动在网格末尾而不是在中间创建线条?
我知道这只是视觉上造成的,但它仍然造成了一些混乱。
这是我到目前为止在数据源上所做的,但它工作不正常:
public void create(boolean _append = false)
{
this.setPosition(MyTable.RowCount());
super(_append);
}
Run Code Online (Sandbox Code Playgroud) 故事是这样的:
我在AOT写了一个类,想要声明一个变量来存储给定日期之间的天数.我首先使用int原始类型.然后,我想知道在AOT中是否有合适的EDT.随着很多运气我输入" NumberOfDAYS",然后EDT NumberOfDays出现在代码自动完成列表中的第一项.
有时我没有那么多运气.我想知道AOT中是否有EDT目录.我不想从列表的第一个条目到最后一个条目来研究EDT列表.
我试过google,我可以找到关于如何创建EDT的说明,以及指导我使用EDT比使用原始类型更好的做法(或最佳做法),但我找不到目录这引导我从EDT到目的地的需要:那里已经存在最适合需要的EDT."哦!美国东部时间!你在哪儿?"
我有一个可以访问所有帐户的虚拟机。我下面的问题都是在同一个问题上运行的台机器,只是在不同的用户帐户下。
如果我登录domain\user1并运行以下 PowerShell 以生成一个字符串SecureString:
$SecurePassword = "ThisIsATest" | ConvertTo-SecureString -AsPlainText -Force
$RawSecureString = $SecurePassword | ConvertFrom-SecureString
Write-Host $RawSecureString
Run Code Online (Sandbox Code Playgroud)
所以输出如下:
$RawSecureString = "01000000d08c9ddf0115d1118c7a00c04fc297eb0100000014c54a4678625849adf32615ece5d33f000000000200000000001066000000010000200000007ece54f23781b598d0341c2380e678bc6286222186717e612e0f095b3edc4137000000000e80000000020000200000006b68df76dbc98fcd35943be7818c80ed502ec49d0ae06deeec183367ea19e10d200000002087d6178d6a67165d41ed172e11eae6bf7d648a59d25c01dd573baaad985bb040000000adc87d779c7de9d1565bcb834e50214e982c133c3558111138a2e1964b599d1bcb7b4583ff18d314f7bc6a0549bf03342a49ba2456cc13df60585ca36125ae37"
随着domain\user1我运行以下命令:
$SecureString = $RawSecureString | ConvertTo-SecureString
[System.Runtime.InteropServices.marshal]::PtrToStringAuto([System.Runtime.InteropServices.marshal]::SecureStringToBSTR($SecureString))
Run Code Online (Sandbox Code Playgroud)
输出是 ThisIsATest,这很好。
如果我登录domain\user2并运行以下命令:
$RawSecureString = "01000000d08c9ddf0115d1118c7a00c04fc297eb0100000014c54a4678625849adf32615ece5d33f000000000200000000001066000000010000200000007ece54f23781b598d0341c2380e678bc6286222186717e612e0f095b3edc4137000000000e80000000020000200000006b68df76dbc98fcd35943be7818c80ed502ec49d0ae06deeec183367ea19e10d200000002087d6178d6a67165d41ed172e11eae6bf7d648a59d25c01dd573baaad985bb040000000adc87d779c7de9d1565bcb834e50214e982c133c3558111138a2e1964b599d1bcb7b4583ff18d314f7bc6a0549bf03342a49ba2456cc13df60585ca36125ae37"
$SecureString = $RawSecureString | ConvertTo-SecureString
[System.Runtime.InteropServices.marshal]::PtrToStringAuto([System.Runtime.InteropServices.marshal]::SecureStringToBSTR($SecureString))
Run Code Online (Sandbox Code Playgroud)
我得到 Key not valid for use in specified state.,因为它是不同的用户。
由于在加密期间没有提供密钥user1,我的问题是,如果我有权访问两个登录帐户,是否有办法user2解密此安全字符串?
原因是我有许多虚拟机,其中的密钥作为本地管理帐户存储在注册表中,而我所做的大部分工作来自远程域帐户。
axapta ×8
x++ ×8
sql ×2
datasource ×1
encryption ×1
forms ×1
powershell ×1
sql-server ×1
startup ×1