Участник
Регистрация: 30.04.2004
Адрес: Utena , Lithuania
|
winApi::getTempFilename
Здраствуйте ,
Столькнулься с такой проблемой . Етот winApi::getTempFilename я использую для создания временного файла ( дбф ) . В рапортах , в которых оно есть выглядить так -
X++: // переменные
#WinAPI
Filename cFil;
WinAPICreateDBF wDbf;
..
cFil = winApi::getTempFilename( "c:\\darb\\", "LG");
cFil = strrem( cFil, "." );
cFil = cFil + ".dbf";
wDbf = new WinAPICreateDBF();
wDbf.StartCreateHeader( cFil );
wdbf.AddString( "modelis", 50 );
wdbf.AddString( "pavadinim", 140 );
wDbf.AddNomeric( "apsk_kaina", 12, 3 );
if ( invParm.ConfigIdFlag )
wdbf.AddString( "konfig", 60 );
if ( invParm.InventBatchIdFlag )
wdbf.AddString( "paket_nr", 20 );
if ( invParm.InventLocationIdFlag )
wdbf.AddString( "sandelis", 60 );
if ( !lNelikv )
{
wDbf.AddNomeric( "lik1", 9, 0 );
wDbf.AddNomeric( "lik1_s", 14, 3 );
wDbf.AddNomeric( "pajm", 9, 0 );
wDbf.AddNomeric( "pajm_s", 14, 3 );
wDbf.AddNomeric( "gamb", 9, 0 );
wDbf.AddNomeric( "gamb_s", 14, 3 );
wDbf.AddNomeric( "isld", 9, 0 );
wDbf.AddNomeric( "isld_s", 14, 3 );
wDbf.AddNomeric( "pard", 9, 0 );
wDbf.AddNomeric( "pard_s", 14, 3 );
wDbf.AddNomeric( "pard_a", 14, 3 );
}
wDbf.AddNomeric( "lik2", 9, 0 );
wDbf.AddNomeric( "lik2_s", 14, 3 );
wdbf.AddString( "uzsakov", 60 );
wdbf.AddString( "uzsk_grp", 60 );
wdbf.AddString( "mod_pgr", 60 );
wdbf.AddString( "inter_id", 25 );
wdbf.AddString( "mod_kolekc", 30 );
if ( lDetail )
{
wdbf.AddString( "medz_var", 10 );
wdbf.AddString( "spalva", 10 );
wdbf.AddString( "dydis", 15 );
}
wDbf.AddNomeric( "mod_min", 10, 2 );
wDbf.EndCreateHeader();
while select tmp2 order by ItemId, InventLocId, InventBatchId
{
InventTable = InventTable::find( tmp2.ItemId );
aDbfV = connull();
aDbfV += tmp2.ItemId;
aDbfV += InventTable.ItemName;
aDbfV += num2str( tmp2.Price, 12, 3, 1, 0 );
if ( invParm.ConfigIdFlag )
aDbfV += tmp2.ConfigId;
if ( invParm.InventBatchIdFlag )
aDbfV += tmp2.InventBatchId;
if ( invParm.InventLocationIdFlag )
aDbfV += tmp2.InventLocId;
if ( !lNelikv )
{
aDbfV += num2str( tmp2.Lik1, 9, 0, 1, 0 );
aDbfV += num2str( tmp2.LikSum1, 14, 3, 1, 0 );
aDbfV += num2str( tmp2.Paj, 9, 0, 1, 0 );
aDbfV += num2str( tmp2.PajSum, 14, 3, 1, 0 );
aDbfV += num2str( tmp2.PajG, 9, 0, 1, 0 );
aDbfV += num2str( tmp2.PajGSum, 14, 3, 1, 0 );
aDbfV += num2str( tmp2.Isl, 9, 0, 1, 0 );
aDbfV += num2str( tmp2.IslSum, 14, 3, 1, 0 );
aDbfV += num2str( tmp2.Prd, 9, 0, 1, 0 );
aDbfV += num2str( tmp2.PrdSum, 14, 3, 1, 0 );
aDbfV += num2str( tmp2.PrdAps, 14, 3, 1, 0 );
}
aDbfV += num2str( tmp2.Lik2, 9, 0, 1, 0 );
aDbfV += num2str( tmp2.LikSum2, 14, 3, 1, 0 );
aDbfV += tmp2.SalesName;
aDbfV += tmp2.CustGroup;
aDbfV += InventTable.ALNInventGroupSubGroupDescription;
aDbfV += tmp2.UTInterId;
aDbfV += tmp2.UTModCollectId;
if ( lDetail )
{
aDbfV += tmp2.Medziag;
aDbfV += tmp2.Spalva;
aDbfV += tmp2.Dydis;
}
aDbfV += num2str( tmp2.ModMinut, 10, 2, 1, 0 );
wDbf.AddStringToTable( aDbfV );
}
wDbf.CloseDbf(); Во всех рапортах ето работает ( ето использую в 5-7 рап. ) . Но вот в одном - неработает . cFil = winApi::getTempFilename( "c:\\darb\\", "LG"); Если исползую указанную директорию "c:\\darb\\" - возвращает пустую строку . Если ето поменяю на winApi::getTempPath() ( оно возвращает "c:\windows\temp\" ) , то тогда создание дбф-а бросает ошибку ... Никак немогу достичь что то же самое работало в новом рапорте . Может быть заведёте на дорогу в чём беда здесь ?
С уважением , Римантас
П.С. Ахапта - 3,0
Последний раз редактировалось Rimantas; 14.05.2010 в 12:29.
|