Ребята Я использую Delphi XE3, и у меня есть эта ошибка, я попытался посмотреть предыдущие вопросы и попытался решить, но ошибка не исчезнет. Любой, кто использовал XE3, пожалуйста, помогите мне, так расстроен. Как еще новичок в программированииНеявная строка, отличная от ShortString до String
кнопку [dcc32 Warning] invoice_u.pas (92): W1057 неявной строка литая из 'ShortString' на 'строка'
Ниже мой код
procedure TfrmInvoice.btnCreateClick(Sender: TObject);
begin
dmoSales.cdsInvoice.Insert; // insert a new record
dmoSales.cdsInvoice.FieldByName('InvNumber').AsString := invoiceNumber;
dmoSales.cdsInvoice.FieldByName('CustNumber').AsString :=
dmoSales.cdsCustomer.FieldByName('CustNumber').AsString;
dmoSales.cdsInvoice.FieldByName('InvDate').AsDateTime := Date;
dmoSales.cdsInvoice.FieldByName('InvPaid').AsBoolean := chkInvPaid.Checked;
dmoSales.cdsInvoice.Post; // save new record
end;
procedure TfrmInvoice.FormClose(Sender: TObject; var Action: TCloseAction);
begin
dmoSales.cdsCustomer.Close;
if dmoSales.cdsInvoice.ChangeCount > 0 then
dmoSales.cdsInvoice.ApplyUpdates(0);
dmoSales.cdsInvoice.Close;
end;
procedure TfrmInvoice.FormShow(Sender: TObject);
var
numberOfRecords : integer;
todaysDate : TDateTime;
begin
dmoSales.cdsInvoice.Open;
//get todays date so that the year can be extracted
//add DateUtils to uses clause for YearOf function
todaysDate := Today;
invoiceNumber:= IntToStr(YearOf(todaysDate));
//get the current number of invoices so that it can be added to invoiceNumber
numberOfRecords := dmoSales.cdsInvoice.RecordCount + 1;
//create invoice number
case numberOfRecords of
1..9: invoiceNumber := invoiceNumber + '000' + IntToStr(numberOfRecords);
10.99: invoiceNumber := invoiceNumber + '00' + IntToStr(numberOfRecords);
100..999: invoiceNumber := invoiceNumber + '0' + IntToStr(numberOfRecords);
else
invoiceNumber := invoiceNumber + IntToStr(numberOfRecords);
end;
//display invoice number on form
lblInvNumber.Caption := invoiceNumber;
//get the date and display it on the form
lblDate.Caption := DateToStr(Date);
// get the customers into alphabetic order (using an SQL query)
dmoSales.cdsCustomer.Close; // close the dataset before making changes
dmoSales.sdsCustomer.CommandType := ctQuery; // set dataset up as a query
dmoSales.sdsCustomer.CommandText := 'SELECT*FROM Customer ORDER BY CustName';
dmoSales.cdsCustomer.Open;
dmoSales.cdsCustomer.Refresh;
end;
конец ,
Какая линия составляет 92? –
Учитывая этот код, единственный возможный способ, по которому я вижу это предупреждение, заключается в том, что 'invoiceNumber' является' ShortString' вместо 'String', в котором строка 92 должна быть либо' dmoSales.cdsInvoice.FieldByName ('InvNumber ') .AsString: = invoiceNumber' или 'lblInvNumber.Caption: = invoiceNumber'. –