element.lock(); workbook = workbooks.item(1); worksheets = workbook.worksheets(); worksheet = worksheets.itemFromNum(1); cells = worksheet.cells(); do { row++; type = cells.item(row+1,1).value().variantType();
switch(cells.item(row,1).value().variantType()) { case COMVariantType::VT_BSTR: line = cells.item(row,1).value().bStr(); break; case COMVariantType::VT_DECIMAL, COMVariantType::VT_R4, COMVariantType::VT_R8: line = strfmt("%1",any2int(cells.item(row,1).value().double())); break; case COMVariantType::VT_I1, COMVariantType::VT_I2, COMVariantType::VT_I4: line = strfmt("%1",cells.item(row,1).value().int()); break; case COMVariantType::VT_UI1, COMVariantType::VT_UI2, COMVariantType::VT_UI4: line = strfmt("%1",cells.item(row,1).value().uLong()); break; case (COMVariantType::VT_DATE): line = date2str(cells.item(row,1).value().date(),123,2,1,2,1,4); case COMVariantType::VT_EMPTY: line =""; break; default: line=""; } if (Line != "") element.insertSerial(line); } while (type != COMVariantType::VT_EMPTY); application.quit(); element.unLock(); }
Bazen yeni yazdığınız kodlar client'i resetleseniz bile client tarafında görünmeyebilir. Bu durumda client bilgisayarında aşağıdaki kodları çalıştırmanız işe yarayabilir:
Axapta derleme esnasında bu uyarıyı verir. Boş blokları temizleyerek bu uyarıdan kurtulunabilir. Ancak Try/Catch bloğunda bunu yapamazsınız. Bu durumda ne yapacaksınız?
catch (Exception::Error)
{
exceptionTextFallThrough();
}
Uyarıyı kaldırmaktan başka bir işlevi olmayan bu fonksiyonu bir blogdan buldum.
if (_ServiceShipment == B_SMAServiceShipment::B_Hand)
if (!Personels.WithHand)
continue;
Ben hatalı olmadığını düşünüyodum. Çünkü ikinci if komutunun da continue ile birlikte tek komut olarak alınacağını sanıyordum. Ama öyle değilmiş. Parantez gerekiyor:
if (_ServiceShipment == B_SMAServiceShipment::B_Hand) { if (!Personels.WithHand) continue; }