Re: Własne pola ZMO i Pozycje - jak pobrać?
Sam odpowiem sobie na pytanie - może komuś się przyda
Definicje własnych pól siedzą w:
[BAZA].[SSCommon].[STDimensions]
Ich powiązenie z dokumentem ZO w tabeli:
[Baza].[SSCommon].[HMF_SalesOrderClassification]
A dla pozycji ZO w tabeli
[Baza].[SSCommon].[HMF_SalesOrderPositionClassification]
Nazwa kolumn w dwóch ostatnich tabelach poprzedzona CDim_ to kod zdefiniowanego pola/Wymiaru.
Po napisaniu funkcji w programie pojawiła się niejasność - może ktoś wyjaśni bo nie rozumiem:
Bezpośrednie zapytanie do bazy:
Kod:
SELECT cdim_isCanceled as wartosc
FROM testowa2.SSCommon.HMF_SalesOrderClassification where ElementId = 3801
Zwraca wartość 1 - jeśłi wartosć pola w programie ustawiona na True lub 0 gdy False
Gdy takie samo zapytanie wywołuję z pozycji amBasic funkcją:
Kod:
int sub czyAnulowane(long id,int czyPozycja,string kodWymiaru)
string s_Id = using "%l",id
DISPATCH rs1, con1
rs1= "ADODB.Recordset"
con1 = GetAdoConnection()
string qZap1
if czyPozycja == 0 then
qZap1 ="SELECT CDim_"+kodWymiaru+" AS wartosc FROM SSCommon.HMF_SalesOrderClassification where ElementId = "+s_Id
else
qZap1 = "SELECT CDim_"+kodWymiaru+" AS wartosc FROM SSCommon.HMF_SalesOrderPositionClassification where ElementId = "+s_Id
endif
message qZap1
rs1.Open(qZap1, con1)
//message using "%i",rs1.RecordCount
//if rs1.RecordCount > 0 then
message using "%i", rs1.Fields("wartosc").value
//message using "%i",czyAnulowane
//else
// czyAnulowane = 0
//endif
endsub
Dostaję wartość 0 dla False - i tu OK
albo -1 dla True....
Skąd ten minus? Nie rozumiem?